Menginstal Anthos Service Mesh

Halaman ini menjelaskan cara:

  • Jalankan asmcli untuk melakukan penginstalan baru Anthos Service Mesh 1.11.8-asm.4.
  • Secara opsional, deploy gateway masuk.
  • Deploy atau deploy ulang workload untuk memasukkan proxy file bantuan.

Sebelum memulai

Sebelum memulai, pastikan Anda:

Menginstal Anthos Service Mesh

Berikut adalah penjelasan cara menginstal Anthos Service Mesh:

  1. Jalankan asmcli install untuk menginstal bidang kontrol dalam cluster di satu cluster. Lihat bagian berikut untuk contoh command line. Contoh tersebut berisi argumen yang diperlukan dan argumen opsional yang mungkin berguna bagi Anda. Sebaiknya selalu tentukan argumen output_dir sehingga Anda dapat menemukan gateway contoh dan alat seperti istioctl dengan mudah. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.

  2. Cluster GKE pribadi memerlukan langkah konfigurasi firewall tambahan untuk mengizinkan traffic ke istiod.

  3. Jika ingin, instal gateway masuk. Secara default, asmcli tidak menginstal istio-ingressgateway. Sebaiknya Anda men-deploy dan mengelola bidang kontrol dan gateway secara terpisah. Jika Anda perlu menginstal istio-ingressgateway default dengan bidang kontrol dalam cluster, sertakan argumen --option legacy-default-ingressgateway.

  4. Untuk menyelesaikan penyiapan Anthos Service Mesh, Anda perlu mengaktifkan injeksi bantuan otomatis dan men-deploy atau men-deploy ulang workload.

  5. Jika Anda menginstal Anthos Service Mesh di lebih dari satu cluster, jalankan asmcli install di setiap cluster. Saat menjalankan asmcli install, pastikan untuk menggunakan FLEET_PROJECT_ID yang sama untuk setiap cluster. Setelah Anthos Service Mesh diinstal, lihat Menyiapkan mesh multi-cluster.

  6. Jika cluster Anda berada di jaringan yang berbeda (karena berada dalam mode pulau), Anda harus meneruskan nama jaringan yang unik ke asmcli menggunakan flag --network_id.

Instal fitur default dan Mesh CA

Bagian ini menunjukkan cara menjalankan asmcli untuk menginstal Anthos Service Mesh dengan fitur default yang didukung untuk platform Anda dan mengaktifkan certificate authority Anthos Service Mesh (Mesh CA) sebagai certificate authority.

GKE

Jalankan perintah berikut untuk menginstal bidang kontrol dengan fitur default dan Mesh CA. Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika opsi ini tidak disertakan, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Mengaktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan Mesh CA sebagai certificate authority. asmclimengonfigurasi Mesh CA untuk menggunakan identitas workload fleet

Lokal

Jalankan perintah berikut di GKE di VMware atau Google Distributed Cloud Virtual for Bare Metal untuk menginstal bidang kontrol dengan fitur default dan Mesh CA. Masukkan nilai Anda di placeholder yang disediakan.

  1. Setel konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Mengaktifkan Google API yang diperlukan.
      • Tetapkan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca mesh_ca Gunakan Mesh CA sebagai certificate authority. asmclimengonfigurasi Mesh CA untuk menggunakan identitas workload fleet

Instal fitur default dan Layanan Certificate Authority (CA)

Bagian ini menunjukkan cara menjalankan asmcli untuk menginstal Anthos Service Mesh dengan fitur default yang didukung untuk platform Anda dan mengaktifkan CA Service sebagai certificate authority.

Selain Mesh CA, Anda dapat mengonfigurasi Anthos Service Mesh untuk menggunakan Certificate Authority Service. Panduan ini memberi Anda kesempatan untuk berintegrasi dengan CA Service, yang direkomendasikan untuk kasus penggunaan berikut:

  • Jika Anda memerlukan certificate authority yang berbeda untuk menandatangani sertifikat beban kerja pada cluster yang berbeda.
  • Jika Anda ingin menggunakan sertifikat plugin CA Kustom istiod.
  • Jika Anda perlu mencadangkan kunci penandatanganan di HSM yang dikelola Google.
  • Jika Anda berada dalam industri yang diatur dengan regulasi ketat dan tunduk pada kepatuhan.
  • Jika Anda ingin menggabungkan CA Anthos Service Mesh ke root certificate perusahaan kustom untuk menandatangani sertifikat workload.

