Paso 4: Instala el entorno de ejecución híbrido en GKE On-Prem

Aplica la configuración al clúster

Para instalar Apigee hybrid en tu clúster, sigue estos pasos:

  1. Asegúrate de que estás en el directorio hybrid-base-directory/hybrid-files.
  2. Verifica que kubectl esté configurado en el contexto correcto. El contexto actual debe ser el clúster en el que vas a implementar:
    kubectl config get-contexts
  3. Ejecuta el comando init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    El comando init instala los servicios de despliegue de Apigee Apigee Deployment Controller y Apigee Admission Webhook, y despliega componentes que no son de Apigee, como Istio y Cert Manager.

  4. Para comprobar el estado de la implementación, puedes usar estos comandos:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    y

    kubectl get pods -n apigee-system

    y

    kubectl get pods -n istio-system

    Cuando los pods estén listos, ve al siguiente paso.

  5. Haz una instalación de prueba. Ejecuta el comando apply con la marca --dry-run=true. Al hacer una prueba, puedes comprobar si hay errores antes de que se apliquen cambios al clúster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Si no hay errores, puede aplicar los componentes de tiempo de ejecución específicos de Apigee al clúster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Para comprobar el estado de la implementación, sigue estos pasos:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Repite este paso hasta que todos los pods estén listos. Los pods pueden tardar varios minutos en iniciarse.

Añadir un nombre de host estático para Cassandra en /etc/hosts (solo Anthos 1.2.x)

En este paso, obtendrás la IP y el nombre de host de los nodos de trabajo asignados a Cassandra y los añadirás al archivo /etc/hosts. Cuando se usa la red del host, el pod usa el nombre de host y la IP del nodo. El nombre de host del nodo no está en el DNS, por lo que debes añadir una entrada de nombre de host estático en /etc/hosts para cada nodo de trabajo de Cassandra.

  1. Ejecuta este comando para obtener los nodos de trabajador de Cassandra. El parámetro apigee-data es la etiqueta de nodo predeterminada a la que se asigna Cassandra. Si has usado otra etiqueta de nodo, sustitúyela por la que hayas usado. Consulta cómo etiquetar los nodos de trabajo.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Ejemplo:

    kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d
    
    NAME                           STATUS   ROLES    AGE   VERSION          INTERNAL-IP    EXTERNAL-IP    OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    my-cluster1-844788cc8c-2gx7d   Ready    none     19d   v1.14.7-gke.24   21.0.129.248   21.0.129.248   Ubuntu 18.04.3 LTS   4.15.0-62-generic   docker://17.3.2
  2. Añade los nombres de los nodos y las IPs externas devueltos por el comando anterior de cada nodo de trabajo de Cassandra a tu archivo /etc/hosts:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Habilitar el acceso del sincronizador

  1. Crea una cuenta de servicio de GCP y añádele el rol Administrador de la organización de Apigee. Esta cuenta de servicio se usará para autenticar una llamada a la API que harás en un paso posterior. Una forma sencilla de crear la cuenta de servicio es a través de la consola de GCP. Para ver las instrucciones, consulta el artículo Crear y gestionar cuentas de servicio de la documentación de GCP.
  2. Descarga la clave de la cuenta de servicio en tu sistema. Sigue las instrucciones que se indican en el artículo Crear claves de cuenta de servicio de la documentación de GCP.
  3. Mueve la clave de cuenta de servicio descargada al directorio de cuentas de servicio: /hybrid-base-directory/hybrid-files/service-accounts.
  4. Ejecuta estos dos comandos para obtener un token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Donde org-admin-service-account-file es la ruta de tu sistema a la clave de la cuenta de servicio que has descargado con el rol Administrador de la organización de Apigee.

  5. Llama a la API setSyncAuthorization para habilitar los permisos necesarios para el sincronizador:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    Donde:

    • your_org_name: El nombre de tu organización híbrida.
    • synchronizer-manager-service-account-email: el nombre de una cuenta de servicio con el rol Administrador del sincronizador de Apigee. El nombre tiene el formato de una dirección de correo electrónico. Por ejemplo: apigee-synchronizer@my-project.iam.gserviceaccount.com

    Ejemplo:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. Para verificar que se ha configurado la cuenta de servicio, llama a la siguiente API para obtener una lista de cuentas de servicio:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    El resultado es similar al siguiente:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

Añadir la IP de MART a tu organización

Debe añadir la dirección IP del endpoint MART a su organización de Apigee. Este valor ya lo ha definido al asignar el valor de la propiedad mart.hostAlias en el archivo de anulaciones. El plano de gestión necesita esta dirección para poder comunicarse con el plano de tiempo de ejecución a través de MART.

Sigue estos pasos para añadir la IP de MART a tu organización:

  1. Obtén el valor que definiste anteriormente en el archivo de anulaciones para la propiedad mart.hostAlias. Para que MART funcione, el alias de host debe ser un nombre de dominio completo.
  2. Busca la clave de la cuenta de servicio con el rol Administrador de la organización de Apigee que descargaste anteriormente en la sección Habilitar el acceso del sincronizador.
  3. Ejecuta estos dos comandos para obtener un token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Donde org-admin-service-account-file es la ruta de tu sistema a la clave de la cuenta de servicio que has descargado con el rol Administrador de la organización de Apigee.

  4. Llama a la siguiente API de gestión para actualizar tu organización con el endpoint de MART:
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    Aquí tienes un ejemplo. Asegúrate de añadir el prefijo "https://" al nombre de dominio.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

Guarda el archivo de anulaciones.

Asegúrate de guardar el archivo de anulaciones. Necesitarás este archivo para realizar futuras actualizaciones, parches o cualquier otra modificación en la configuración del clúster.