- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
Aplica la configuración al clúster
Sigue estos pasos para instalar Apigee hybrid en tu clúster:
- Asegúrate de que estás en el directorio
hybrid-base-directory/hybrid-files
.cd $HYBRID_FILES
- Verifica que
kubectl
esté configurado en el contexto correcto con el siguiente comando. El contexto actual debe ser el clúster en el que vas a implementar Apigee Hybrid.kubectl config current-context
El resultado debe incluir el nombre del clúster en el que vas a implementar Apigee hybrid. Por ejemplo, en GKE, el nombre del contexto suele tener el formato
gke_project-id_cluster-location_cluster-name
, como en el siguiente ejemplo:gke_my-project_us-central1_my-cluster
Si el nombre del clúster del contexto no coincide, el siguiente comando obtendrá las credenciales de
gcloud
del clúster y definirá el contexto dekubectl
:Clústeres regionales
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
Clústeres zonales
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- Solo para las plataformas Anthos on bare metal, AWS on GKE, EKS y GKE On-Prem, comprueba que la variable
KUBECONFIG
se ha definido con el siguiente comando:echo ${KUBECONFIG}
- Haz una inicialización de prueba de funcionamiento. Al hacer una prueba, puedes comprobar si hay errores antes de que se apliquen cambios al clúster. Ejecuta el comando
init
con la marca--dry-run
de la siguiente manera:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml --dry-run=client
- Si no hay errores, ejecuta el comando
init
de la siguiente manera:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
El comando
init
instala los servicios de despliegue de Apigee Apigee Deployment Controller y Apigee Admission Webhook. - Para comprobar el estado de la implementación, puedes usar los siguientes comandos:
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n apigee
Cuando los pods estén listos, ve al siguiente paso.
- Haz una instalación de prueba de funcionamiento. Ejecuta el comando
apply
con la marca--dry-run
.${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --dry-run=client
-
Si no hay errores, puedes aplicar los
componentes de tiempo de ejecución específicos de Apigee al clúster con el siguiente comando:
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml
- Para comprobar el estado del despliegue, ejecuta el siguiente comando:
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
Repite este paso hasta que todos los pods estén listos. Los pods pueden tardar varios minutos en iniciarse.
GKE con Workload Identity
Si usas Workload Identity en GKE, sigue estas instrucciones para asociar las cuentas de servicio de Kubernetes creadas por apigeectl
con las cuentas de servicio de Google que creaste en el paso 4: Crea cuentas de servicio y credenciales.
En estos procedimientos se usan las siguientes variables de entorno. Puedes definir estos valores en tu shell de comandos o sustituirlos por los valores reales en los ejemplos de código:
APIGEECTL_HOME
: el directorio en el que has instaladoapigeectl
.CLUSTER_LOCATION
: la región o zona de tu clúster. Por ejemplo,us-west1
.CLUSTER_LOCATION
: el nombre del clúster.ENV_NAME
: nombre del entorno de Apigee.NAMESPACE
: tu espacio de nombres de Apigee. El valor predeterminado esapigee
.HYBRID_FILES
: tu directorio de archivos híbrido. Por ejemplo,hybrid-base-directory/hybrid-files
.ORG_NAME
: el nombre de tu organización de Apigee.PROJECT_ID
: el ID de tu proyecto de Google Cloud.
Verifica las variables de entorno:
echo $APIGEECTL_HOMEecho $CLUSTER_LOCATION
echo $ENV_NAME
echo $HYBRID_FILES
echo $NAMESPACE
echo $ORG_NAME
echo $PROJECT_ID
Inicializa las variables que necesites:
export APIGEECTL_HOME=hybrid-base-directory/apigeectlexport CLUSTER_LOCATION=my-cluster-location
export ENV_NAME=my-environment-name
export HYBRID_FILES=hybrid-base-directory/hybrid-files
export NAMESPACE=apigee
export ORG_NAME=$PROJECT_ID
export PROJECT_ID=my-project-id
- Opcional: Elimina los archivos de claves de la cuenta de servicio.
Cuando se ejecuta Apigee hybrid en GKE, lo habitual es crear y descargar claves privadas (archivos
.json
) para cada una de las cuentas de servicio. Cuando se usa Workload Identity, no es necesario descargar claves privadas de cuentas de servicio ni añadirlas a los clústeres de GKE.Puedes eliminar los archivos de claves con el siguiente comando:
rm $HYBRID_FILES/service-accounts/*.json
- Comprueba la configuración actual de
gcloud
con el ID de tu proyecto de Google Cloud con el siguiente comando:gcloud config get project
- Crea la cuenta de servicio de Kubernetes
apigee-cassandra-restore
.Cuando aplicaste la configuración ejecutando
apigeectl apply
, el comando creó la mayoría de las cuentas de servicio de Kubernetes necesarias para la identidad de carga de trabajo.Para crear la cuenta de servicio de Kubernetes
apigee-cassandra-restore
, ejecutaapigeectl apply
con la marca--restore
:$APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/overrides.yaml --restore
- Verifica que Workload Identity esté habilitado en tu clúster de GKE. Cuando creaste el clúster en el paso 1: Crea un clúster, el paso 6 consistía en habilitar Workload Identity. Para confirmar si Workload Identity está habilitado, ejecuta el siguiente comando:
Clústeres regionales
gcloud container clusters describe $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
Clústeres zonales
gcloud container clusters describe $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
Si Workload Identity está habilitado en el clúster, la salida debería ser similar a la siguiente:
--- workloadPool: PROJECT_ID.svc.id.goog
Si ves
null
en los resultados, ejecuta el siguiente comando para habilitar Workload Identity en tu clúster:Clústeres regionales
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --project $PROJECT_ID \ --region $CLUSTER_LOCATION
Clústeres zonales
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- Verifica que la identidad de carga de trabajo esté habilitada en tus grupos de nodos con los siguientes comandos:
Clústeres regionales
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
Clústeres zonales
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
La salida debería tener un aspecto similar a este:
--- diskSizeGb: 100 diskType: pd-standard ... workloadMetadataConfig: mode: GKE_METADATA
Si el resultado no contiene una línea para
workloadMetadataConfig:
, habilita la identidad de carga de trabajo en cada grupo de nodos con los siguientes comandos. Esta operación puede tardar hasta 30 minutos:Clústeres regionales
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
Clústeres zonales
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
Donde NODE_POOL_NAME es el nombre de cada grupo de nodos. En la mayoría de las instalaciones de Apigee hybrid, los dos grupos de nodos predeterminados se denominan
apigee-data
yapigee-runtime
. - Consulta los nombres de las cuentas de servicio de Google de tu proyecto con el siguiente comando:
gcloud iam service-accounts list --project $PROJECT_ID
La salida debería tener un aspecto similar a este:
No producción
En entornos que no sean de producción:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my_project_id.iam.gserviceaccount.com False
Producción
En entornos que no sean de producción:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my_project_id.iam.gserviceaccount.com False apigee-logger apigee-logger@my_project_id.iam.gserviceaccount.com False apigee-mart apigee-mart@my_project_id.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my_project_id.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my_project_id.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my_project_id.iam.gserviceaccount.com False apigee-udca apigee-udca@my_project_id.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my_project_id.iam.gserviceaccount.com False
- Verifica las cuentas de servicio con el siguiente comando:
kubectl get sa -n $NAMESPACE
La salida debería tener un aspecto similar al siguiente. Las cuentas de servicio de Kubernetes en negrita son las que tendrás que anotar con tus cuentas de servicio de Google:
NAME SECRETS AGE apigee-cassandra-backup 1 11m apigee-cassandra-restore 1 11m apigee-cassandra-schema-setup-my-project-id-123abcd-sa 1 11m apigee-cassandra-schema-val-my-project-id-123abcd 1 11m apigee-cassandra-user-setup-my-project-id-123abcd-sa 1 11m apigee-connect-agent-my-project-id-123abcd-sa 1 11m apigee-datastore-default-sa 1 11m apigee-ingressgateway 1 11m apigee-ingressgateway-my-project-id-123abcd 1 11m apigee-ingressgateway-manager 1 11m apigee-init 1 11m apigee-mart-my-project-id-123abcd-sa 1 11m apigee-metrics-sa 1 11m apigee-mint-task-scheduler-my-project-id-123abcd-sa 1 11m apigee-redis-default-sa 1 11m apigee-redis-envoy-default-sa 1 11m apigee-runtime-my-project-id-env-name-234bcde-sa 1 11m apigee-synchronizer-my-project-id-env-name-234bcde-sa 1 11m apigee-udca-my-project-id-123abcd-sa 1 11m apigee-udca-my-project-id-env-name-234bcde-sa 1 11m apigee-watcher-my-project-id-123abcd-sa 1 11m default 1 11m
-
En cada componente de Apigee, anota las cuentas de servicio de Kubernetes correspondientes con la cuenta de servicio de Google del componente.
En los pasos siguientes se usan dos variables de entorno. Restablecerás los valores de estas variables antes de cada conjunto de comandos:
- GSA_NAME: el nombre de una cuenta de servicio de Google. Estas son las cuentas de servicio que has creado con la herramienta
create-service-account
en el paso 4: Crea cuentas de servicio. - KSA_NAME: nombre de una cuenta de servicio de Kubernetes. Estas son las cuentas que ha indicado anteriormente con el comando
kubectl get sa -n $NAMESPACE
, por ejemplo:apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
.
- GSA_NAME: el nombre de una cuenta de servicio de Google. Estas son las cuentas de servicio que has creado con la herramienta
- Cassandra
El componente Cassandra tiene seis cuentas de servicio de Kubernetes asociadas:
apigee-cassandra-backup
apigee-cassandra-restore
apigee-cassandra-schema-setup
apigee-cassandra-schema-val
(val
= validación)apigee-cassandra-user-setup
apigee-datastore-default
No producción
En los pasos siguientes se usan dos variables de entorno. Restablecerás los valores de estas variables antes de cada conjunto de comandos:
- GSA_NAME: el nombre de una cuenta de servicio de Google. Estas son las cuentas de servicio que has creado con la herramienta
create-service-account
en el paso 4: Crea cuentas de servicio. - KSA_NAME: nombre de una cuenta de servicio de Kubernetes. Estas son las cuentas que has indicado anteriormente con el comando
kubectl get sa -n $NAMESPACE
.
apigee-cassandra-backup
Cuenta de servicio de Kubernetes- Define las variables de entorno
KSA_NAME
yGSA_NAME
:GSA_NAME="apigee-non-prod"
KSA_NAME="apigee-cassandra-backup"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
La salida debe incluir una línea que describa la anotación, como la siguiente:
Annotations: iam.gke.io/gcp-service-account: apigee-non-prod@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restore
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
:KSA_NAME="apigee-cassandra-restore"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-setup
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-val
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
:KSA_NAME="apigee-datastore-default-sa"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
apigee-cassandra-backup
Cuenta de servicio de Kubernetes- Define las variables de entorno
KSA_NAME
yGSA_NAME
:GSA_NAME="apigee-cassandra"
KSA_NAME="apigee-cassandra-backup"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
La salida debe incluir una línea que describa la anotación, como la siguiente:
Annotations: iam.gke.io/gcp-service-account: apigee-cassandra@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restore
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
:KSA_NAME="apigee-cassandra-restore"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
apigee-cassandra-schema-setup
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
. - Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
apigee-cassandra-schema-val
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Cuenta de servicio de Kubernetes- Vuelve a definir la variable de entorno
KSA_NAME
:KSA_NAME="apigee-datastore-default-sa"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Apigee Connect
No producción
- Define la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-connect-agent-service-account-name-sa"
apigee-connect-agent-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-mart"
KSA_NAME="apigee-connect-agent-service-account-name-sa"
apigee-connect-agent-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define la variable de entorno
- MART
No producción
- Define la variable de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-mart-service-account-name-sa"
apigee-mart-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-mart"
KSA_NAME="apigee-mart-service-account-name-sa"
apigee-mart-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define la variable de entorno
- Métricas de Apigee
No producción
- Define las variables de entorno
KSA_NAME
:KSA_NAME="apigee-metrics-sa"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
:GSA_NAME="apigee-metrics"
KSA_NAME="apigee-metrics-sa"
- Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define las variables de entorno
- UDCA (nivel de organización)
UDCA se implementa en ámbitos de nivel de organización y de nivel de entorno. Por lo tanto, hay dos cuentas de servicio de Kubernetes independientes para UDCA, una para cada ámbito. Puedes diferenciarlas por el nombre de la cuenta. La cuenta env-scope incluye el nombre del entorno en el nombre de la cuenta de servicio. Por ejemplo:
- Nivel de organización:
apigee-udca-my-project-id-123abcd-sa
, dondemy-project-id
es el ID del proyecto. - Nivel de entorno:
apigee-udca-my-project-id-my-env-234bcde-sa
dondemy-env
es el nombre del entorno.
No producción
- Define las variables de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-udca-service-account-name-sa"
apigee-udca-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-service-account-name-sa"
apigee-udca-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Nivel de organización:
- Apigee Watcher
No producción
- Define las variables de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-watcher-service-account-name-sa"
apigee-watcher-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-watcher"
KSA_NAME="apigee-watcher-service-account-name-sa"
apigee-watcher-hybrid-example-project-123abcd-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define las variables de entorno
- Tiempo de ejecución
No producción
- Define las variables de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
apigee-runtime-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-runtime"
KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
apigee-runtime-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define las variables de entorno
- Sincronizador
No producción
- Define las variables de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-synchronizer"
KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define las variables de entorno
- UDCA (nivel de entorno)
No producción
- Define las variables de entorno
KSA_NAME
: Por ejemplo:KSA_NAME="apigee-udca-env-level-service-account-name-sa"
apigee-udca-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Producción
- Define las variables de entorno
KSA_NAME
yGSA_NAME
: Por ejemplo:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-env-level-service-account-name-sa"
apigee-udca-hybrid-example-project-example-env-234bcde-sa
. - Asigna el rol de gestión de identidades y accesos:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Anota la cuenta de servicio:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifica la anotación:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Define las variables de entorno
- (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.
- Para volver a comprobar el estado del despliegue con
apigeectl check-ready
, sigue estos pasos:${APIGEECTL_HOME}/apigeectl check-ready -f ${HYBRID_FILES}/overrides/overrides.yaml
Si es necesario, define la configuración actual de gcloud
:
gcloud config set project $PROJECT_ID