Referensi

Halaman ini menjelaskan argumen yang tersedia untuk skrip dan memberikan detail tentang perubahan yang dibuat skrip pada project Anda dan cluster GKE.

Opsi

-p|--project_id CLUSTER_PROJECT_ID
Project ID tempat cluster dibuat.
-n|--cluster_name CLUSTER_NAME
Nama cluster.
-l|--cluster_location CLUSTER_LOCATION
Zona (untuk cluster zona tunggal) atau region (untuk cluster regional) tempat cluster dibuat.
-m|--mode {install|migrate|upgrade}

Anda dapat menggunakan --mode install untuk penginstalan, upgrade, atau migrasi baru dari Istio. Saat Anda menggunakan --mode install untuk upgrade atau migrasi, install_asm akan mengizinkan upgrade/migrasi, apa pun versi bidang kontrol yang ada di cluster. Tanda migrate dan upgrade hanya memungkinkan upgrade atau migrasi dari versi minor sebelumnya atau versi patch sebelumnya.

Jika Anda menggunakan --mode install untuk upgrade atau migrasi, pastikan untuk menentukan certificate authority (CA) yang sama dengan yang saat ini diaktifkan di cluster. Mengubah CA akan menyebabkan periode nonaktif. Flag --upgrade tidak mengizinkan Anda mengubah CA, yang mencegah periode nonaktif yang tidak disengaja.

Jika bermigrasi dari Istio, Anda dapat mengubah CA dan mengaktifkan certificate authority (Mesh CA) Anthos Service Mesh. Jika Anda tidak dapat menjadwalkan periode nonaktif untuk migrasi ke Mesh CA, masih ada jalur migrasi ke Mesh CA, tetapi memerlukan langkah tambahan. Untuk mengetahui detailnya, lihat Bermigrasi ke Mesh CA.

-c|--ca {mesh_ca|citadel}

Untuk penginstalan baru, jika ingin menggunakan Mesh CA, Anda tidak perlu menyertakan opsi ini karena skrip akan ditetapkan secara default ke Mesh CA. Untuk upgrade, Anda tidak perlu menyertakan opsi ini karena skrip tidak mengizinkan Anda mengubah CA. Untuk migrasi, tentukan citadel atau mesh_ca. Jika Anda dapat menjadwalkan periode nonaktif untuk migrasi, sebaiknya gunakan mesh_ca. Untuk mengetahui informasi selengkapnya tentang CA yang akan digunakan, lihat Memilih certificate authority. Untuk mengetahui opsi tambahan yang harus Anda tentukan saat menggunakan Istio CA, lihat Opsi untuk sertifikat kustom Istio CA.

--co|--custom_overlay YAML_FILE

Nama file YAML resource kustom (CR) IstioOperator untuk mengaktifkan fitur yang tidak diaktifkan secara default. Skrip harus dapat menemukan file YAML, sehingga file tersebut harus berada di direktori yang sama dengan skrip, atau Anda dapat menentukan jalur relatif. Untuk menambahkan beberapa file, tentukan --co|--custom_overlay dan nama file, misalnya: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml

-o|--option OPTION_FILE

Nama file YAML dari paket anthos-service-mesh yang berisi CR IstioOperator untuk mengaktifkan fitur opsional. Saat menyertakan salah satu file ini, Anda tidak perlu mendownload paket anthos-service-mesh terlebih dahulu, dan tidak menetapkan ekstensi .yaml. Jika Anda perlu mengubah salah satu file, download paket anthos-service-mesh, buat perubahan, dan gunakan opsi --custom_overlay. Untuk menambahkan beberapa file, tentukan -o|--option dan nama file, misalnya: -o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

Jika tidak ditentukan, skrip akan membuat direktori sementara tempat mendownload file dan konfigurasi yang diperlukan untuk menginstal Anthos Service Mesh. Tentukan flag --output-dir untuk menentukan jalur relatif ke direktori yang akan digunakan. Setelah selesai, direktori yang ditentukan akan berisi asm dan subdirektori istio-1.11.8-asm.4. Direktori asm berisi konfigurasi untuk penginstalan. Direktori istio-1.11.8-asm.4 berisi konten yang diekstrak dari file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika Anda menentukan --output-dir dan direktori sudah berisi file yang diperlukan, skrip akan menggunakan file tersebut, bukan mendownloadnya lagi.

-r|--revision_name REVISION NAME>

