Passaggio 3: installazione di ASM

Installa ASM

Apigee ibrida utilizza la distribuzione Istio fornita con Anthos Service Mesh (ASM). Segui questi passaggi per installare ASM nel tuo cluster.

Versioni di ASM supportate

Consulta la pagina relativa a Apigee ibrido: piattaforme supportate per le versioni di ASM supportate nella versione ibrida 1.8.

Eseguire la configurazione e i passaggi di configurazione di ASM

Per completare l'installazione di ASM, devi prima eseguire i passaggi di configurazione e configurazione specifici di ASM riportati nella documentazione di ASM. Devi poi tornare qui per completare la configurazione specifica ibrida prima di applicare la configurazione al cluster.

Le istruzioni per installare e configurare ASM variano a seconda della piattaforma. Le piattaforme sono suddivise nelle seguenti categorie:

  • GKE: cluster Google Kubernetes Engine in esecuzione su Google Cloud.
  • All'esterno di Google Cloud: cluster Anthos in esecuzione su:
    • Cluster Anthos su VMware (GKE on-prem)
    • Anthos su Bare Metal
    • Cluster Anthos su AWS
    • Amazon EKS
  • Altre piattaforme Kubernetes: cluster conformi creati e in esecuzione su:
    • AK
    • EKS
    • ApriMaiusc

GKE

Prepara l'installazione di ASM

  1. Controlla le variabili di ambiente necessarie per i seguenti passaggi e impostale se devi:
    echo $PROJECT_ID
    echo $CLUSTER_NAME
    echo $CLUSTER_LOCATION
  2. Crea un file di overlay denominato overlay.yaml con il seguente contenuto:
    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)%"}'
    
    • apigee-runtime è il valore predefinito per il selettore nodo. Questo è il pool di nodi apigee-runtime che hai creato nel Passaggio 1: crea un cluster. Se utilizzi un selettore di nodi diverso o se non ne utilizzi uno, modifica o ometti la proprietà nodeSelector.
    • STATIC_IP è l'indirizzo IP del tuo bilanciatore del carico. Se non ne hai impostata una, ometti la proprietà loadBalancerIP, ma mantieni le proprietà type e ports.
  3. Segui le istruzioni per prepararti all'installazione di ASM:
    1. Prerequisiti di Anthos.
    2. Autorizzazioni richieste per installare Anthos Service Mesh.
    3. Pianificare un'installazione.
  4. Installa asmcli ed eventuali strumenti obbligatori come git, kubectl e jq, seguendo le istruzioni riportate in Installare gli strumenti richiesti.
  5. Svolgi il passaggio per concedere le autorizzazioni di amministratore del cluster e interrompere. Non eseguire il passaggio "Convalida progetto e cluster".
  6. Installa ASM con funzionalità facoltative. Specifica il gateway in entrata precedente con --option legacy-default-ingressgateway. ad esempio:
    ./asmcli install \
      --verbose \
      --project_id $PROJECT_ID \
      --cluster_name $CLUSTER_NAME \
      --cluster_location $CLUSTER_LOCATION \
      --output_dir dir_path \
      --custom_overlay overlay.yaml \
      --enable_all \
      --option legacy-default-ingressgateway
    • dir_path è la directory di output in cui vuoi che asmcli configuri l'installazione di ASM, incluse tutte le sottodirectory.
    • overlay.yaml è il file in overlay che hai creato nei passaggi precedenti.

    Utilizza queste impostazioni quando segui le istruzioni riportate nella sezione Installare funzionalità facoltative.

Risolvere i problemi

Se si verifica un errore, si riferisce a gcloud container hub memberships register, potresti aver superato il numero massimo di cluster registrati con GKE Hub. Ad esempio:

asmcli_1.12: [WARNING]:  Command 'run_command gcloud
container hub memberships register my-hybrid-example
...' failed.

Prova a seguire questi passaggi per risolvere il problema e poi esegui di nuovo asmcli install:

  1. Elenca le appartenenze GKE Hub per il tuo progetto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Elimina le appartenenze GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Per ulteriori informazioni sui limiti di GKE Hub, consulta la pagina Quote e limiti.

Al di fuori di Google Cloud

Queste istruzioni consentono di installare e configurare le istanze ibride di ASM per Apigee utilizzando Anthos:

  • Cluster Anthos su VMware (GKE on-prem)
  • Anthos su Bare Metal
  • Cluster Anthos su AWS
  • Amazon EKS