Biaya Mesh CA termasuk dalam harga Anthos Service Mesh. CA Service tidak disertakan dalam harga dasar Anthos Service Mesh dan dikenai biaya secara terpisah. Selain itu, CA Service dilengkapi dengan SLA eksplisit, tetapi Mesh CA tidak memilikinya.

Untuk integrasi ini, semua workload di Anthos Service Mesh diberi dua peran IAM:

Konfigurasi CA Service

  1. Buat kumpulan CA dan miliki minimal satu certificate authority aktif dalam kumpulan CA tersebut di project yang sama dengan cluster GKE. Gunakan CA subordinat untuk menandatangani sertifikat beban kerja Anthos Service Mesh. Catat kumpulan CA yang sesuai dengan CA subordinat.
  2. Pastikan kumpulan CA berada di tingkat DevOps dan berada di region yang sama dengan cluster yang berfungsi untuk menghindari masalah latensi yang berlebihan atau potensi pemadaman layanan lintas region. Untuk mengetahui informasi selengkapnya, lihat Tingkatan yang dioptimalkan untuk beban kerja.
  3. Jika dimaksudkan hanya untuk layanan sertifikat untuk workload Anthos Service Mesh, siapkan kebijakan penerbitan berikut untuk kumpulan CA: Sebagai praktik terbaik untuk mesh multi-cluster, tetapkan satu kumpulan CA subordinat per region cluster yang unik. Semua kumpulan CA subordinat harus terhubung ke kumpulan CA root yang sama.

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Untuk memperbarui kebijakan penerbitan kumpulan CA, gunakan perintah berikut:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

Untuk mengetahui informasi tentang cara menetapkan kebijakan pada kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.

Mengonfigurasi Anthos Service Mesh untuk menggunakan CA Service

  1. Instal bidang kontrol Anthos Service Mesh yang menggunakan Certificate Authority Service sebagai CA:

    ./asmcli install \
      --project_id PROJECT_ID \
      --cluster_name CLUSTER_NAME \
      --cluster_location CLUSTER_LOCATION \
      --enable_all \
      --ca gcp_cas \
      --ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
    
  2. Instal gateway masuk untuk menerima koneksi HTTP/TCP masuk atau keluar. Untuk mengetahui detailnya, lihat Menginstal Gateway.

  3. Selesaikan penginstalan Anthos Service Mesh untuk mengaktifkan injeksi proxy sidecar otomatis pada workload Anda. Untuk mengetahui detailnya, lihat Men-deploy dan men-deploy ulang workload.

Menginstal fitur default dengan Istio CA

Bagian ini menjelaskan cara:

  • Buat sertifikat dan kunci untuk Istio CA yang digunakan Anthos Service Mesh untuk menandatangani workload Anda.
  • Jalankan asmcli untuk menginstal Anthos Service Mesh dengan fitur default dan mengaktifkan Istio CA.

Untuk keamanan terbaik, sebaiknya Anda mempertahankan root CA offline dan menggunakan CA subordinat untuk menerbitkan sertifikat bagi setiap cluster. Untuk informasi selengkapnya, lihat Mencolokkan Sertifikat CA. Dalam konfigurasi ini, semua beban kerja di mesh layanan menggunakan root certificate authority (CA) yang sama. Setiap CA Anthos Service Mesh menggunakan kunci dan sertifikat penandatanganan CA perantara, yang ditandatangani oleh root CA. Jika beberapa CA ada dalam sebuah mesh, hal ini akan menetapkan hierarki kepercayaan di antara CA. Anda dapat mengulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah certificate authority.

