Paso 3: Instalar ASM

Instala ASM

Apigee Hybrid usa la distribución de Istio proporcionada con Anthos Service Mesh (ASM). Sigue estos pasos para instalar ASM en tu clúster.

Versiones de ASM admitidas

Consulta Apigee Hybrid: Plataformas compatibles para ver las versiones de ASM compatibles con la versión de Hybrid 1.5.

Realiza los pasos de configuración y ajustes de ASM

Para completar la instalación de ASM, primero debes seguir los pasos de configuración y ajustes específicos de ASM en la documentación de ASM. Luego, debes regresar aquí para completar la configuración específica de la opción híbrida antes de aplicar la configuración al clúster.

Las instrucciones para instalar y configurar ASM varían según la plataforma. Las plataformas se dividen en las siguientes categorías:

  • GKE: clústeres de Google Kubernetes Engine que se ejecutan en Google Cloud.
  • Fuera de Google Cloud: Clústeres de Anthos que se ejecutan en:
    • Clústeres de Anthos alojados en VMware (GKE On-Prem)
    • Anthos en Bare Metal
    • Clústeres de Anthos en AWS
    • Amazon EKS
  • Otras plataformas de Kubernetes: clústeres que cumplen con las especificaciones que se crean y ejecutan en los siguientes entornos:
    • AKS
    • EKS
    • OpenShift

GKE

Prepárate para instalar ASM

  1. Verifica las variables de entorno que necesitarás para los siguientes pasos y configúralas si lo necesitas:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Crea un archivo de superposición llamado overlay.yaml con el siguiente contenido:
    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
    • apigee-runtime es el valor predeterminado para el selector de nodos. Este es el grupo de nodos apigee-runtime que creaste en el Paso 1: Crea un clúster. Si usas un selector de nodos diferente o no usas uno, cambia u omite la propiedad nodeSelector.
    • STATIC_IP es la dirección IP de tu balanceador de cargas. Si no configuraste una, omite la propiedad loadBalancerIP, pero conserva las propiedades type y ports.
  3. Sigue las instrucciones a fin de prepararte para instalar ASM:
    1. Requisitos previos de Anthos.
    2. Permisos necesarios para instalar Anthos Service Mesh
    3. Planificar una instalación
  4. Instala asmcli y cualquier herramienta necesaria, como git, kubectl y jq, mediante las instrucciones que se indican en Instala las herramientas necesarias.
  5. Continúa con el paso Otorga permisos de administrador de clúster y detente. No realices el paso “Validar proyecto y clúster”.
  6. Instala ASM con funciones opcionales. Especifica la puerta de enlace de entrada heredada con --option legacy-default-ingressgateway. Por ejemplo:
    ./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 es el directorio de salida en el que deseas que asmcli configure la instalación de ASM, incluidos todos los subdirectorios.
    • overlay.yaml es el archivo de superposición que creaste en los pasos anteriores.

    Usa esta configuración cuando sigas las instrucciones de Instala con funciones opcionales.

Soluciona problemas

Si encuentras un error en gcloud container hub memberships register, es posible que hayas excedido la cantidad máxima de clústeres registrados en GKE Hub. Por ejemplo:

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

Prueba los siguientes pasos para solucionar este error y, luego, vuelve a ejecutar asmcli install:

  1. Enumera las membresías de GKE Hub para tu proyecto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Borra las membresías de GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Para obtener más información sobre los límites de GKE Hub, consulta Cuotas y límites.

Fuera de Google Cloud

Estas instrucciones son para instalar y configurar ASM en instancias de Apigee Hybrid mediante Anthos a fin de ejecutarse en lo siguiente:

  • Clústeres de Anthos alojados en VMware (GKE On-Prem)
  • Anthos en Bare Metal
  • Clústeres de Anthos en AWS
  • Amazon EKS

Prepárate para instalar ASM

  1. Verifica las variables de entorno que necesitarás para los siguientes pasos y configúralas si lo necesitas:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Crea un archivo de superposición llamado overlay.yaml con el siguiente contenido:
    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 es el valor predeterminado para el selector de nodos. Este es el grupo de nodos apigee-runtime que creaste en el Paso 1: Crea un clúster. Si usas un selector de nodos diferente o no usas uno, cambia u omite la propiedad nodeSelector.
    • STATIC_IP es la dirección IP de tu balanceador de cargas. Si no configuraste una, omite la propiedad loadBalancerIP, pero conserva las propiedades type y ports.
  3. Sigue las instrucciones a fin de prepararte para instalar ASM:
    1. Requisitos previos de Anthos.
    2. Permisos necesarios para instalar Anthos Service Mesh
    3. Planificar una instalación
  4. Instala asmcli y cualquier herramienta necesaria, como git, kubectl y jq, mediante las instrucciones que se indican en Instala las herramientas necesarias.
  5. Continúa con el paso Otorga permisos de administrador de clúster y detente. No realices el paso “Validar proyecto y clúster”.
  6. Instala ASM con funciones opcionales. Especifica la puerta de enlace de entrada heredada con --option legacy-default-ingressgateway. Por ejemplo:
    ./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 es el directorio de salida en el que deseas que asmcli configure la instalación de ASM, incluidos todos los subdirectorios.
    • overlay.yaml es el archivo de superposición que creaste en los pasos anteriores.

    Usa esta configuración cuando sigas las instrucciones de Instala con funciones opcionales.

