Menggunakan Anthos Service Mesh

Mulai dari Apigee Hybrid versi 1.8, Apigee Hybrid menggunakan gateway ingress Apigee untuk menyediakan gateway ingress bagi penginstalan hybrid Anda. Jika Anda lebih memilih menggunakan Anthos Service Mesh untuk ingress, ikuti langkah-langkah berikut untuk menginstal Anthos Service Mesh di cluster Anda.

Versi Anthos Service Mesh yang didukung

Lihat Apigee Hybrid: platform yang didukung untuk mengetahui versi Anthos Service Mesh yang didukung di versi hybrid 1.8.

Jika Anda mengupgrade penginstalan hybrid, ikuti petunjuk di Mengupgrade Anthos Service Mesh.

Menginstal Anthos Service Mesh

Lakukan langkah-langkah ini pada penginstalan Apigee Hybrid baru hanya jika Anda tidak menggunakan gateway ingress Apigee.

Lakukan prosedur menggunakan dokumentasi Anthos Service Mesh yang sesuai untuk platform Anda:

Petunjuk untuk menginstal dan mengonfigurasi Anthos Service Mesh berbeda-beda, bergantung pada platform Anda. Platform dibagi menjadi kategori berikut:

  • GKE: Cluster Google Kubernetes Engine yang berjalan di Google Cloud.
  • Di luar Google Cloud: Cluster Anthos yang berjalan di:
    • Cluster Anthos di VMware (GKE on-prem)
    • Anthos on bare metal
    • Cluster Anthos di AWS
    • Amazon EKS
  • Platform Kubernetes Lainnya: Cluster yang sesuai dibuat dan berjalan di:
    • AKS
    • EKS
    • OpenShift

GKE

Urutan penginstalan Anthos Service Mesh adalah sebagai berikut:

  1. Bersiap untuk penginstalan.
  2. Instal Anthos Service Mesh versi baru.

Mempersiapkan penginstalan Anthos Service Mesh

  1. Tinjau persyaratan dalam Mengupgrade Anthos Service Mesh, tetapi jangan lakukan upgrade terlebih dahulu.
  2. Buat file overlay.yaml baru atau verifikasi bahwa file overlay.yaml yang ada berisi konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            nodeSelector:
              # default node selector, if different or not using node selectors, change accordingly.
              cloud.google.com/gke-nodepool: apigee-runtime
            resources:
              requests:
                cpu: 1000m
            service:
              type: LoadBalancer
              loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
              ports:
                - name: http-status-port
                  port: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
  3. Ikuti petunjuk di bagian berikut dalam dokumentasi Anthos Service Mesh:
    1. Download asmcli
    2. Memberikan izin admin cluster
    3. Memvalidasi project dan cluster
    4. Upgrade dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway".

Di luar Google Cloud

Petunjuk ini mencakup upgrade Anthos Service Mesh di:

  • Cluster Anthos di VMware (GKE on-prem)
  • Anthos on bare metal
  • Cluster Anthos di AWS
  • Amazon EKS

Urutan penginstalan Anthos Service Mesh adalah sebagai berikut:

  1. Bersiap untuk penginstalan.
  2. Instal Anthos Service Mesh versi baru.

Mempersiapkan penginstalan Anthos Service Mesh

  1. Tinjau persyaratan dalam Mengupgrade Anthos Service Mesh, tetapi jangan lakukan upgrade terlebih dahulu.
  2. Buat file overlay.yaml baru atau verifikasi bahwa file overlay.yaml yang ada berisi konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:  
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            nodeSelector:
              # default node selector, if different or not using node selectors, change accordingly.
              cloud.google.com/gke-nodepool: apigee-runtime
            resources:
              requests:
                cpu: 1000m
            service:
              type: LoadBalancer
              loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
              ports:
                - name: http-status-port
                  port: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
      values:
        gateways:
          istio-ingressgateway:
            runAsRoot: true
    
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
  3. Ikuti petunjuk di bagian berikut dalam dokumentasi Anthos Service Mesh:
    1. Download asmcli
    2. Memberikan izin admin cluster
    3. Memvalidasi project dan cluster
    4. Upgrade dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway".

AKS / EKS

Mempersiapkan penginstalan Anthos Service Mesh

    Linux

  1. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz
  2. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature 1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-linux-amd64.tar.gz

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests/profiles.
  4. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  5. Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz
  8. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature 1.17.8-asm.4-distroless-osx.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-osx.tar.gz

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests/profiles.
  10. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  11. Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip
  14. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip.1.sig
    openssl dgst -verify - -signature 1.17.8-asm.4-distroless-win.zip.1.sig 1.17.8-asm.4-distroless.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-win.zip

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests\profiles.
  16. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  17. Untuk mempermudah, tambahkan alat di direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  18. Setelah Anthos Service Mesh Istio diinstal, periksa versi istioctl:
    istioctl version
  19. Buat namespace bernama istio-system untuk komponen bidang kontrol:
    kubectl create namespace istio-system

