Instalar los componentes del entorno de ejecución de Apigee Hybrid
En este paso, usarás Helm para instalar los siguientes componentes de Apigee hybrid:
- Operador de Apigee
- Almacén de datos de Apigee
- Telemetría de Apigee
- Apigee Redis
- Gestor de entrada de Apigee
- Organización de Apigee
- Tus entornos de Apigee
Instalará los gráficos de cada entorno uno a uno. El orden en el que instales los componentes es importante.
Notas previas a la instalación
- Si aún no has instalado Helm 3.14.2 o una versión posterior, sigue las instrucciones de Instalar Helm.
-
Apigee hybrid usa las protecciones de Helm para verificar la configuración antes de instalar o actualizar un gráfico. Puede que vea información específica sobre las medidas de protección en el resultado de cada uno de los comandos de esta sección. Por ejemplo:
# Source: apigee-operator/templates/apigee-operators-guardrails.yaml apiVersion: v1 kind: Pod metadata: name: apigee-hybrid-helm-guardrail-operator namespace: APIGEE_NAMESPACE annotations: helm.sh/hook: pre-install,pre-upgrade helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded labels: app: apigee-hybrid-helm-guardrail
Si falla alguno de los comandos de
helm upgrade
, puedes usar el resultado de las medidas de protección para diagnosticar la causa. Consulta Diagnosticar problemas con las medidas de protección. - Antes de ejecutar cualquiera de los comandos de actualización o instalación de Helm, usa la función de prueba de Helm añadiendo
--dry-run=server
al final del comando. Consultahelm install --h
para ver una lista de los comandos, las opciones y el uso admitidos.
Pasos de instalación
Selecciona las instrucciones de instalación del tipo de autenticación de cuenta de servicio en tu instalación híbrida:
Secretos de Kubernetes
- Si no lo has hecho, ve al directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Instala Apigee Operator o Controller:
- Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- Prueba de funcionamiento:
-
Instala el almacén de datos de Apigee:
- Prueba de funcionamiento:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que
apigeedatastore
está en funcionamiento comprobando su estado antes de continuar con el siguiente paso:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- Prueba de funcionamiento:
-
Instala la telemetría de Apigee:
- Prueba de funcionamiento:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- Prueba de funcionamiento:
-
Instala Apigee Redis:
-
Prueba de funcionamiento:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Instala Apigee Ingress Manager:
-
Prueba de funcionamiento:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Instala la organización de Apigee. Si has definido la variable de entorno $ORG_NAME en tu shell, puedes usarla en los siguientes comandos:
-
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
Instala el entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:-
Prueba de funcionamiento:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta la sección Tres conceptos importantes de la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
Instala los grupos de entornos (
virtualhosts
).- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
--set envgroup=
ENV_GROUP. Si has definido la variable de entorno $ENV_GROUP en tu shell, puedes usarla en los siguientes comandos. Repite los siguientes comandos para cada grupo de entorno mencionado en tu archivooverrides.yaml
:Prueba de funcionamiento:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-virtualhosts
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_GROUP
. Sin embargo, si tu grupo de entornos tiene el mismo nombre que un entorno de tu instalación, debes usar nombres de lanzamiento diferentes para el grupo de entornos y el entorno (por ejemplo,dev-envgroup-release
ydev-env-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- Comprueba el estado de ApigeeRoute (AR).
Al instalar
virtualhosts
se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
Archivos JSON
- Si no lo has hecho, ve al directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Instala Apigee Operator o Controller:
- Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- Prueba de funcionamiento:
-
Instala el almacén de datos de Apigee:
- Prueba de funcionamiento:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que
apigeedatastore
está en funcionamiento comprobando su estado antes de continuar con el siguiente paso:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- Prueba de funcionamiento:
-
Instala la telemetría de Apigee:
- Prueba de funcionamiento:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- Prueba de funcionamiento:
-
Instala Apigee Redis:
-
Prueba de funcionamiento:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Instala Apigee Ingress Manager:
-
Prueba de funcionamiento:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Instala la organización de Apigee. Si has definido la variable de entorno $ORG_NAME en tu shell, puedes usarla en los siguientes comandos:
-
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
Instala el entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:-
Prueba de funcionamiento:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta la sección Tres conceptos importantes de la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
Instala los grupos de entornos (
virtualhosts
).- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
--set envgroup=
ENV_GROUP. Si has definido la variable de entorno $ENV_GROUP en tu shell, puedes usarla en los siguientes comandos. Repite los siguientes comandos para cada grupo de entorno mencionado en tu archivooverrides.yaml
:Prueba de funcionamiento:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-virtualhosts
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_GROUP
. Sin embargo, si tu grupo de entornos tiene el mismo nombre que un entorno de tu instalación, debes usar nombres de lanzamiento diferentes para el grupo de entornos y el entorno (por ejemplo,dev-envgroup-release
ydev-env-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- Comprueba el estado de ApigeeRoute (AR).
Al instalar
virtualhosts
se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
Vault
- Si no lo has hecho, ve al directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Instala Apigee Operator o Controller:
- Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- Prueba de funcionamiento:
-
Instala el almacén de datos de Apigee:
- Prueba de funcionamiento:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que
apigeedatastore
está en funcionamiento comprobando su estado antes de continuar con el siguiente paso:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- Prueba de funcionamiento:
-
Instala la telemetría de Apigee:
- Prueba de funcionamiento:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- Prueba de funcionamiento:
-
Instala Apigee Redis:
-
Prueba de funcionamiento:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Instala Apigee Ingress Manager:
-
Prueba de funcionamiento:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Instala la organización de Apigee. Si has definido la variable de entorno $ORG_NAME en tu shell, puedes usarla en los siguientes comandos:
-
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
Instala el entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:-
Prueba de funcionamiento:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta la sección Tres conceptos importantes de la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
Instala los grupos de entornos (
virtualhosts
).- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
--set envgroup=
ENV_GROUP. Si has definido la variable de entorno $ENV_GROUP en tu shell, puedes usarla en los siguientes comandos. Repite los siguientes comandos para cada grupo de entorno mencionado en tu archivooverrides.yaml
:Prueba de funcionamiento:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-virtualhosts
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_GROUP
. Sin embargo, si tu grupo de entornos tiene el mismo nombre que un entorno de tu instalación, debes usar nombres de lanzamiento diferentes para el grupo de entornos y el entorno (por ejemplo,dev-envgroup-release
ydev-env-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- Comprueba el estado de ApigeeRoute (AR).
Al instalar
virtualhosts
se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
WIF para GKE
- Si no lo has hecho, ve al directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Instala Apigee Operator o Controller:
- Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- Prueba de funcionamiento:
-
Instala el almacén de datos de Apigee:
- Prueba de funcionamiento:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Configura las vinculaciones de cuentas de servicio de Cassandra para Workload Identity Federation for GKE:
El resultado del comando
helm upgrade
debería haber incluido comandos en la sección NOTAS. Sigue esos comandos para configurar las vinculaciones de la cuenta de servicio. Debe haber dos comandos con el siguiente formato:Producción
gcloud iam service-accounts add-iam-policy-binding CASSANDRA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \ --project PROJECT_ID
Y:
Producción
kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=CASSANDRA_SERVICE_ACCOUNT_EMAIL \ --namespace APIGEE_NAMESPACE
No producción
kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=NON_PROD_SERVICE_ACCOUNT_EMAIL \ --namespace APIGEE_NAMESPACE
Por ejemplo:
Producción
NOTES: For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-cassandra@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \ --project my-project kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=apigee-cassandra@my-project.iam.gserviceaccount.com \ --namespace apigee
No producción
NOTES: For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \ --project my-project kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=apigee-non-prod@my-project.iam.gserviceaccount.com \ --namespace apigee
Opcional: Si no quieres configurar la copia de seguridad de Cassandra en este momento, edita el archivo de anulaciones para quitar o comentar la sección
cassandra.backup
antes de ejecutar el comandohelm upgrade
sin la marca--dry-run
. Consulta Copia de seguridad y restauración de Cassandra para obtener más información sobre cómo configurar copias de seguridad de Cassandra. -
Instala el gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que
apigeedatastore
está en funcionamiento comprobando su estado antes de continuar con el siguiente paso:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- Prueba de funcionamiento:
-
Instala la telemetría de Apigee:
- Prueba de funcionamiento:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Configura las vinculaciones de la cuenta de servicio para Logger y Metrics en Workload Identity Federation para GKE:
El resultado del comando
helm upgrade
debería haber incluido comandos en la sección NOTAS. Sigue esos comandos para configurar las vinculaciones de la cuenta de servicio. Debe haber dos comandos con el siguiente formato:Logger KSA:
apigee-logger-apigee-telemetry
gcloud iam service-accounts add-iam-policy-binding LOGGER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project PROJECT_ID
KSA de métricas:
apigee-metrics-sa
Producción
gcloud iam service-accounts add-iam-policy-binding METRICS_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \ --project PROJECT_ID
Por ejemplo:
Producción
NOTES: For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Logger KSA: apigee-logger-apigee-telemetry gcloud iam service-accounts add-iam-policy-binding apigee-logger@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project my-project Metrics KSA: apigee-metrics-sa gcloud iam service-accounts add-iam-policy-binding apigee-metrics@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \ --project my-project
No producción
NOTES: For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Logger KSA: apigee-logger-apigee-telemetry gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project my-project Metrics KSA: apigee-metrics-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \ --project my-project
-
Instala el gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- Prueba de funcionamiento:
-
Instala Apigee Redis:
-
Prueba de funcionamiento:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Instala Apigee Ingress Manager:
-
Prueba de funcionamiento:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Instala la organización de Apigee. Si has definido la variable de entorno $ORG_NAME en tu shell, puedes usarla en los siguientes comandos:
-
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Configura las vinculaciones de cuentas de servicio para los componentes con ámbito de organización de Workload Identity Federation for GKE, MART, Apigee Connect, UDCA y Watcher.
El resultado del comando
helm upgrade
debería haber incluido comandos en la sección NOTAS. Sigue esos comandos para configurar las vinculaciones de la cuenta de servicio. Debería haber cuatro comandos.MART KSA:
apigee-mart-PROJECT_ID-ORG_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Connect Agent KSA:
apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Programador de tareas de Mint KSA: (si usas Monetización para Apigee hybrid)
apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding MINT_TASK_SCHEDULER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
UDCA de Arabia Saudí:
apigee-udca-PROJECT_ID-ORG_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Watcher KSA:
apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding WATCHER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Por ejemplo:
Producción
NOTES: For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). MART KSA: apigee-mart-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \ --project my-project Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \ --project my-project Mint task scheduler KSA: apigee-mint-task-scheduler-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mint-task-scheduler-my-project-1a2b3c4-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \ --project my-project Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-watcher@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \ --project my-project
No producción
NOTES: For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). MART KSA: apigee-mart-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \ --project my-project Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \ --project my-project Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \ --project my-project
-
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
Instala el entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:-
Prueba de funcionamiento:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta la sección Tres conceptos importantes de la documentación de Helm. -
Configura las vinculaciones de cuentas de servicio para los componentes con ámbito de entorno de Workload Identity Federation para GKE, Runtime, Synchronizer y UDCA.
El resultado del comando
helm upgrade
debería haber incluido comandos en la sección NOTAS. Sigue esos comandos para configurar las vinculaciones de la cuenta de servicio. Debería haber cuatro comandos.Tiempo de ejecución de KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding RUNTIME_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
KSA de sincronizador:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding SYNCHRONIZER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
UDCA de Arabia Saudí:
apigee-udca-PROJECT_ID-ORG_HASH_ID-ENV_NAME-ENV_HASH_ID-sa
Producción
gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
No producción
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
Por ejemplo:
NOTES: For Apigee Environment GKE Workload Identity, my-env, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Runtime KSA: apigee-runtime-my-project-my-env-b2c3d4e-sa gcloud iam service-accounts add-iam-policy-binding apigee-runtime@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-runtime-my-project-my-env-b2c3d4e-sa]" \ --project my-project Synchronizer KSA: apigee-synchronizer-my-project-my-env-b2c3d4e-sa gcloud iam service-accounts add-iam-policy-binding apigee-synchronizer@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-synchronizer-my-project-my-env-b2c3d4e-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-my-env-b2c3d4e-sa: gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-my-env-b2c3d4e-sa]" \ --project my-project
-
Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
Instala los grupos de entornos (
virtualhosts
).- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
--set envgroup=
ENV_GROUP. Si has definido la variable de entorno $ENV_GROUP en tu shell, puedes usarla en los siguientes comandos. Repite los siguientes comandos para cada grupo de entorno mencionado en tu archivooverrides.yaml
:Prueba de funcionamiento:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-virtualhosts
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_GROUP
. Sin embargo, si tu grupo de entornos tiene el mismo nombre que un entorno de tu instalación, debes usar nombres de lanzamiento diferentes para el grupo de entornos y el entorno (por ejemplo,dev-envgroup-release
ydev-env-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- Comprueba el estado de ApigeeRoute (AR).
Al instalar
virtualhosts
se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
- (Opcional) Puedes ver el estado de tus cuentas de servicio de Kubernetes en la página Kubernetes: Información general de las cargas de trabajo de la Google Cloud console.
WIF en otras plataformas
- Si no lo has hecho, ve al directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Instala Apigee Operator o Controller:
- Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- Prueba de funcionamiento:
-
Instala el almacén de datos de Apigee:
- Prueba de funcionamiento:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Si has habilitado la copia de seguridad o la restauración de Cassandra, concede a las cuentas de servicio de Kubernetes de Cassandra acceso para suplantar la identidad de la
apigee-cassandra
cuenta de servicio de IAM asociada.-
Lista de las direcciones de correo electrónico de la cuenta de servicio de gestión de identidades y accesos de Cassandra:
Producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-cassandra"
No producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
La salida debería ser similar a la siguiente:
Producción
apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False
No producción
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
Lista las cuentas de servicio de Kubernetes de Cassandra:
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-cassandra"
La salida debería ser similar a la siguiente:
apigee-cassandra-backup-sa 0 7m37s apigee-cassandra-default 0 7m12s apigee-cassandra-guardrails-sa 0 6m43s apigee-cassandra-restore-sa 0 7m37s apigee-cassandra-schema-setup-my-project-1a2b2c4 0 7m30s apigee-cassandra-schema-val-my-project-1a2b2c4 0 7m29s apigee-cassandra-user-setup-my-project-1a2b2c4 0 7m22s
-
Si has creado las cuentas de servicio de Kubernetes
apigee-cassandra-backup-sa
oapigee-cassandra-restore-sa
, concede a cada una de ellas acceso para suplantar la cuenta de servicio de IAMapigee-cassandra
con el siguiente comando:Producción
Template
gcloud iam service-accounts add-iam-policy-binding \ CASSANDRA_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-cassandra@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \ --role=roles/iam.workloadIdentityUser
No producción
Template
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \ --role=roles/iam.workloadIdentityUser
Donde:
CASSANDRA_IAM_SA_EMAIL
: la dirección de correo de la cuenta de servicio de gestión de identidades y accesos de Cassandra.PROJECT_NUMBER
: el número de proyecto del proyecto en el que has creado el grupo de identidades de carga de trabajo.POOL_ID
: el ID del grupo de identidades de carga de trabajo.MAPPED_SUBJECT
: la cuenta de servicio de Kubernetes de la reclamación en tu token de ID. En la mayoría de las instalaciones híbridas, tendrá el formatosystem:serviceaccount:APIGEE_NAMESPACE:K8S_SA_NAME
.- En el caso de
apigee-cassandra-backup-sa
, será algo similar asystem:serviceaccount:apigee:apigee-cassandra-backup-sa
. - En el caso de
apigee-cassandra-restore-sa
, será algo similar asystem:serviceaccount:apigee:apigee-cassandra-restore-sa
.
- En el caso de
-
Lista de las direcciones de correo electrónico de la cuenta de servicio de gestión de identidades y accesos de Cassandra:
-
Comprueba que
apigeedatastore
está en funcionamiento comprobando su estado antes de continuar con el siguiente paso:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- Prueba de funcionamiento:
-
Instala la telemetría de Apigee:
- Prueba de funcionamiento:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
-
Concede a las cuentas de servicio de telemetría de Kubernetes acceso para suplantar la identidad de la cuenta de servicio de
apigee-metrics
IAM asociada.-
Consulta la dirección de correo de la cuenta de servicio de IAM para las métricas:
Producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-metrics"
La salida debería ser similar a la siguiente:
apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False
No producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
La salida debería ser similar a la siguiente:
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
Lista de las cuentas de servicio de telemetría de Kubernetes:
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "telemetry"
La salida debería ser similar a la siguiente:
apigee-metrics-apigee-telemetry 0 42m apigee-open-telemetry-collector-apigee-telemetry 0 37m
-
Concede a cada una de las cuentas de servicio de telemetría de Kubernetes acceso para suplantar la cuenta de servicio de gestión de identidades y accesos
apigee-metrics
con el siguiente comando:Producción
Clave de firma de Apigee Metrics:
apigee-metrics-apigee-telemetry
aapigee-metrics
cuenta de servicio de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ METRICS_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-metrics@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
KSA de Apigee OpenTelemetry Collector:
apigee-open-telemetry-collector-apigee-telemetry
aapigee-metrics
cuenta de servicio de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ METRICS_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-metrics@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
No producción
Clave de firma de Apigee Metrics:
apigee-metrics-apigee-telemetry
aapigee-non-prod
cuenta de servicio de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
KSA de Apigee OpenTelemetry Collector:
apigee-open-telemetry-collector-apigee-telemetry
aapigee-non-prod
cuenta de servicio de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
-
Consulta la dirección de correo de la cuenta de servicio de IAM para las métricas:
- Prueba de funcionamiento:
-
Instala Apigee Redis:
-
Prueba de funcionamiento:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que esté en funcionamiento consultando su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Instala Apigee Ingress Manager:
-
Prueba de funcionamiento:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Para comprobar que funciona correctamente, consulta su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Instala la organización de Apigee. Si has definido la variable de entorno $ORG_NAME en tu shell, puedes usarla en los siguientes comandos:
-
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
Concede a las cuentas de servicio de Kubernetes con ámbito de organización acceso para suplantar la identidad de las cuentas de servicio de gestión de identidades y accesos asociadas.
-
Lista las direcciones de correo electrónico de las cuentas de servicio de gestión de identidades y accesos que usan los componentes
apigee-mart
,apigee-udca
yapigee-watcher
:Producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"
La salida debería ser similar a la siguiente:
apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Si usas Monetización para Apigee hybrid, obtén también la dirección de correo de la cuenta de servicio
apigee-mint-task-scheduler
.gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mint-task-scheduler"
La salida debería ser similar a la siguiente:
apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False
No producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
La salida debería ser similar a la siguiente:
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
Lista las cuentas de servicio de Kubernetes con ámbito de organización:
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-connect-agent\|apigee-mart\|apigee-udca\|apigee-watcher"
La salida debería ser similar a la siguiente:
apigee-connect-agent-my-project-123abcd 0 1h4m apigee-mart-my-project-123abcd 0 1h4m apigee-mint-task-scheduler-my-project-123abcd 0 1h3m apigee-udca-my-project-123abcd 0 1h2m apigee-watcher-my-project-123abcd 0 1h1m
-
Usa los siguientes comandos para conceder a las cuentas de servicio de Kubernetes con ámbito de organización acceso
para suplantar a las cuentas de servicio de gestión de identidades y accesos asociadas de la siguiente manera:
Producción
Conectar KSA del agente:
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes conapigee-mart
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MART_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-mart@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
MART KSA:
apigee-mart-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-mart
cuenta de servicio de gestión de identidades y accesos. MART y el agente de Connect usan la misma cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MART_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-mart@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Programador de tareas de Mint KSA: (si usa Monetización para Apigee Hybrid)
apigee-mint-task-scheduler-ORG_NAME-ORG_HASH_ID
Cuenta de servicio de Kubernetes aapigee-mint-task-scheduler
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MINT_TASK_SCHEDULER_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
KSA de UDCA con ámbito de organización:
apigee-udca-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-udca
cuenta de servicio de IAM.Código
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_UDCA_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-udca-task-scheduler@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
KSA de Watcher:
apigee-watcher-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-watcher
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_WATCHER_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-watcher@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
No producción
Conectar KSA del agente:
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes conapigee-non-prod
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
MART KSA:
apigee-mart-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-non-prod
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Programador de tareas de Mint KSA: (si usa Monetización para Apigee Hybrid)
apigee-mint-task-scheduler-ORG_NAME-UUIORG_HASH_IDD
Cuenta de servicio de Kubernetes aapigee-non-prod
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
KSA de UDCA con ámbito de organización:
apigee-udca-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-non-prod
cuenta de servicio de IAM.Código
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
KSA de Watcher:
apigee-watcher-ORG_NAME-ORG_HASH_ID
cuenta de servicio de Kubernetes aapigee-non-prod
cuenta de servicio de gestión de identidades y accesos.Código
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
-
Lista las direcciones de correo electrónico de las cuentas de servicio de gestión de identidades y accesos que usan los componentes
-
-
Instala el entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:-
Prueba de funcionamiento:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta la sección Tres conceptos importantes de la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
Concede a las cuentas de servicio de Kubernetes con ámbito de entorno acceso para suplantar la identidad de las cuentas de servicio de IAM asociadas.
-
Lista la dirección de correo de las cuentas de servicio de gestión de identidades y accesos que usan los componentes
apigee-runtime
,apigee-synchronizer
yapigee-udca
:Producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"
No producción
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"
La salida debería ser similar a la siguiente:
Producción
apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False
No producción
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
Lista de las cuentas de servicio de Kubernetes con ámbito de entorno:
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"
La salida debería ser similar a la siguiente:
apigee-runtime-my-project--my-env-cdef123 0 19m apigee-synchronizer-my-project-my-env-cdef123 0 17m apigee-udca-my-project-123abcd 0 1h29m apigee-udca-my-project-my-env-cdef123 0 22m
-
Usa el siguiente comando para conceder acceso a las cuentas de servicio de Kubernetes con ámbito de entorno
para suplantar a las cuentas de servicio de gestión de identidades y accesos asociadas de la siguiente manera:
Producción
Tiempo de ejecución de KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA aapigee-runtime
SA de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ RUNTIME_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-runtime@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
Sincronizador de KSA:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA aapigee-synchronizer
SA de gestión de identidades y accesos de GoogleCódigo
gcloud iam service-accounts add-iam-policy-binding \ SYNCHRONIZER_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-synchronizer@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
KSA de UDCA: KSA de
apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
aapigee-udca
SA de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ UDCA_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-udca@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
No producción
Tiempo de ejecución de KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA aapigee-non-prod
SA de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
No producción
Sincronizador de KSA:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA aapigee-non-prod
SA de gestión de identidades y accesos de GoogleCódigo
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
No producción
KSA de UDCA: KSA de
apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
aapigee-non-prod
SA de Google IAMCódigo
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Ejemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
-
Lista la dirección de correo de las cuentas de servicio de gestión de identidades y accesos que usan los componentes
-
-
Instala los grupos de entornos (
virtualhosts
).- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
--set envgroup=
ENV_GROUP. Si has definido la variable de entorno $ENV_GROUP en tu shell, puedes usarla en los siguientes comandos. Repite los siguientes comandos para cada grupo de entorno mencionado en tu archivooverrides.yaml
:Prueba de funcionamiento:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-virtualhosts
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_GROUP
. Sin embargo, si tu grupo de entornos tiene el mismo nombre que un entorno de tu instalación, debes usar nombres de lanzamiento diferentes para el grupo de entornos y el entorno (por ejemplo,dev-envgroup-release
ydev-env-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm. -
Instala el gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- Comprueba el estado de ApigeeRoute (AR).
Al instalar
virtualhosts
se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- Debes instalar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con
Paso siguiente
En el siguiente paso, configurará la puerta de enlace de entrada de Apigee e implementará un proxy para probar la instalación.
(SIGUIENTE) Paso 1: Exponer el acceso de Apigee 2