Paso 7: Configura el entorno de ejecución híbrido

Especifica anulaciones de configuración

El instalador híbrido de Apigee usa los valores predeterminados para muchos parámetros de configuración. Sin embargo, hay algunos parámetros de configuración que no tienen valores predeterminados. Debes proporcionar valores para estos parámetros de configuración, como se explica a continuación.

  1. Asegúrate de que estés en el directorio hybrid-base-directory/hybrid-files/overrides/.
    cd hybrid-base-directory/hybrid-files/overrides
  2. Crea un archivo nuevo llamado overrides.yaml en tu editor de texto favorito. Por ejemplo:
    vi overrides.yaml

    El overrides.yaml proporciona la configuración para tu instalación única de Apigee Hybrid. El archivo de anulación en este paso proporciona una configuración básica para una instalación de entorno de ejecución híbrido de tamaño reducido, adecuado para tu primera instalación.

  3. En overrides.yaml, agrega los valores de propiedad necesarios, que se muestran a continuación. También se proporciona una descripción detallada de cada propiedad:

    Para las instalaciones en entornos de producción, consulta los requisitos de almacenamiento de la base de datos de Cassandra en Configura Cassandra para la producción.

    Sintaxis

    Asegúrate de que el archivo overrides.yaml tenga la siguiente estructura y sintaxis. Los valores en red, bold italics son los valores de propiedad que debes proporcionar. Se describen en la siguiente tabla.

    Existen diferencias entre las diferentes plataformas para la región del proyecto de Google Cloud y la región del clúster de Kubernetes. Elige la plataforma en la que instalarás Apigee Hybrid.

    gcp:
      region: analytics-region
      projectID: gcp-project-id
    
    k8sCluster:
      name: cluster-name
      region: cluster-location # Must be the closest Google Cloud region to your cluster.
    org: org-name
    
    instanceID: "unique-instance-identifier"  # See the property description table below information about this parameter.
      
    cassandra:
      hostNetwork: false
        # Set to false for single region installations and multi-region installations
        # with connectivity between pods in different clusters, for example GKE installations.
        # Set to true  for multi-region installations with no communication between
        # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal,
        # AKS, EKS, and OpenShift installations.
        # See Multi-region deployment: Prerequisites
      storage:
        capacity: 500Gi
      resources:
        requests:
          cpu: 7
          memory: 15Gi
      maxHeapSize: 8192M
      heapNewSize: 1200M
        # Minimum storage requirements for a production environment.
        # See Configure Cassandra for production.
    
    virtualhosts:
      - name: environment-group-name
        sslCertPath: ./certs/cert-name.pem
        sslKeyPath: ./certs/key-name.key
    
    envs:
      - name: environment-name
        serviceAccountPaths:
          synchronizer: ./service-accounts/synchronizer-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-synchronizer.json
          udca: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
          runtime: ./service-accounts/runtime-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: ./service-accounts/metrics-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/watcher-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-watcher.json
    
    logger:
      enabled: false
            # Set to false to disable logger for GKE installations.
            # Set to true for all platforms other than GKE.
            # See apigee-logger in Service accounts and roles used by hybrid components.
      serviceAccountPath: ./service-accounts/logger-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-logger.json
    
    

    Ejemplo

    En el ejemplo siguiente, se muestra un archivo de anulación completo con valores de propiedad de ejemplo agregados:

    gcp:
      region: us-central1
      projectID: hybrid-example
    
    k8sCluster:
      name: apigee-hybrid
      region: us-central1
    
    org: hybrid-example
    
    instanceID: "my_hybrid_example"
      
    cassandra:
      hostNetwork: false
    
    virtualhosts:
      - name: example-env-group
        sslCertPath: ./certs/keystore.pem
        sslKeyPath: ./certs/keystore.key
    
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-synchronizer.json
          udca: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-udca.json
          runtime: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other kubernetes platforms.
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, logger-service-account-name.json
    
    
  4. Cuando termines, guarda el archivo.

En la siguiente tabla, se describe cada uno de los valores de propiedad que debes proporcionar en el archivo de anulación. Para obtener más información, consulta Referencia de la propiedad de configuración.

Variable Descripción
analytics-region En GKE, debe establecer este valor en la misma región donde se ejecuta el clúster. En todas las demás plataformas, selecciona la región de estadísticas más cercana a tu clúster, que admite Analytics (consulta la tabla en la Parte 1: Paso 4, crea una organización.

Corresponde al valor que asignaste anteriormente a la variable de entorno ANALYTICS_REGION.

gcp-project-id Identifica el proyecto de Google Cloud en el que apigee-logger y apigee-metrics envían sus datos. Este es el valor asignado a la variable de entorno PROJECT_ID.
cluster-name El nombre de tu clúster de Kubernetes. Este es el valor asignado a la variable de entorno CLUSTER_NAME.
cluster-location La región en la que se ejecuta el clúster. Esta es la región en la que creaste el clúster en el Paso 1: Crea un clúster.

Corresponde al valor que asignaste anteriormente a la variable de entorno CLUSTER_LOCATION.

org-name El ID de la organización híbrida de Apigee. Este es el valor asignado a la variable de entorno ORG_NAME.
unique-instance-identifier

Una string única para identificar esta instancia híbrida de Apigee por clúster. La string puede ser una combinación de letras y números de hasta 63 caracteres.

  • Puedes crear varias organizaciones en un solo clúster. Solo asegúrate de usar el mismo valor instanceID cada vez que agregues una organización nueva al mismo clúster.
  • Si tienes varios clústeres (en la misma región o en varias regiones), cada clúster requiere un instanceID único.

Si necesitas ayuda para generar un ID único, puedes usar una herramienta de generación de strings aleatoria de tu elección, como random.org/strings.

environment-group-name El nombre del grupo de entornos al que se asignan tus entornos. Este es el grupo que creaste en la Configuración del proyecto y la organización - Paso 5: crea un grupo de entornos. Este es el valor asignado a la variable de entorno ENV_GROUP.
cert-name
key-name
Ingresa el nombre de la clave de TLS autofirmada y los archivos de certificado que generaste antes en el Paso 6: Crea certificados TLS. Estos archivos deben estar ubicados en el directorio base_directory/hybrid-files/certs. Por ejemplo:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
environment-name Usa el mismo nombre que usaste cuando creaste un entorno en la IU, como se explica en Configuración del proyecto y la organización - Paso 5: crea un grupo de entornos.
synchronizer-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-synchronizer que generaste con la herramienta de create-service-account en Configuración del entorno de ejecución híbrido, paso 6: Crea credenciales y cuentas de servicio. Puedes ver la lista de archivos de cuentas de servicio en el directorio service-accounts/. Por ejemplo:
ls ../service-accounts/
udca-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-udca que generaste con la herramienta create-service-account.
runtime-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-runtime que generaste con la herramienta create-service-account.
mart-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-mart que generaste con la herramienta create-service-account.
metrics-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-metrics que generaste con la herramienta create-service-account.
udca-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-udca que generaste con la herramienta create-service-account.
watcher-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-watcher que generaste con la herramienta create-service-account.
logger-service-account-name En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, non-prod de forma predeterminada. Para los entornos de producción, el nombre del archivo de claves de la cuenta de servicio apigee-logger que generaste con la herramienta create-service-account.

Resumen

El archivo de configuración le indica a Kubernetes cómo implementar los componentes híbridos en un clúster. A continuación, habilitarás el acceso al sincronizador para que el plano de ejecución y los de administración de Apigee puedan comunicarse.

1 2 3 4 5 6 7 (SIGUIENTE) Paso 8: Habilita el acceso de Synchronizer 9