Label revisi adalah pasangan nilai kunci yang ditetapkan di bidang kontrol. Kunci label revisi selalu istio.io/rev. Secara default, skrip menetapkan nilai untuk label revisi berdasarkan versi Anthos Service Mesh, misalnya: asm-1118-4. Sertakan opsi ini jika Anda ingin mengganti nilai default dan menentukan nilai Anda sendiri. Argumen REVISION NAME harus berupa label DNS-1035, dan harus terdiri dari karakter alfanumerik huruf kecil atau -, diawali dengan karakter alfabet, dan diakhiri dengan karakter alfanumerik (seperti my-name', atau abc-123). Ekspresi reguler yang digunakan untuk validasi adalah: '[a-z]([-a-z0-9]*[a-z0-9])?')

-s|--service_account ACCOUNT

Nama akun layanan yang digunakan untuk menginstal Anthos Service Mesh. Jika tidak ditentukan, akun pengguna aktif dalam konfigurasi gcloud saat ini akan digunakan. Jika Anda perlu mengubah akun pengguna aktif, jalankan gcloud auth login.

-k|--key_file FILE_PATH

File kunci untuk akun layanan. Hapus opsi ini jika Anda tidak menggunakan akun layanan.

Opsi untuk sertifikat kustom Citadel

Jika Anda menentukan --ca citadel dan menggunakan CA kustom, sertakan opsi berikut:

  • --ca_cert FILE_PATH: Intermediate certificate
  • --ca_key FILE_PATH: Kunci untuk intermediate certificate
  • --root_cert FILE_PATH: Root certificate
  • --cert_chain FILE_PATH: Rantai sertifikat

Untuk informasi selengkapnya, lihat Menambahkan Sertifikat CA yang sudah ada.

Tanda pengaktifan

Tanda yang dimulai dengan --enable memungkinkan skrip mengaktifkan Google API yang diperlukan, menetapkan izin Identity and Access Management (IAM) yang diperlukan, dan mengupdate cluster. Jika ingin, Anda dapat mengupdate project dan cluster sendiri sebelum menjalankan skrip seperti yang dijelaskan di bagian Menyiapkan project Anda dan Menyiapkan cluster dalam panduan penginstalan Multi-project. Semua tanda ini tidak kompatibel dengan --only_validate, dan dalam kasus ini skrip berakhir dengan error.

-e|--enable_all
Izinkan skrip untuk melakukan semua tindakan pengaktifan individual yang dijelaskan di bawah.
--enable_cluster_roles
Izinkan skrip untuk mencoba mengikat pengguna GCP atau akun layanan yang menjalankan skrip ke peran cluster-admin di cluster Anda. Skrip ini menentukan akun pengguna dari perintah gcloud config get core/account. Jika menjalankan skrip secara lokal dengan akun pengguna, pastikan Anda memanggil perintah gcloud auth login sebelum menjalankan skrip. Jika Anda perlu mengubah akun pengguna, jalankan perintah gcloud config set core/account GCP_EMAIL_ADDRESS dengan GCP_EMAIL_ADDRESS sebagai akun yang Anda gunakan untuk login ke Google Cloud.
--enable_cluster_labels
Izinkan skrip menetapkan label cluster yang diperlukan.
--enable_gcp_components

Izinkan skrip untuk mengaktifkan layanan dan komponen terkelola Google Cloud yang diperlukan berikut:

--enable_gcp_apis

Izinkan skrip untuk mengaktifkan semua Google API yang diperlukan.

--enable_gcp_iam_roles

Izinkan skrip untuk menetapkan izin IAM yang diperlukan.

--enable_registration

Izinkan skrip untuk mendaftarkan cluster ke project tempat cluster berada. Jika flag ini tidak disertakan, ikuti langkah-langkah dalam Mendaftarkan cluster untuk mendaftarkan cluster secara manual. Perhatikan bahwa tidak seperti flag pengaktifan lainnya, --enable_registration hanya disertakan dalam --enable_all saat Anda menentukan opsi (seperti --option vm atau --option hub-meshca) yang memerlukan pendaftaran cluster. Jika tidak, Anda perlu menentukan tanda ini secara terpisah.

Tanda lainnya

--dry_run
Mencetak perintah, tetapi tidak menjalankannya.
--only_validate
Jalankan validasi, tetapi jangan update project atau cluster, dan jangan instal Anthos Service Mesh. Tanda ini tidak kompatibel dengan tanda pengaktifan. Skrip ini dihentikan dengan error jika Anda menentukan --only_validate dengan flag pengaktifan apa pun.
--print_config
Alih-alih menginstal Anthos Service Mesh, cetak semua YAML yang telah dikompilasi ke output standar (stdout). Semua output lainnya ditulis ke error standar (stderr), meskipun biasanya diteruskan ke stdout. Skrip ini melewati semua validasi dan penyiapan saat Anda menentukan flag ini.
--disable_canonical_service
Secara default, skrip men-deploy pengontrol Layanan Kanonis ke cluster Anda. Jika Anda tidak ingin skrip men-deploy pengontrol, tentukan --disable_canonical_service. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Kanonis.
-h|--help
Tampilkan pesan bantuan yang menjelaskan opsi serta tanda, lalu keluar.
-v|--verbose
Saat skrip berjalan, jika mencetak perintah, skrip tersebut akan dijalankan selanjutnya. Dengan flag --verbose, skrip juga mencetak perintah setelah eksekusi.
--version
Cetak versi install_asm dan keluar. Jika perintah tidak menampilkan versi, download versi terbaru install_asm_1.11.

Memahami skrip

Meskipun Anda mendownload skrip dari lokasi Cloud Source Repositories yang aman, skrip tersebut juga tersedia di GitHub, sehingga Anda dapat melihat fungsinya sebelum mendownloadnya. Skrip ini memvalidasi bahwa project dan cluster Anda memenuhi persyaratan Anthos Service Mesh, dan mengotomatiskan semua langkah yang akan Anda lakukan secara manual untuk mengonfigurasi project dan cluster, lalu menginstal Anthos Service Mesh menggunakan perintah istioctl install.

Dengan Anthos Service Mesh 1.11.8, Anda menggunakan versi skrip install_asm di cabang release-1.11. Untuk mengetahui penjelasan tentang proses pembuatan versi dan rilis, lihat Pembuatan Versi/Rilis.

Validasi

validate_dependencies() {
  validate_node_pool
  validate_k8s
  validate_expected_control_plane

  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  elif [[ "${MODE}" = "upgrade" ]]; then
    validate_asm_version
    validate_ca_consistency
  fi
}

Skrip install_asm memverifikasi bahwa:

  • Project ID, nama cluster, dan lokasi cluster yang Anda masukkan sebagai parameter value valid.
  • Cluster tersebut memenuhi jenis mesin minimum yang diperlukan dan jumlah node.

Menyiapkan project

Peran yang diperlukan

Jika Anda menyertakan flag --enable_all atau --enable_gcp_iam_roles, skrip akan menetapkan izin IAM yang diperlukan.

required_iam_roles() {
  # meshconfig.admin - required for init, stackdriver, UI elements, etc.
  # servicemanagement.admin/serviceusage.serviceUsageAdmin - enables APIs
  if can_modify_gcp_components || \
     can_modify_cluster_labels || \
     can_modify_cluster_roles; then
    echo roles/container.admin
  fi
  if can_modify_gcp_components; then
    echo roles/meshconfig.admin
  fi
  if can_modify_gcp_apis; then
    echo roles/servicemanagement.admin
    echo roles/serviceusage.serviceUsageAdmin
  fi
  if can_modify_gcp_iam_roles; then
    echo roles/resourcemanager.projectIamAdmin
  fi
  if is_sa; then
    echo roles/iam.serviceAccountAdmin
  fi
  if can_register_cluster; then
    echo roles/gkehub.admin
  fi
  if [[ "${CA}" = "gcp_cas" ]]; then
    echo roles/privateca.admin
  fi
  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo roles/compute.admin
    echo roles/iam.serviceAccountKeyAdmin
  fi
}

Google API yang diperlukan

Jika Anda menyertakan tanda --enable_all atau --enable_apis, skrip akan mengaktifkan API yang diperlukan:

required_apis() {
    cat << EOF
container.googleapis.com
monitoring.googleapis.com
logging.googleapis.com
cloudtrace.googleapis.com
meshtelemetry.googleapis.com
meshconfig.googleapis.com
iamcredentials.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
cloudresourcemanager.googleapis.com
stackdriver.googleapis.com
EOF
  case "${CA}" in
   mesh_ca)
     echo meshca.googleapis.com
     ;;
   gcp_cas)
     echo privateca.googleapis.com
     ;;
    *);;
  esac

  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo compute.googleapis.com
  fi
}

Menyiapkan cluster Anda

Skrip tersebut melakukan update berikut pada cluster Anda jika Anda telah menyertakan flag --enable_all, atau salah satu flag pengaktifan yang lebih terperinci, yang tercantum di bawah:

Update cluster Tanda
Mengaktifkan Workload Identity, yang memungkinkan aplikasi GKE mengakses layanan Google Cloud dengan aman. --enable_gcp_components
Mengaktifkan Cloud Monitoring dan Cloud Logging di GKE. --enable_gcp_components
Menetapkan label mesh_id pada cluster, yang diperlukan agar metrik ditampilkan di halaman Anthos Service Mesh di konsol Google Cloud. --enable_cluster_labels
Menetapkan label seperti asmv=asm-1118-4 sehingga Anda dapat mengetahui bahwa cluster telah diubah oleh skrip. --enable_cluster_labels
Mengikat pengguna GCP atau akun layanan yang menjalankan skrip ke peran `cluster-admin` di cluster Anda. --enable_cluster_roles

Langkah selanjutnya