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}
Masukkan install jika Anda akan menginstal Anthos Service Mesh baru. Masukkan migrate jika Anda bermigrasi dari Istio. Masukkan upgrade untuk mengupgrade penginstalan Anthos Service Mesh yang sudah ada ke versi baru.
-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 opsi tambahan yang harus Anda tentukan saat menggunakan Citadel, lihat Opsi untuk sertifikat kustom untuk Citadel.
--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
-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.
-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 direktori yang sudah ada yang akan digunakan. Setelah selesai, direktori yang ditentukan akan berisi asm dan subdirektori istio-1.8.6-asm.8. Direktori asm berisi konfigurasi untuk penginstalan. Direktori istio-1.8.6-asm.8 berisi konten yang diekstrak dari file penginstalan, yang berisi istioctl, sampel, dan manifes.

Opsi untuk sertifikat kustom Citadel

Jika Anda menentukan 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-value 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. Perlu diketahui bahwa tidak seperti flag pengaktifan lainnya, --enable-registration tidak disertakan dalam --enable_all. Anda menentukan file penanda ini secara terpisah.

Tanda lainnya

-v|--verbose
Mencetak perintah sebelum dan sesudah eksekusi.
--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.
--version
Cetak versi install_asm dan keluar. Jika perintah tidak menampilkan versi, download versi terbaru install_asm_1.8.

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.8.6, Anda menggunakan versi skrip install_asm di cabang release-1.8-asm. Untuk mengetahui penjelasan tentang proses pembuatan versi dan rilis, lihat Pembuatan Versi/Rilis.

Validasi

validate_args() {
  if [[ "${MODE}" == "install" && -z "${CA}" ]]; then
    CA="mesh_ca"
  fi

  if is_managed; then
    if [[ "${MODE}" != "install" ]]; then
      fatal "Migrate and upgrade are incompatible with managed control plane."
    fi

    if [[ "${CA}" == "citadel" ]]; then
      fatal "Citadel is not supported with managed control plane."
    fi

    if [[ "${CA}" == "gcp_cas" ]]; then
      fatal "Google Certificate Authority Service integration is not supported with managed control plane."
    fi

    if [[ "${CUSTOM_CA}" -eq 1 ]]; then
      fatal "Specifying a custom CA with managed control plane is not supported."
    fi
  fi

  local MISSING_ARGS=0
  while read -r REQUIRED_ARG; do
    if [[ -z "${!REQUIRED_ARG}" ]]; then
      MISSING_ARGS=1
      warn "Missing value for ${REQUIRED_ARG}"
    fi
    readonly "${REQUIRED_ARG}"
  done <<EOF
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
}

Fungsi validate_args dan validate_dependencies:

  • Pastikan semua alat yang diperlukan telah diinstal.
  • Pastikan project ID, nama cluster, dan lokasi cluster yang Anda masukkan sebagai parameter value valid.
  • Memastikan cluster memenuhi jenis mesin minimum yang diperlukan dan jumlah node.

Menyiapkan project

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

required_apis() {
    cat << EOF
container.googleapis.com
compute.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
}

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

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-186-8 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