Makefile untuk membuat sertifikat terletak di subdirektori istio-1.11.8-asm.4 dalam direktori --output_dir yang Anda tentukan dalam perintah asmcli validate. Jika Anda tidak menjalankan asmcli validate, atau tidak memiliki direktori yang didownload secara lokal, Anda bisa mendapatkan Makefile dengan mendownload file penginstalan Anthos Service Mesh dan mengekstrak isinya.

  1. Ubah ke direktori istio-1.11.8-asm.4.

  2. Buat direktori untuk sertifikat dan kunci:

    mkdir -p certs && \
    pushd certs
  3. Buat root certificate dan kunci:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Tindakan ini menghasilkan file berikut:

    • root-cert.pem: root certificate
    • root-key.pem: kunci root
    • root-ca.conf: konfigurasi untuk openssl guna membuat root certificate
    • root-cert.csr: CSR untuk root certificate
  4. Buat kunci dan sertifikat perantara:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Tindakan ini menghasilkan file ini dalam direktori bernama cluster1:

    • ca-cert.pem: sertifikat perantara
    • ca-key.pem: kunci perantara
    • cert-chain.pem: rantai sertifikat yang digunakan istiod
    • root-cert.pem: root certificate

    Jika Anda melakukan langkah-langkah ini menggunakan komputer offline, salin direktori yang dihasilkan ke komputer yang memiliki akses ke cluster.

  5. Kembali ke direktori sebelumnya:

    popd
  6. Jalankan asmcli untuk menginstal mesh menggunakan Istio CA:

    GKE

    Jalankan perintah berikut untuk menginstal bidang kontrol dengan fitur default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.

     ./asmcli install \
       --project_id PROJECT_ID \
       --cluster_name CLUSTER_NAME \
       --cluster_location CLUSTER_LOCATION \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    

    • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
    • --fleet_id Project ID project host fleet. Jika opsi ini tidak disertakan, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Mengaktifkan Google API yang diperlukan.
      • Tetapkan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.

    • -ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

    Lokal

    Jalankan perintah berikut di GKE pada VMware atau Google Distributed Cloud Virtual for Bare Metal untuk menginstal bidang kontrol dengan fitur default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.

    1. Setel konteks saat ini ke cluster pengguna Anda:

      kubectl config use-context CLUSTER_NAME
      
    2. Jalankan asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id Project ID project host fleet.
      • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
      • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
      • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
      • --enable_all Mengizinkan skrip untuk:
        • Memberikan izin IAM yang diperlukan.
        • Mengaktifkan Google API yang diperlukan.
        • Tetapkan label pada cluster yang mengidentifikasi mesh.
        • Daftarkan cluster ke fleet jika belum terdaftar.
      • -ca citadel Gunakan Istio CA sebagai certificate authority.
      • --ca_cert Intermediate certificate
      • --ca_key Kunci untuk intermediate certificate
      • --root_cert Root certificate
      • --cert_chain Rantai sertifikat

    AWS

    Jalankan perintah berikut di GKE di AWS untuk menginstal bidang kontrol dengan fitur default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan. Anda dapat memilih untuk mengaktifkan Ingress untuk subnet publik atau subnet pribadi.

    Publik

    1. Setel konteks saat ini ke cluster pengguna Anda:

      kubectl config use-context CLUSTER_NAME
      
    2. Jalankan asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id Project ID project host fleet.
      • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
      • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
      • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
      • --enable_all Mengizinkan skrip untuk:
        • Memberikan izin IAM yang diperlukan.
        • Mengaktifkan Google API yang diperlukan.
        • Tetapkan label pada cluster yang mengidentifikasi mesh.
        • Daftarkan cluster ke fleet jika belum terdaftar.
      • -ca citadel Gunakan Istio CA sebagai certificate authority.
      • --ca_cert Intermediate certificate
      • --ca_key Kunci untuk intermediate certificate
      • --root_cert Root certificate
      • --cert_chain Rantai sertifikat

    Pribadi

    1. Setel konteks saat ini ke cluster pengguna Anda:

      kubectl config use-context CLUSTER_NAME
      
    2. Simpan YAML berikut ke file bernama istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Jalankan asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id Project ID project host fleet.
      • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
      • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
      • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
      • --enable_all Mengizinkan skrip untuk:
        • Memberikan izin IAM yang diperlukan.
        • Mengaktifkan Google API yang diperlukan.
        • Tetapkan label pada cluster yang mengidentifikasi mesh.
        • Daftarkan cluster ke fleet jika belum terdaftar.
      • -ca citadel Gunakan Istio CA sebagai certificate authority.
      • --ca_cert Intermediate certificate
      • --ca_key Kunci untuk intermediate certificate
      • --root_cert Root certificate
      • --cert_chain Rantai sertifikat

    Amazon EKS

    Jalankan perintah berikut di Amazon EKS untuk menginstal bidang kontrol dengan fitur default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.

    1. Setel konteks saat ini ke cluster pengguna Anda:

      kubectl config use-context CLUSTER_NAME
      
    2. Jalankan asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id Project ID project host fleet.
      • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
      • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
      • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
      • --enable_all Mengizinkan skrip untuk:
        • Memberikan izin IAM yang diperlukan.
        • Mengaktifkan Google API yang diperlukan.
        • Tetapkan label pada cluster yang mengidentifikasi mesh.
        • Daftarkan cluster ke fleet jika belum terdaftar.
      • -ca citadel Gunakan Istio CA sebagai certificate authority.
      • --ca_cert Intermediate certificate
      • --ca_key Kunci untuk intermediate certificate
      • --root_cert Root certificate
      • --cert_chain Rantai sertifikat