Prepara l'installazione di ASM

  1. Controlla le variabili di ambiente necessarie per i seguenti passaggi e impostale se devi:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Prendi nota dei valori che ti serviranno per ASMCLI. Di seguito sono riportati i valori che ti verrà chiesto di fornire quando segui i passaggi riportati nella documentazione di ASM:
    • FLEET_PROJECT_ID il nome del progetto a cui verranno associati i tuoi cluster. Utilizza il progetto che hai creato per questa installazione, archiviato nella variabile di ambiente ${PROJECT_ID}.
    • KUBECONFIG_FILE Il percorso completo del file kubeconfig. Il percorso predefinito è $HOME/.kube/config. per ulteriori informazioni, consulta la sezione relativa all'organizzazione dell'accesso ai cluster con i file kubeconfig nella documentazione di Kubernetes.
    • DIR_PATH la directory di output di ASMCLI. Questo è il percorso in cui creerà i file di configurazione di Istio. Ad esempio: ./asm.
    • GATEWAY_NAMESPACE lo spazio dei nomi per il gateway in entrata Istio, ad esempio: istio.
    • REVISION l'etichetta di revisione per questa release di ASM. Utilizza asm-1232-2
    • CONTEXT del contesto di Kubernetes. Verifica che Kubernetes utilizzi il contesto per il cluster con il seguente comando:
      kubectl config get-contexts

      Se il tuo cluster attuale non è il contesto attuale, puoi impostarlo con il seguente comando:

      kubectl config use-context CONTEXT
    • USER_ACCOUNT l'account con autorizzazioni di amministratore del cluster che stai utilizzando per gestire il cluster.
  3. Imposta il contesto per il progetto e l'area geografica con i comandi seguenti:

    Imposta l'ID progetto predefinito:

    gcloud config set project ${PROJECT_ID}

    Se lavori con cluster regionali, imposta l'area geografica di calcolo predefinita:

    gcloud config set compute/region ${CLUSTER_LOCATION}
  4. Ottieni le credenziali con il seguente comando:
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
  5. Crea un file di overlay denominato overlay.yaml con il seguente contenuto:
    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)%"}'
    
    • apigee-runtime è il valore predefinito per il selettore nodo. Questo è il pool di nodi apigee-runtime che hai creato nel Passaggio 1: crea un cluster. Se utilizzi un selettore di nodi diverso o se non ne utilizzi uno, modifica o ometti la proprietà nodeSelector.
    • STATIC_IP è l'indirizzo IP del tuo bilanciatore del carico. Se non ne hai impostata una, ometti la proprietà loadBalancerIP, ma mantieni le proprietà type e ports.
  6. Segui le istruzioni per prepararti all'installazione di ASM:
    1. Prerequisiti di Anthos.
    2. Autorizzazioni richieste per installare Anthos Service Mesh.
    3. Pianificare un'installazione.
  7. Installa asmcli ed eventuali strumenti obbligatori come git, kubectl e jq, seguendo le istruzioni riportate in Installare gli strumenti richiesti.
  8. Svolgi il passaggio per concedere le autorizzazioni di amministratore del cluster e interrompere. Non eseguire il passaggio "Convalida progetto e cluster".
  9. Installa ASM con funzionalità facoltative. Specifica il gateway in entrata precedente con --option legacy-default-ingressgateway. ad esempio:
    ./asmcli install \
      --verbose \
      --project_id $PROJECT_ID \
      --cluster_name $CLUSTER_NAME \
      --cluster_location $CLUSTER_LOCATION \
      --output_dir dir_path \
      --custom_overlay overlay.yaml \
      --enable_all \
      --option legacy-default-ingressgateway
    • dir_path è la directory di output in cui vuoi che asmcli configuri l'installazione di ASM, incluse tutte le sottodirectory.
    • overlay.yaml è il file in overlay che hai creato nei passaggi precedenti.

    Utilizza queste impostazioni quando segui le istruzioni riportate nella sezione Installare funzionalità facoltative.

Risolvere i problemi

Se si verifica un errore, si riferisce a gcloud container hub memberships register, potresti aver superato il numero massimo di cluster registrati con GKE Hub. Ad esempio:

asmcli_1.12: [WARNING]:  Command 'run_command gcloud
container hub memberships register my-hybrid-example
...' failed.

Prova a seguire questi passaggi per risolvere il problema e poi esegui di nuovo asmcli install:

  1. Elenca le appartenenze GKE Hub per il tuo progetto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Elimina le appartenenze GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Per ulteriori informazioni sui limiti di GKE Hub, consulta la pagina Quote e limiti.

Altre piattaforme Kubernetes

alias

Configurare e scaricare ASM

Leggi i passaggi seguenti prima di iniziare. Ti chiederemo di eseguire alcuni dei passaggi elencati nella documentazione di ASM, quindi di tornare qui per completare l'installazione.

