Paso 6: Configurar el clúster

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.

Antes de comenzar

Te recomendamos que revises las siguientes situaciones para determinar si deseas configurar tu clúster en función de ellas. Estas configuraciones son opcionales.

Configura el clúster

Por convención, las anulaciones de configuración se escriben en un archivo llamado overrides.yaml en el directorio $HYBRID_FILES/overrides.

  1. Crea un archivo nuevo llamado overrides.yaml en el directorio $HYBRID_FILES/overrides. Por ejemplo:
    vi $HYBRID_FILES/overrides/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.

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

    Si instalas Apigee Hybrid en GKE y planeas usar Workload Identity para autenticar los componentes híbridos, selecciona la pestaña GKE: Workload Identity para configurar tu archivo overrides.yaml.

    En el caso de todas las demás instalaciones, selecciona la pestaña de los entornos de no producción, Non-prod, o de producción, Prod, según lo que elijas en Paso 4: Crea cuentas de servicio y credenciales.

    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.

    GKE: Workload Identity

    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.

    Si instalas Apigee Hybrid en GKE, tienes una alternativa para autenticar y realizar solicitudes a las APIs de Google, Workload Identity. Para obtener descripciones generales de Workload Identity, consulta lo siguiente:

    Para usar Workload Identity con Apigee Hybrid en GKE, usa esta plantilla y, luego, sigue los pasos del Paso 8: Instala el entorno de ejecución híbrido para crear las cuentas de servicio de Kubernetes y asociarlas con las cuentas de servicio de Google que creaste en el Paso 4: Crea cuentas de servicio y credenciales.

    gcp:
      region: ANALYTICS_REGION
      projectID: GCP_PROJECT_ID
      workloadIdentityEnabled: true
    
    k8sCluster:
      name: CLUSTER_NAME
      region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster.
    org: ORG_NAME
    
    instanceID: "UNIQUE_INSTANCE_IDENTIFIER"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      hostNetwork: false
        # false for all GKE installations.
        # See Multi-region deployment: Prerequisites
      replicaCount: 3
        # Use 1 for demo installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      backup:
        enabled: true
        # Set to true for initial installation.
        # This triggers apigeectl to create the apigee-cassandra-backup Kubernetes service account.
        # See Cassandra backup overview for instructions on using cassandra.backup.
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
    
    logger:
      enabled: false # Set to false for all GKE installations.
    
    

    No producción

    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"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      replicaCount: 1
        # Use 1 for non-prod or "demo" installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      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
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: NON_PROD_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-non-prod.json"
        udca: NON_PROD_SERVICE_ACCOUNT_FILEPATH
        runtime: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    
    mart:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    connectAgent:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    metrics:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    udca:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    watcher:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    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: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    

    Producción

    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"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    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
      replicaCount: 3
        # Use multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      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
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-synchronizer.json"
        udca: UDCA_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
        runtime: RUNTIME_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-runtime.json"
    
    mart:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-mart.json"
    
    connectAgent:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: METRICS_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-metrics.json"
    
    udca:
      serviceAccountPath: UDCA_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
    
    watcher:
      serviceAccountPath: WATCHER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/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: LOGGER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/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"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      hostNetwork: false
      replicaCount: 3
    
    virtualhosts:
    - name: example-env-group
      selector:
        app: apigee-ingressgateway
        ingress_name: my-ingress-1
      sslCertPath: ./certs/keystore.pem
      sslKeyPath: ./certs/keystore.key
    
    ingressGateways:
    - name: my-ingress-1
      replicaCountMin: 2
      replicaCountMax: 10
    
    envs:
    - name: test
      serviceAccountPaths:
        synchronizer: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-synchronizer.json
        udca: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-udca.json
        runtime: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms.
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, LOGGER_SERVICE_ACCOUNT_NAME.json
    
  3. 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 2, 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. Puede ser cualquier combinación de letras y números de hasta 63 caracteres.

Puedes crear varias organizaciones en el mismo clúster, pero el instanceID debe ser igual para todas las organizaciones del mismo clúster de Kubernetes.

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 3: 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 5: 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
INGRESS_NAME El nombre de la puerta de enlace de entrada de Apigee para la implementación. Puede ser cualquier nombre que cumpla con los siguientes requisitos:
  • Tener una longitud máxima de 17 caracteres
  • Contener solo caracteres alfanuméricos en minúscula “.” o “-”.
  • Comenzar con un carácter alfanumérico
  • Terminar con un carácter alfanumérico

Consulta ingressGateways[].name en la referencia de la propiedad Configuración.

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE (Opcional). Este es un par clave-valor que proporciona anotaciones para tu servicio de entrada predeterminado. La plataforma en la nube usa las anotaciones para configurar tu instalación híbrida, por ejemplo, si estableces el tipo de balanceador de cargas como interno o externo.

Las anotaciones varían de una plataforma a otra. Consulta la documentación de tu plataforma para ver las anotaciones obligatorias y sugeridas.

Marca como comentario o borra esta sección si no la usas.

SVC_LOAD_BALANCER_IP (Opcional). Es una dirección IP que reservaste para tu balanceador de cargas. En las plataformas que admiten la especificación de la dirección IP del balanceador de cargas, el balanceador de cargas se creará con esta dirección IP. En plataformas que no te permiten especificar la IP del balanceador de cargas, se ignora esta propiedad.

Marca como comentario o borra esta sección si no la usas.

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 3: crea un grupo de entornos.
*_SERVICE_ACCOUNT_FILEPATH La ruta y el nombre de archivo de los archivos JSON de la cuenta de servicio en el directorio service-accounts/. Los nombres deben incluir la ruta al archivo de la cuenta de servicio. Esta puede ser una ruta completa o la ruta relativa a tu directorio hybrid-files/. Si incluyes una ruta de acceso relativa, debes llamar a apigeectl, el comando para aplicar esta configuración, desde tu directorio hybrid-files/.

En entornos que no son de producción, se usa el nombre de la cuenta de servicio única, GCP_PROJECT_ID-non-prod.json de forma predeterminada.

Para entornos de producción, el nombre del archivo de claves de la cuenta de servicio create-service-account que generaste con la herramienta de en Configuración del entorno de ejecución híbrido, paso 4: Crea credenciales y cuentas de servicio.

Puedes ver la lista de archivos de cuentas de servicio en el directorio service-accounts/.

Los nombres predeterminados de las cuentas de servicio del entorno de producción son los siguientes:

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Logger: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Connect agent: GCP_PROJECT_ID-apigee-mart.json
  • Metrics: GCP_PROJECT_ID-apigee-metrics.json
  • Apigee runtime: GCP_PROJECT_ID-
  • Synchronizer: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Watcher: GCP_PROJECT_ID-apigee-watcher.json

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 (SIGUIENTE) Paso 7: Habilita el acceso del sincronizador 8 9 10