Instal dengan fitur opsional

File overlay adalah file YAML yang berisi resource kustom (CR) IstioOperator yang Anda teruskan ke asmcli untuk mengonfigurasi bidang kontrol. Anda dapat mengganti konfigurasi bidang kontrol default dan mengaktifkan fitur opsional dengan meneruskan file YAML ke asmcli. Anda dapat menambahkan lapisan pada lebih banyak overlay, dan setiap file overlay akan menggantikan konfigurasi pada lapisan sebelumnya. Sebagai praktik terbaik, sebaiknya simpan file overlay di sistem kontrol versi.

GKE

Jalankan perintah berikut untuk menginstal bidang kontrol dengan fitur opsional. Untuk menambahkan beberapa file, tentukan --custom_overlay dan nama file, misalnya: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml Masukkan nilai Anda dalam placeholder yang disediakan.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca \
  --custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika opsi ini tidak disertakan, asmcli akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Mengaktifkan Google API yang diperlukan.
    • Tetapkan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan Mesh CA sebagai certificate authority. Perhatikan bahwa asmcli mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet
  • --custom_overlay Tentukan nama file overlay.

Di luar Google Cloud

Jalankan perintah berikut di GKE di VMware, Google Distributed Cloud Virtual for Bare Metal, GKE di AWS, atau Amazon EKS. Masukkan nilai Anda di placeholder yang disediakan.

  1. Setel konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install untuk menginstal bidang kontrol dengan fitur opsional. Untuk menambahkan beberapa file, tentukan --custom_overlay dan nama file, misalnya: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca \
      --custom_overlay OVERLAY_FILE
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap ke file kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket anthos-service-mesh dan mengekstrak file penginstalan, yang berisi istioctl, sampel, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform tersebut adalah selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Mengaktifkan Google API yang diperlukan.
      • Tetapkan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca mesh_ca Gunakan Mesh CA sebagai certificate authority. Perhatikan bahwa asmcli mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet
    • --custom_overlay Tentukan nama file overlay.

Menginstal gateway

