Paso 4: Instala híbrido en GKE On-prem

Aplica la configuración al clúster:

Para instalar Apigee Hybrid en tu clúster, haz los siguiente:

  1. Asegúrate de estar en el directorio hybrid-base-directory/hybrid-files.
  2. Verifica que kubectl esté configurado en el contexto correcto. El contexto actual debe configurarse en el clúster en el que realizas la implementación:
    kubectl config get-contexts
  3. Ejecuta el comando init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    Con el comando init, se instalan los servicios de implementación de Apigee del controlador de implementación de Apigee y el webhook de admisión de Apigee, y se implementan componentes que no son de Apigee Istio. y Cert Manager.

  4. Para verificar 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, continúa con el siguiente paso.

  5. Realiza una instalación de “ejecución de prueba”. Ejecuta el comando apply con la marca --dry-run=true. Realizar una ejecución de prueba te permite comprobar si hay errores antes de que se realicen cambios en el clúster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Si no hay errores, puedes aplicar los componentes de entorno de ejecución específicos de Apigee al clúster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Para verificar el estado de la implementación, haz los siguiente:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

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

Agrega 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 trabajadores asignados a Cassandra y los agregarás a tu 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 tanto, debes agregar una entrada de nombre de host estático en /etc/hosts para cada nodo trabajador de Cassandra.

  1. Ejecuta este comando para obtener los nodos trabajadores de Cassandra. El parámetro apigee-data es la etiqueta de nodo predeterminada a la que se asigna Cassandra. Si usaste una etiqueta de nodo diferente, sustituye la que usaste. Consulta Etiqueta los nodos trabajadores.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Salida de 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. Agrega los nombres de los nodos y las IP externas que muestra el comando anterior para cada nodo trabajador de Cassandra a tu archivo /etc/hosts:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Habilita el acceso del sincronización

  1. Crea una cuenta de servicio de GCP y agrégale la función Administrador de la organización de Apigee. Esta cuenta de servicio se usará para autenticar una llamada a la API que realizarás en un paso posterior. Una forma sencilla de crear la cuenta de servicio es a través de GCP Console. Para obtener instrucciones, consulta Crea y administra cuentas de servicio en la documentación de GCP.
  2. Descarga la clave de la cuenta de servicio a tu sistema. Sigue las instrucciones en Crea claves de cuentas de servicio en la documentación de GCP.
  3. Mueve la clave de la cuenta de servicio descargada en directorio de tus 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)

    En el ejemplo anterior org-admin-service-account-file es la ruta en tu sistema a la clave de la cuenta de servicio que descargaste con la función Administrador de la organización de Apigee.

  5. Llama a la API de setSyncAuthorization para habilitar los permisos requeridos por 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"]}'
    

    Aquí:

    • your_org_name: Es el nombre de tu organización híbrida.
    • synchronizer-manager-service-account-email: Es el nombre de una cuenta de servicio con la función de Apigee Synchronizer Manager. El nombre se forma como 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 configuró la cuenta de servicio, llama a la siguiente API a fin de 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="
    }
        

Agrega la IP de MART a tu organización

Debes agregar la dirección IP del extremo de MART a tu organización de Apigee. Debes establecer este valor antes cuando estableciste el valor de la propiedad mart.hostAlias en el archivo de anulaciones. El plano de administración necesita esta dirección para que pueda comunicarse con el plano del entorno de ejecución mediante MART.

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

  1. Obtén el valor que configuraste antes en tu archivo de anulaciones para la propiedad mart.hostAlias. Para que MART funcione, el alias de host debe ser un nombre de dominio completamente calificado.
  2. Ubica la clave de la cuenta de servicio con la función Administrador de la organización de Apigee que descargaste anteriormente, en la sección Habilita 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)

    En el ejemplo anterior org-admin-service-account-file es la ruta en tu sistema a la clave de la cuenta de servicio que descargaste con la función Administrador de la organización de Apigee.

  4. Llama a la siguiente API de administración para actualizar tu organización con el extremo 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"
        } ]
      }
    }'

    A continuación, se muestra un ejemplo. Asegúrate de agregar 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 actualizaciones, aplicar parches o cualquier otra modificación en la configuración del clúster en lo sucesivo.