Questa guida spiega come eseguire un'installazione pulita della versione 1.23.2-asm.2 di Anthos Service Mesh (ASM) sui cluster Anthos collegati. Utilizza questa guida per installare Anthos Service Mesh nei seguenti ambienti:

  • Amazon Elastic Kubernetes Service (Amazon EKS) su Kubernetes
  • Servizio Microsoft Azure Kubernetes (Microsoft AKS) su Kubernetes
  • Cappello rosso OpenShift

Preparazione dell'installazione di Anthos Service Mesh

    Linux

  1. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz
  2. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig istio-1.23.2-asm.2-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  3. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  4. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  5. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz
  8. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.23.2-asm.2-osx.tar.gz.1.sig istio-1.23.2-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  9. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  10. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  11. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip
  14. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.23.2-asm.2-win.zip.1.sig istio-1.23.2-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  15. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-win.zip

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests\profiles.
  16. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  17. Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
    set PATH=%CD%\bin:%PATH%
  18. Ora che ASM Istio è installato, controlla la versione di istioctl:
    istioctl version
  19. Crea uno spazio dei nomi chiamato istio-system per i componenti del piano di controllo:
    kubectl create namespace istio-system

Installazione di Anthos Service Mesh

  1. Installa Anthos Service Mesh con istioctl utilizzando il profilo asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1232-2"

    L'argomento --set revision aggiunge un'etichetta di revisione nel formato istio.io/rev=asm-1232-2 a istiod. L'etichetta di revisione viene utilizzata dal webhook iniettore sidecar automatico per associare le sidecar iniettate a una determinata revisione istiod. Per abilitare l'inserimento automatico sidecar per uno spazio dei nomi, devi etichettarlo con una revisione che corrisponda all'etichetta su istiod.

  2. Verifica che i pod istiod siano in esecuzione con kubectl get pods:
    kubectl get pods -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1232-2-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
    
  3. Verifica che l'installazione sia stata completata:
    kubectl get svc -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    

Configura il webhook di convalida

Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.

  1. Crea un file denominato istiod-service.yaml con il seguente contenuto:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1232-2
        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-1232-2
      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. Utilizza kubectl per applicare la configurazione del webhook di convalida:
    kubectl apply -f istiod-service.yaml
  3. Verifica che la configurazione sia stata applicata:
    kubectl get svc -n istio-system

    La risposta dovrebbe essere simile a:

    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
    

periodo

Configurare e scaricare ASM

Leggi i passaggi seguenti prima di iniziare. Ti chiederemo di eseguire alcuni dei passaggi elencati nella documentazione di ASM, quindi di tornare qui per completare l'installazione.

Questa guida spiega come eseguire un'installazione pulita della versione 1.23.2-asm.2 di Anthos Service Mesh (ASM) sui cluster Anthos collegati. Utilizza questa guida per installare Anthos Service Mesh nei seguenti ambienti:

  • Amazon Elastic Kubernetes Service (Amazon EKS) su Kubernetes
  • Servizio Microsoft Azure Kubernetes (Microsoft AKS) su Kubernetes
  • Cappello rosso OpenShift

Preparazione dell'installazione di Anthos Service Mesh

    Linux

  1. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz
  2. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig istio-1.23.2-asm.2-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  3. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  4. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  5. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz
  8. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.23.2-asm.2-osx.tar.gz.1.sig istio-1.23.2-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  9. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  10. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  11. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip
  14. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.23.2-asm.2-win.zip.1.sig istio-1.23.2-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  15. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-win.zip

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests\profiles.
  16. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  17. Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
    set PATH=%CD%\bin:%PATH%
  18. Ora che ASM Istio è installato, controlla la versione di istioctl:
    istioctl version
  19. Crea uno spazio dei nomi chiamato istio-system per i componenti del piano di controllo:
    kubectl create namespace istio-system

Installazione di Anthos Service Mesh

  1. Installa Anthos Service Mesh con istioctl utilizzando il profilo asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1232-2"

    L'argomento --set revision aggiunge un'etichetta di revisione nel formato istio.io/rev=asm-1232-2 a istiod. L'etichetta di revisione viene utilizzata dal webhook iniettore sidecar automatico per associare le sidecar iniettate a una determinata revisione istiod. Per abilitare l'inserimento automatico sidecar per uno spazio dei nomi, devi etichettarlo con una revisione che corrisponda all'etichetta su istiod.

  2. Verifica che i pod istiod siano in esecuzione con kubectl get pods:
    kubectl get pods -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1232-2-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
    
  3. Verifica che l'installazione sia stata completata:
    kubectl get svc -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    