Anthos Service Mesh memberi Anda opsi untuk men-deploy dan mengelola gateway sebagai bagian dari mesh layanan. Gateway menjelaskan load balancer yang beroperasi di edge mesh yang menerima koneksi HTTP/TCP masuk atau keluar. Gateway adalah proxy Envoy yang memberi Anda kontrol terperinci atas traffic yang masuk dan keluar dari mesh.

  1. Buat namespace untuk gateway masuk jika Anda belum memilikinya. Gateway adalah beban kerja pengguna, dan sebagai praktik terbaik, gateway tidak boleh di-deploy di namespace bidang kontrol. Ganti GATEWAY_NAMESPACE dengan nama namespace Anda.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Output yang diharapkan:

    namespace/GATEWAY_NAMESPACE created
    
  2. Aktifkan injeksi otomatis di gateway dengan menerapkan label revisi pada namespace gateway. Label revisi digunakan oleh webhook injektor file bantuan untuk mengaitkan proxy yang dimasukkan dengan revisi bidang kontrol tertentu.

    1. Gunakan perintah berikut untuk menemukan label revisi di istiod:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      Perintah tersebut menghasilkan label revisi yang sesuai dengan versi Anthos Service Mesh, misalnya: asm-1118-4

    2. Terapkan label revisi ke namespace. Dalam perintah berikut, REVISION adalah nilai label revisi istiod yang Anda catat di langkah sebelumnya.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Output yang diharapkan:

      namespace/GATEWAY_NAMESPACE labeled
      
  3. Anda dapat men-deploy contoh konfigurasi gateway masuk yang terletak di direktori samples/gateways/istio-ingressgateway/ sebagaimana adanya, atau mengubahnya sesuai kebutuhan.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f DIR_PATH/samples/gateways/istio-ingressgateway
    

    Output yang diharapkan:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Pelajari praktik terbaik untuk gateway lebih lanjut.

Men-deploy dan men-deploy ulang workload

Anthos Service Mesh menggunakan proxy file bantuan untuk meningkatkan keamanan, keandalan, dan kemampuan observasi jaringan. Dengan Anthos Service Mesh, fungsi-fungsi ini diabstraksikan dari container utama aplikasi dan diimplementasikan dalam proxy di luar proses umum yang dikirimkan sebagai container terpisah dalam Pod yang sama.

Penginstalan belum selesai sampai Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis) dan memulai ulang Pod untuk semua workload yang sedang berjalan di cluster sebelum Anda menginstal Anthos Service Mesh.

Untuk mengaktifkan injeksi otomatis, beri label namespace dengan label revisi yang ditetapkan pada istiod saat Anda menginstal Anthos Service Mesh. Label revisi digunakan oleh webhook injektor file bantuan untuk mengaitkan file bantuan yang dimasukkan dengan revisi istiod tertentu. Setelah menambahkan label, semua Pod yang ada di namespace harus dimulai ulang agar sidecar dapat dimasukkan.

Sebelum men-deploy workload baru di namespace baru, pastikan untuk mengonfigurasi injeksi otomatis agar Anthos Service Mesh dapat memantau dan mengamankan traffic.

Untuk mengaktifkan injeksi otomatis:

  1. Gunakan perintah berikut untuk menemukan label revisi di istiod:

    kubectl -n istio-system get pods -l app=istiod --show-labels
    

    Outputnya terlihat mirip dengan yang berikut ini:

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-1118-4-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1118-4,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-1118-4-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1118-4,istio=istiod,pod-template-hash=5788d57586

    Pada output, di kolom LABELS, catat nilai label revisi istiod, yang mengikuti awalan istio.io/rev=. Dalam contoh ini, nilainya adalah asm-1118-4.

  2. Terapkan label revisi dan hapus label istio-injection jika ada. Dalam perintah berikut, NAMESPACE adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis, dan REVISION adalah label revisi yang Anda catat pada langkah sebelumnya.

    kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
    

    Anda dapat mengabaikan pesan "istio-injection not found" di output. Artinya, namespace sebelumnya tidak memiliki label istio-injection, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label dalam dokumentasi Anthos Service Mesh mencakup penghapusan label istio-injection.

  3. Jika beban kerja berjalan di cluster sebelum Anda menginstal Anthos Service Mesh, mulai ulang Pod untuk memicu injeksi ulang.

    Cara memulai ulang Pod bergantung pada aplikasi dan lingkungan cluster tersebut. Misalnya, di lingkungan staging, Anda dapat menghapus semua Pod, yang menyebabkannya dimulai ulang. Namun, di lingkungan produksi, Anda mungkin memiliki proses yang menerapkan deployment berwarna biru-hijau, sehingga Anda dapat memulai ulang Pod dengan aman untuk menghindari gangguan traffic.

    Anda dapat menggunakan kubectl untuk melakukan mulai ulang berkelanjutan:

    kubectl rollout restart deployment -n NAMESPACE
    

Apa langkah selanjutnya?