Especificar anulaciones de configuración
El instalador de Apigee hybrid usa valores predeterminados para muchos ajustes. Sin embargo, hay algunos ajustes que no tienen valores predeterminados. Debe proporcionar valores para estos ajustes, tal como se explica a continuación.
Antes de empezar
Te recomendamos que revises los siguientes casos para determinar si quieres configurar tu clúster para ellos. Estas configuraciones son opcionales.
- Si tienes previsto instalar una configuración híbrida en varias regiones, consulta Despliegue multirregional antes de continuar.
- Apigee hybrid proporciona contraseñas predeterminadas para los usuarios de Cassandra. Sin embargo, te recomendamos que cambies las contraseñas de usuario predeterminadas. Para obtener más información, consulta el artículo sobre cómo configurar TLS para Cassandra.
- Si quieres configurar los ajustes de almacenamiento y de montículo de Cassandra, consulta Configurar los ajustes de almacenamiento y de montículo.
- En los casos de instalación en producción, configura el almacenamiento de unidades de estado sólido (SSD) persistentes para Cassandra. No se admite el uso de SSD locales en Apigee hybrid. Para obtener más información, consulta el artículo Añadir almacenamiento SSD para implementaciones de producción.
Configurar 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
.
- Crea un archivo llamado
overrides.yaml
en el directorio$HYBRID_FILES/overrides
. Por ejemplo:vi $HYBRID_FILES/overrides/overrides.yaml
El archivo
overrides.yaml
proporciona la configuración de tu instalación única de Apigee hybrid. El archivo de anulaciones de este paso proporciona una configuración básica para una instalación de tiempo de ejecución híbrida con un tamaño reducido, adecuada para tu primera instalación. - En
overrides.yaml
, añade los valores de propiedad obligatorios, que se muestran a continuación. También se incluye una descripción detallada de cada propiedad más abajo.Si vas a instalar Apigee hybrid en GKE y tienes previsto usar Workload Identity para autenticar componentes híbridos, selecciona la pestaña GKE - Workload Identity para configurar el archivo
overrides.yaml
.Para el resto de las instalaciones, selecciona la pestaña del entorno de no producción (Non-prod) o de producción (Prod), según lo que hayas elegido en el paso 4: Crea cuentas de servicio y credenciales.
En el caso de las instalaciones en entornos de producción, consulta los requisitos de almacenamiento de la base de datos Cassandra en Configurar Cassandra para el entorno de producción.
GKE - Workload Identity
Asegúrate de que el archivo
overrides.yaml
tenga la siguiente estructura y sintaxis. Los valores de red, bold italics son valores de propiedad que debe proporcionar. Se describen en la tabla de abajo.Si vas a instalar Apigee hybrid en GKE, tienes una alternativa para autenticarte y hacer solicitudes a las APIs de Google: Workload Identity. Para ver información general sobre Workload Identity, consulta los siguientes artículos:
- Presentamos Workload Identity: una mejor autenticación para tus aplicaciones de GKE
- Usar Workload Identity
Para usar Workload Identity con Apigee hybrid en GKE, utiliza esta plantilla y, a continuación, sigue los pasos que se indican en el paso 8: Instala el tiempo de ejecución de hybrid para crear las cuentas de servicio de Kubernetes y asociarlas a 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.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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 de red, bold italics son valores de propiedad que debe proporcionar. Se describen en la tabla de abajo.Hay diferencias entre las distintas plataformas en cuanto a la región del proyecto de Google Cloud y la región del clúster de Kubernetes. Elige la plataforma en la que vas a instalar 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.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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 de red, bold italics son valores de propiedad que debe proporcionar. Se describen en la tabla de abajo.Hay diferencias entre las distintas plataformas en cuanto a la región del proyecto de Google Cloud y la región del clúster de Kubernetes. Elige la plataforma en la que vas a instalar 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.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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. See Known issue 243167389. 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 siguiente ejemplo se muestra un archivo de anulaciones completado con valores de propiedad de ejemplo añadidos:
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.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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
- Cuando hayas terminado, guarda el archivo.
En la siguiente tabla se describen los valores de propiedad que debe proporcionar en el archivo de anulaciones. Para obtener más información, consulta la referencia de la propiedad de configuración.
Variable | Descripción |
---|---|
ANALYTICS_REGION | En GKE, debes definir este valor en la misma región en la que se ejecuta el clúster. En el resto de las plataformas, selecciona la región de analíticas más cercana a tu clúster que admita analíticas (consulta la tabla del paso 2 de la parte 1: crea una organización).
Este es el valor que has asignado a la variable de entorno
|
GCP_PROJECT_ID | Identifica el proyecto de Google Cloud en el que apigee-logger y apigee-metrics insertan sus datos. Este es el valor asignado a la variable de entorno PROJECT_ID . |
CLUSTER_NAME | Nombre del clúster de Kubernetes. Se trata del 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
has creado el clúster en el
paso 1: Crea un clúster.
Este es el valor que has asignado a la variable de entorno
|
ORG_NAME | ID de tu organización de Apigee Hybrid. Este es el valor asignado a la variable de entorno ORG_NAME . |
UNIQUE_INSTANCE_IDENTIFIER | Una cadena ú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 |
ENVIRONMENT_GROUP_NAME | Nombre del grupo de entornos al que se han asignado tus entornos.
Este es el grupo que has creado en
Configuración del proyecto y de la organización - Paso 3: Crea un grupo de entorno. Este es el valor asignado a la variable de entorno ENV_GROUP .
|
CERT_NAME KEY_NAME |
Introduce el nombre de los archivos de clave y certificado TLS autofirmados que has generado anteriormente en el
paso 5: Crea certificados TLS. Estos archivos deben estar en el directorio base_directory/hybrid-files/certs .
Por ejemplo:
sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key |
INGRESS_NAME | El nombre de la pasarela de entrada de Apigee de tu implementación. Puede ser cualquier nombre que cumpla los siguientes requisitos:
Consulta |
SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE | (Opcional) Se trata de un par clave-valor que proporciona
anotaciones para tu servicio de entrada predeterminado. Tu plataforma en la nube usa las anotaciones para ayudarte a configurar tu instalación híbrida. Por ejemplo, puedes definir el tipo de balanceador de carga 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. Comenta o elimina esta sección si no la usas. |
SVC_LOAD_BALANCER_IP | (Opcional) Una dirección IP que hayas reservado para tu balanceador de carga.
En las plataformas que admiten la especificación de la dirección IP del balanceador de carga, este se creará con esa dirección IP.
En las plataformas que no te permiten especificar la IP del balanceador de carga,
esta propiedad se ignora.
Comenta o elimina esta sección si no la usas. |
ENVIRONMENT_NAME | Usa el mismo nombre que usaste cuando creaste un entorno en la interfaz de usuario, tal como se explica en el Paso 3: Crea un grupo de entornos de la sección Configuración de proyectos y organizaciones. |
*_SERVICE_ACCOUNT_FILEPATH | La ruta y el nombre de archivo de las cuentas de servicio JSON de tu directorio service-accounts/ . Los nombres deben incluir la ruta al archivo de la cuenta de servicio. Puede ser una ruta completa o una ruta relativa a tu directorio hybrid-files/ . Si incluye una ruta relativa, debe llamar a apigeectl , el comando para aplicar esta configuración, desde su directorio hybrid-files/ .
En los entornos que no son de producción, el nombre de la cuenta de servicio única es En los entornos de producción, el nombre del archivo de clave de la cuenta de servicio que has generado con la herramienta Puedes ver la lista de archivos de cuentas de servicio en tu directorio Los nombres predeterminados de las cuentas de servicio del entorno de producción son los siguientes:
|
Resumen
El archivo de configuración indica a Kubernetes cómo desplegar los componentes híbridos en un clúster. A continuación, habilitarás el acceso del sincronizador para que los planos de gestión y de tiempo de ejecución de Apigee puedan comunicarse.
1 2 3 4 5 6 Paso 7: Habilita el acceso de Synchronizer 8 9 10 11