Configura il webhook di convalida

Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.

  1. Crea un file denominato istiod-service.yaml con il seguente contenuto:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1232-2
        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-1232-2
      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. Utilizza kubectl per applicare la configurazione del webhook di convalida:
    kubectl apply -f istiod-service.yaml
  3. Verifica che la configurazione sia stata applicata:
    kubectl get svc -n istio-system

    La risposta dovrebbe essere simile a:

    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
    

Maiusc.

Configurare e scaricare ASM

Leggi i passaggi seguenti prima di iniziare. Ti chiederemo di eseguire alcuni dei passaggi elencati nella documentazione di ASM, quindi di tornare qui per completare l'installazione.

Questa guida spiega come eseguire un'installazione pulita della versione 1.23.2-asm.2 di Anthos Service Mesh (ASM) sui cluster Anthos collegati. Utilizza questa guida per installare Anthos Service Mesh nei seguenti ambienti:

  • Amazon Elastic Kubernetes Service (Amazon EKS) su Kubernetes
  • Servizio Microsoft Azure Kubernetes (Microsoft AKS) su Kubernetes
  • Cappello rosso OpenShift

Preparazione dell'installazione di Anthos Service Mesh

    Linux

  1. Concedi il vincolo di contesto di sicurezza (SCC) anyuid all'istituto con il seguente comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz
  3. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.23.2-asm.2-linux-amd64.tar.gz.1.sig istio-1.23.2-asm.2-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  4. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  5. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  6. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  7. Mac OS

  8. Concedi il vincolo di contesto di sicurezza (SCC) anyuid all'istituto con il seguente comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz
  10. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.23.2-asm.2-osx.tar.gz.1.sig istio-1.23.2-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  11. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  12. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  13. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Concedi il vincolo di contesto di sicurezza (SCC) anyuid all'istituto con il seguente comando dell'interfaccia a riga di comando OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  16. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip
  17. Scarica il file della firma e utilizza il valore opensl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.23.2-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.23.2-asm.2-win.zip.1.sig istio-1.23.2-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  18. Estrai i contenuti del file in qualsiasi punto del tuo file system. Ad esempio, per estrarre i contenuti nella directory di lavoro attuale:
    tar xzf istio-1.23.2-asm.2-win.zip

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.23.2-asm.2, che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh è nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests\profiles.
  19. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.23.2-asm.2
  20. Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
    set PATH=%CD%\bin:%PATH%
  21. Ora che ASM Istio è installato, controlla la versione di istioctl:
    istioctl version
  22. Crea uno spazio dei nomi chiamato istio-system per i componenti del piano di controllo:
    kubectl create namespace istio-system

Installazione di Anthos Service Mesh

  1. Installa Anthos Service Mesh con istioctl utilizzando il profilo asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1232-2"

    L'argomento --set revision aggiunge un'etichetta di revisione nel formato istio.io/rev=asm-1232-2 a istiod. L'etichetta di revisione viene utilizzata dal webhook iniettore sidecar automatico per associare le sidecar iniettate a una determinata revisione istiod. Per abilitare l'inserimento automatico sidecar per uno spazio dei nomi, devi etichettarlo con una revisione che corrisponda all'etichetta su istiod.

  2. Verifica che i pod istiod siano in esecuzione con kubectl get pods:
    kubectl get pods -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1232-2-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
    
  3. Verifica che l'installazione sia stata completata:
    kubectl get svc -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1232-2      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    

Configura il webhook di convalida

Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.

  1. Crea un file denominato istiod-service.yaml con il seguente contenuto:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1232-2
        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-1232-2
      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. Utilizza kubectl per applicare la configurazione del webhook di convalida:
    kubectl apply -f istiod-service.yaml
  3. Verifica che la configurazione sia stata applicata:
    kubectl get svc -n istio-system

    La risposta dovrebbe essere simile a:

    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
    

Personalizzazione dell'installazione ASM

L'installazione ASM appena eseguita è minima, sufficiente per testare e utilizzare Apigee ibrido per casi d'uso di base. Per informazioni su come risolvere i casi d'uso più avanzati, come aggiungere, rimuovere o modificare i numeri di porta del bilanciatore del carico, consulta la pagina relativa all'abilitazione delle funzionalità facoltative.

Riepilogo

A questo punto hai installato cert-manager e ASM e sei pronto a installare lo strumento a riga di comando ibrido Apigee sulla tua macchina locale.

Passaggio successivo

1 2 3 (AVANTI) Passaggio 4: installa Apigeectl 5