Paso 5: Instalar el entorno de ejecución de Hybrid

Habilita el acceso del sincronizador

Para habilitar el acceso del sincronizador, haz lo siguiente:

  1. Crea una cuenta de servicio de Google Cloud 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.

    Por ejemplo, con los siguientes comandos gcloud, se creará la cuenta de servicio y se le asignará la función Administrador de la organización de Apigee:

    1. Crea la cuenta:
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      En que apigee-org-admin es el nombre de la cuenta de servicio que creas. Se recomienda “apigee-org-admin” para este instructivo.

    2. Asigna la función Administrador de la organización de Apigee a la cuenta de servicio:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      Aquí:

      • $PROJECT_ID es el nombre de tu proyecto de Google Cloud que creaste en el Paso 2: Crea un proyecto de Google Cloud.
      • apigee-org-admin es el nombre de la cuenta de servicio que acabas de crear.
      • roles/apigee.admin es la función Administrador de la organización de Apigee.
  2. Descarga la clave de la cuenta de servicio a tu sistema. Usa el siguiente comando para descargar la clave en tu directorio service-accounts/. Para obtener más información, consulta las instrucciones en Crea claves de cuentas de servicio en la documentación de GCP.
    1. Asegúrate de estar en el directorio /hybrid-base-directory/hybrid-files/.
    2. Descarga la clave:
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      El resultado debería ser similar a lo siguiente:

      created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid-
      example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com]
      $ 
  3. Verifica la ruta a la clave de la cuenta de servicio de Administrador de la organización de Apigee con el siguiente comando:
    ls service-accounts/*admin*

    El resultado debería ser similar a lo siguiente:

    service-accounts/hybrid-example-apigee-org-admin.json
  4. Crea una variable de entorno ORG_ADMIN_ACCOUNT con el nombre del archivo de claves. Por ejemplo:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  5. Ejecuta los siguientes comandos para obtener un token:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. Obtén la dirección de correo electrónico de tu cuenta de servicio de apigee-synchronizer con el siguiente comando:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    Si coincide con el patrón apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com, puedes usarlo en el paso siguiente

  7. Llama a la API de setSyncAuthorization para habilitar los permisos requeridos de Synchronizer con el siguiente comando:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
    

    Aquí:

    • $ORG_NAME: Es el nombre de tu organización híbrida.
    • apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: Es la dirección de correo electrónico de la cuenta de servicio de apigee-syncnronizer.
  8. A fin de verificar que se haya configurado la cuenta de servicio, usa el siguiente comando para llamar a la API y 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/$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="
    }

Aplica la configuración al clúster:

Sigue estos pasos para instalar Apigee Hybrid en tu clúster:

  1. Asegúrate de estar en el directorio hybrid-base-directory/hybrid-files.
  2. Verifica que kubectl esté configurado en el contexto correcto con el siguiente comando. El contexto actual se debe configurar en el clúster en el que implementas Apigee Hybrid.
    kubectl config get-contexts
  3. Verifica que la variable KUBECONFIG esté establecida mediante el siguiente comando. Si no es así, consulta Requisitos previos.
    echo $KUBECONFIG
  4. Realiza una inicialización de ejecución de prueba. Ejecuta el comando init con la marca --dry-run. Realizar una ejecución de prueba te permite comprobar si hay errores antes de que se realicen cambios en el clúster.

    En la versión 1.3 híbrida, la sintaxis de la marca --dry-run depende de la versión del kubectl que ejecutes. Verifica la versión de kubectl con el siguiente comando:

    kubectl version

    Versión 1.17 de kubectl y versiones anteriores:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true

    Versión 1.18 kubectl y versiones posteriores:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  5. Si no hay errores, ejecuta el comando init de la siguiente manera:
    $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.

  6. Para verificar el estado de la implementación, puedes usar los siguientes comandos:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    Cuando los pods estén listos, continúa con el siguiente paso.

  7. Realiza una instalación de ejecución de prueba. Ejecuta el comando apply con la marca --dry-run.

    Versión 1.17 de kubectl y versiones anteriores:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true

    Versión 1.18 kubectl y versiones posteriores:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  8. Si no hay errores, puedes aplicar los componentes del entorno de ejecución específico de Apigee al clúster con el siguiente comando:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  9. Para verificar el estado de la implementación, ejecuta el siguiente comando:
    $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.

Habilita Apigee Connect

Apigee Connect administra la comunicación entre el plano de administración de Apigee y MART en el plano de entorno de ejecución. Para obtener más información, consulta Usa Apigee Connect.

Para habilitar Apigee Connect, sigue estos pasos:

  1. En la línea de comandos, obtén tus credenciales de autenticación de gcloud, como se muestra en el siguiente ejemplo:

    TOKEN=$(gcloud auth print-access-token)

    Para verificar que tu token se haya propagado, usa echo, como se muestra en el siguiente ejemplo:

    echo $TOKEN

    Se debería mostrar tu token como una string codificada.

    Para obtener más información, consulta la descripción general de la herramienta de línea de comandos de gcloud.

  2. Usa el siguiente comando a fin de ver si Apigee Connect está habilitado para tu organización.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    En este comando, $ORG_NAME es el ID de tu organización.

    Si el resultado contiene lo siguiente:

          "name" : "features.mart.connect.enabled",
          "value" : "true"

    Apigee Connect está habilitado y puedes omitir el resto de esta sección.

  3. Habilita Apigee Connect con el siguiente comando:
    curl -H "Authorization: Bearer $TOKEN" -X PUT \
      -H "Content-Type: application/json" \
      -d '{
        "name" : "'"$ORG_NAME"'",
        "properties" : {
          "property" : [ {
            "name" : "features.hybrid.enabled",
            "value" : "true"
          }, {
            "name" : "features.mart.connect.enabled",
            "value" : "true"
          } ]
        }
      }' \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
    

    Si el resultado contiene las dos propiedades siguientes, Apigee Connect se habilitó correctamente:

          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
    

    El resultado debería ser similar a lo siguiente:

    {
      "name": "hybrid-example-2",
      "createdAt": "1594409699772",
      "lastModifiedAt": "1594776283697",
      "environments": [
        "example-env"
      ],
      "properties": {
        "property": [
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-central1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL"
    }