Menginstal Anthos Service Mesh

  1. Edit file overlay.yaml Anda atau buat file baru dengan konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            service:
              type: LoadBalancer
              ports:
              - name: status-port
                port: 15021
                targetPort: 15021
              - name: http2
                port: 80
                targetPort: 8080
              - name: https
                port: 443
                targetPort: 8443
    
  2. Instal Anthos Service Mesh dengan istioctl menggunakan profil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1178-1" \
        --filename overlay.yaml

    Output Anda akan terlihat seperti:

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1178-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1178-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    Argumen --set revision menambahkan label revisi dalam format istio.io/rev=asm-1178-1 ke istiod. Label revisi digunakan oleh webhook injector file bantuan otomatis untuk mengaitkan file bantuan yang di-inject dengan revisi istiod tertentu. Untuk mengaktifkan injeksi otomatis sidecar untuk namespace, Anda harus memberi label dengan revisi yang cocok dengan label di istiod.

  3. Pastikan penginstalan Anda selesai:
    kubectl get svc -n istio-system

    Output Anda akan terlihat seperti:

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1178-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

Mempersiapkan penginstalan Anthos Service Mesh

  1. Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan informasi ini untuk menghapus webhook validasi dan webhook mutasi dari penginstalan Anthos Service Mesh Anda saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini ke variabel lingkungan:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo $DELETE_REV

    Output Anda akan terlihat seperti 1.16

  2. Linux

  3. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  4. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz
  5. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature 1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  6. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-linux-amd64.tar.gz

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests/profiles.
  7. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  8. Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  9. Mac OS

  10. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  11. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz
  12. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature 1.17.8-asm.4-distroless-osx.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  13. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-osx.tar.gz

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests/profiles.
  14. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  15. Untuk mempermudah, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  16. Windows

  17. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  18. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip
  19. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip.1.sig
    openssl dgst -verify - -signature 1.17.8-asm.4-distroless-win.zip.1.sig 1.17.8-asm.4-distroless.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  20. Ekstrak konten file ke lokasi mana pun pada sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
    tar xzf 1.17.8-asm.4-distroless-win.zip

    Perintah ini membuat direktori penginstalan di direktori kerja Anda saat ini bernama 1.17.8-asm.4-distroless yang berisi:

    • Contoh aplikasi di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Anthos Service Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh ada di direktori manifests\profiles.
  21. Pastikan Anda berada di direktori root penginstalan Anthos Service Mesh:
    cd 1.17.8-asm.4-distroless
  22. Untuk mempermudah, tambahkan alat di direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  23. Setelah Anthos Service Mesh Istio diinstal, periksa versi istioctl:
    istioctl version
  24. Buat namespace bernama istio-system untuk komponen bidang kontrol:
    kubectl create namespace istio-system

Mengonfigurasi webhook validasi

Saat menginstal Anthos Service Mesh, Anda menetapkan label revisi pada istiod. Anda harus menetapkan revisi yang sama pada webhook validasi.

  1. Buat file bernama istiod-service.yaml dengan konten berikut:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1178-1
        app: istiod
        istio: pilot
        release: istio
    spec:
      ports:
        - port: 15010
          name: grpc-xds # plaintext
          protocol: TCP
        - port: 15012
          name: https-dns # mTLS with k8s-signed cert
          protocol: TCP
        - port: 443
          name: https-webhook # validation and injection
          targetPort: 15017
          protocol: TCP
        - port: 15014
          name: http-monitoring # prometheus stats
          protocol: TCP
      selector:
        app: istiod
        istio.io/rev: asm-1178-1
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
  2. Gunakan kubectl untuk menerapkan konfigurasi webhook validasi:
    kubectl apply -f istiod-service.yaml
  3. Verifikasi bahwa konfigurasi telah diterapkan:
    kubectl get svc -n istio-system

    Responsnya akan terlihat seperti:

    NAME     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                 AGE
    istiod   ClusterIP   172.200.18.133   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP   22s

Menginstal Anthos Service Mesh

  1. Edit file overlay.yaml Anda atau buat file baru dengan konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
        ingressGateways:
          - name: istio-ingressgateway
            enabled: true
            k8s:
              service:
                type: LoadBalancer
                ports:
                - name: status-port
                  port: 15021
                  targetPort: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
    
  2. Instal Anthos Service Mesh dengan istioctl menggunakan profil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1178-1" \
        --filename overlayfile.yaml

    Output Anda akan terlihat seperti:

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1178-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1178-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    Argumen --set revision menambahkan label revisi dalam format istio.io/rev=1.6.11-asm.1 ke istiod. Label revisi digunakan oleh webhook injector file bantuan otomatis untuk mengaitkan file bantuan yang di-inject dengan revisi istiod tertentu. Untuk mengaktifkan injeksi otomatis sidecar untuk namespace, Anda harus memberi label dengan revisi yang cocok dengan label di istiod.

  3. Pastikan penginstalan Anda selesai:
    kubectl get svc -n istio-system

    Output Anda akan terlihat seperti:

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1178-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s