Soluciona problemas

Si encuentras un error en gcloud container hub memberships register, es posible que hayas excedido la cantidad máxima de clústeres registrados en GKE Hub. Por ejemplo:

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

Prueba los siguientes pasos para solucionar este error y, luego, vuelve a ejecutar asmcli install:

  1. Enumera las membresías de GKE Hub para tu proyecto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Borra las membresías de GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Para obtener más información sobre los límites de GKE Hub, consulta Cuotas y límites.

GKE en otras plataformas

Estas instrucciones son para instalar y configurar ASM en instancias de Apigee Hybrid mediante Anthos a fin de ejecutarse en lo siguiente:

  • GKE On-Prem (Anthos)
  • Anthos en Bare Metal
  • GKE en AWS

Antes de comenzar, lee los siguientes pasos. Te pediremos que sigas algunos de los pasos que se indican en la documentación de ASM y, luego, regresa para completar la instalación.

  1. Descarga y descomprime istioctl de acuerdo con las instrucciones de la documentación de ASM: Descarga el archivo de instalación.
  2. Según la autoridad certificadora que planeas usar, instala ASM mediante las instrucciones que se indican en una de las siguientes secciones:
    1. Usa la CA de Mesh: instala Anthos Service Mesh con la CA de Mesh
    2. Proporciona tus propios certificados con la CA de Istio: instala Anthos Service Mesh con la CA de Istio
  3. Configura el webhook de validación con las instrucciones de Configura el webhook de validación.
  4. Verifica los componentes del plano de control con los instructivos en Verifica los componentes del plano de control.

    No continúes con la opción "Incorpora proxies de sidecar".

Otras plataformas de Kubernetes

AKS

Cómo configurar y descargar los ASM

Antes de comenzar, lee los siguientes pasos. Te pediremos que sigas algunos de los pasos que se indican en la documentación de ASM y, luego, regresa para completar la instalación.

En esta guía, se explica cómo realizar una instalación limpia de la versión de Anthos Service Mesh (ASM) 1.12.9-asm.3 en clústeres conectados a Anthos. Usa esta guía para instalar Anthos Service Mesh en los siguientes entornos:

  • Amazon Elastic Kubernetes Service (Amazon EKS) en Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) en Kubernetes
  • Red Hat OpenShift

Prepárate para instalar Anthos Service Mesh

    Linux

  1. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  4. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  5. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  10. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  11. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests\profiles.
  16. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  17. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    set PATH=%CD%\bin:%PATH%
  18. Ahora que ASM Istio está instalado, verifica la versión de istioctl:
    istioctl version
  19. Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
    kubectl create namespace istio-system

Instala Anthos Service Mesh

  1. Instala Anthos Service Mesh con istioctl mediante el perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    El argumento --set revision agrega una etiqueta de revisión con el formato istio.io/rev=asm-1129-3 a istiod. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar para un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta en istiod.

  2. Verifica que los Pods istiod se ejecuten con kubectl get pods:
    kubectl get pods -n istio-system

    Deberías obtener un resultado similar al siguiente:

    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-1129-3-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  3. Verifica que se haya completado la instalación:
    kubectl get svc -n istio-system

    Deberías obtener un resultado similar al siguiente:

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

Configura el webhook de validación

Cuando instales Anthos Service Mesh, configura una etiqueta de revisión en istiod. Debes configurar la misma revisión en el webhook de validación.

  1. Crea un archivo istiod-service.yaml con el siguiente contenido:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1129-3
        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-1129-3
      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. Usa kubectl para aplicar la configuración de webhook de validación:
    kubectl apply -f istiod-service.yaml
  3. Verifica si se aplicó la configuración:
    kubectl get svc -n istio-system

    La respuesta debería ser similar a la siguiente:

    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

EKS

Cómo configurar y descargar los ASM

Antes de comenzar, lee los siguientes pasos. Te pediremos que sigas algunos de los pasos que se indican en la documentación de ASM y, luego, regresa para completar la instalación.

En esta guía, se explica cómo realizar una instalación limpia de la versión de Anthos Service Mesh (ASM) 1.12.9-asm.3 en clústeres conectados a Anthos. Usa esta guía para instalar Anthos Service Mesh en los siguientes entornos:

  • Amazon Elastic Kubernetes Service (Amazon EKS) en Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) en Kubernetes
  • Red Hat OpenShift

