Paso 4: Instala la versión híbrida en GKE

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. 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.

  3. 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.

  4. 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
  5. 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
  6. 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.

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á este archivo para realizar futuras actualizaciones, parches o cualquier otra modificación en la configuración del clúster.