Prepárate para instalar Anthos Service Mesh

    Linux

  1. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  4. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  5. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  10. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  11. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests\profiles.
  16. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  17. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    set PATH=%CD%\bin:%PATH%
  18. Ahora que ASM Istio está instalado, verifica la versión de istioctl:
    istioctl version
  19. Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
    kubectl create namespace istio-system

Instala Anthos Service Mesh

  1. Instala Anthos Service Mesh con istioctl mediante el perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    El argumento --set revision agrega una etiqueta de revisión con el formato istio.io/rev=asm-1129-3 a istiod. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar para un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta en istiod.

  2. Verifica que los Pods istiod se ejecuten con kubectl get pods:
    kubectl get pods -n istio-system

    Deberías obtener un resultado similar al siguiente:

    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-1129-3-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  3. Verifica que se haya completado la instalación:
    kubectl get svc -n istio-system

    Deberías obtener un resultado similar al siguiente:

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

Configura el webhook de validación

Cuando instales Anthos Service Mesh, configura una etiqueta de revisión en istiod. Debes configurar la misma revisión en el webhook de validación.

  1. Crea un archivo istiod-service.yaml con el siguiente contenido:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1129-3
        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-1129-3
      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. Usa kubectl para aplicar la configuración de webhook de validación:
    kubectl apply -f istiod-service.yaml
  3. Verifica si se aplicó la configuración:
    kubectl get svc -n istio-system

    La respuesta debería ser similar a la siguiente:

    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

OpenShift

Cómo configurar y descargar los ASM

Antes de comenzar, lee los siguientes pasos. Te pediremos que sigas algunos de los pasos que se indican en la documentación de ASM y, luego, regresa para completar la instalación.

En esta guía, se explica cómo realizar una instalación limpia de la versión de Anthos Service Mesh (ASM) 1.12.9-asm.3 en clústeres conectados a Anthos. Usa esta guía para instalar Anthos Service Mesh en los siguientes entornos:

  • Amazon Elastic Kubernetes Service (Amazon EKS) en Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) en Kubernetes
  • Red Hat OpenShift

Prepárate para instalar Anthos Service Mesh

    Linux

  1. Otorga la restricción de contexto de seguridad (SCC) anyuid al sistema istio con el siguiente comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  3. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  4. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  5. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  6. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  7. macOS

  8. Otorga la restricción de contexto de seguridad (SCC) anyuid al sistema istio con el siguiente comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  10. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  12. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  13. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Otorga la restricción de contexto de seguridad (SCC) anyuid al sistema istio con el siguiente comando de la CLI de OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  16. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  17. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  18. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.12.9-asm.3-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.12.9-asm.3 que contiene lo siguiente:

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests\profiles.
  19. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.12.9-asm.3
  20. Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
    set PATH=%CD%\bin:%PATH%
  21. Ahora que ASM Istio está instalado, verifica la versión de istioctl:
    istioctl version
  22. Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
    kubectl create namespace istio-system

Instala Anthos Service Mesh

  1. Instala Anthos Service Mesh con istioctl mediante el perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    El argumento --set revision agrega una etiqueta de revisión con el formato istio.io/rev=asm-1129-3 a istiod. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar para un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta en istiod.

  2. Verifica que los Pods istiod se ejecuten con kubectl get pods:
    kubectl get pods -n istio-system

    Deberías obtener un resultado similar al siguiente:

    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-1129-3-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  3. Verifica que se haya completado la instalación:
    kubectl get svc -n istio-system

    Deberías obtener un resultado similar al siguiente:

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

Configura el webhook de validación

Cuando instales Anthos Service Mesh, configura una etiqueta de revisión en istiod. Debes configurar la misma revisión en el webhook de validación.

  1. Crea un archivo istiod-service.yaml con el siguiente contenido:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1129-3
        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-1129-3
      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. Usa kubectl para aplicar la configuración de webhook de validación:
    kubectl apply -f istiod-service.yaml
  3. Verifica si se aplicó la configuración:
    kubectl get svc -n istio-system

    La respuesta debería ser similar a la siguiente:

    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

Personaliza la instalación de ASM

La instalación de ASM que acabas de realizar es una instalación mínima, suficiente para probar y usar Apigee Hybrid en casos de uso básicos. Para obtener información sobre cómo abordar casos de uso más avanzados, como agregar, quitar o modificar números de puertos del balanceador de cargas, consulta Habilita funciones opcionales.

Resumen

Ahora tienes instalado cert-manager y ASM, y estás listo para instalar la herramienta de línea de comandos híbrida de Apigee en tu máquina local.

Próximo paso

1 2 3 (SIGUIENTE) Paso 4: Instala apigeectl 5 6 7 8 9