Antes de aplicar tu configuración y, además, instalar los gráficos de Helm de Hybrid, debes
verificar que tu clúster de Kubernetes esté listo para la instalación de Apigee Hybrid.
Para verificar la preparación de tu clúster, crearás un archivo YAML con una definición de trabajo
de Kubernetes y aplicarás ese archivo con los comandos kubectl para verificar el clúster.
Luego, verifica el estado del trabajo de prueba de Kubernetes con un comando kubectl get jobs.
Verifica que kubectl esté configurado en el contexto correcto con el siguiente comando.
El contexto actual se debe configurar en el clúster en el que implementas Apigee Hybrid.
kubectl config current-context
El resultado debe incluir el nombre del clúster en el que implementas Apigee Hybrid. Por ejemplo, en GKE, el nombre del contexto suele tener el formato gke_project-id_cluster-location_cluster-name, como se muestra a continuación:
gke_my-project_us-central1_my-cluster
Si el nombre del clúster de nombre en el contexto no coincide, el siguiente comando obtendrá las credenciales gcloud del clúster y establecerá el contexto kubectl:
El resultado debería mostrar que se crearon la cuenta de servicio y el trabajo. Por ejemplo:
kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
serviceaccount/apigee-k8s-cluster-ready-check created
job.batch/apigee-k8s-cluster-ready-check created
Verifica el estado del trabajo de Kubernetes con el siguiente comando:
kubectl get jobs apigee-k8s-cluster-ready-check
Si tu clúster está listo, el resultado debería ser similar a lo siguiente:
NAME COMPLETIONS DURATION AGE
apigee-k8s-cluster-ready-check 1/1 8s 1h23m
Si la prueba falló y tu clúster no está listo, el resultado se verá similar al siguiente:
NAME COMPLETIONS DURATION AGE
apigee-k8s-cluster-ready-check 0/1 44s 44s
Busca la cantidad de finalizaciones:
1/1 Si se ejecuta correctamente, tu clúster está listo para la instalación de Apigee Hybrid.
0/1 No se pudo realizar la prueba. El clúster no está listo. Continúa con los siguientes pasos para solucionar problemas del clúster.
Si la prueba no se realizó correctamente, verifica los registros con los siguientes comandos.
Obtén el nombre del Pod para el trabajo de verificación previa del clúster:
kubectl get pods | grep apigee-k8s-cluster-ready-check
Obtén los registros de Kubernetes para el Pod:
kubectl logs pod_name
En el ejemplo anterior, pod_name es el nombre del Pod de apigee-k8s-cluster-ready-check.
Realiza una limpieza antes de continuar con el siguiente paso. Borra el trabajo de Kubernetes con el siguiente comando:
Ya te aseguraste de que tu clúster de Apigee Hybrid esté listo. A continuación, instalaremos los gráficos para
aplicar tu configuración al entorno de ejecución híbrido.
Soluciona problemas
Verificación de DNS de Cassandra: si encuentras registros de errores similares a
DNS resolution was successful but IP doesn't match POD IP,
could not resolve hostname o error determining hostname, significa que el DNS
de tu clúster no está configurado de forma correcta para una configuración multirregional. Puedes ignorar este error si
no planeas configurar una multirregión.
Verificación de conectividad del plano de control: Si encuentras registros de error similares a error creating TCP connection with host, debes resolver la conectividad del clúster a apigee.googleapis.com y volver a ejecutar el trabajo.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-08 (UTC)"],[[["\u003cp\u003eBefore installing Apigee hybrid, verify your Kubernetes cluster's readiness by creating and applying a YAML file containing a Kubernetes Job definition.\u003c/p\u003e\n"],["\u003cp\u003eUse the \u003ccode\u003ekubectl config current-context\u003c/code\u003e command to confirm that your \u003ccode\u003ekubectl\u003c/code\u003e is connected to the correct cluster for Apigee hybrid deployment.\u003c/p\u003e\n"],["\u003cp\u003eApply the \u003ccode\u003eapigee-k8s-cluster-ready-check.yaml\u003c/code\u003e file with \u003ccode\u003ekubectl\u003c/code\u003e to run the readiness test, and monitor its progress with \u003ccode\u003ekubectl get jobs apigee-k8s-cluster-ready-check\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eA successful test will show "1/1" completions in the job status, indicating that your cluster is ready, whereas "0/1" means the cluster is not ready and requires troubleshooting.\u003c/p\u003e\n"],["\u003cp\u003eClean up after the test, by deleting the Kubernetes job and service account using \u003ccode\u003ekubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Step 10: Check cluster readiness\n\n| You are currently viewing version 1.12 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nCheck hybrid cluster readiness\n------------------------------\n\nBefore applying your configuration and installing the hybrid helm charts, you should\ncheck that your Kubernetes cluster is ready for Apigee hybrid installation.\n\n\nTo check the readiness of your cluster, you will create a YAML file with a Kubernetes Job\ndefinition and apply that file with `kubectl` commands to check the cluster.\nYou then check the status of the Kubernetes test job with a `kubectl get jobs` command.\n\n1. Verify that `kubectl` is set to the correct context using the following command. The current context should be set to the cluster to which you are deploying Apigee hybrid. \n\n ```\n kubectl config current-context\n ```\n\n The result should include the name of the cluster you are deploying Apigee hybrid in. For\n example, on GKE, the context name is usually in the form\n `gke_`\u003cvar translate=\"no\"\u003eproject-id\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecluster-location\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecluster-name\u003c/var\u003e, as\n in: \n\n ```\n gke_my-project_us-central1_my-cluster\n ```\n\n If the name cluster name in the context does not match, the following command will get the\n `gcloud` credentials of the cluster and set the `kubectl` context:\n\n ### Regional clusters\n\n ```\n gcloud container clusters get-credentials $CLUSTER_NAME \\\n --region $CLUSTER_LOCATION \\\n --project $PROJECT_ID\n ```\n\n ### Zonal clusters\n\n ```\n gcloud container clusters get-credentials $CLUSTER_NAME \\\n --zone $CLUSTER_LOCATION \\\n --project $PROJECT_ID\n ```\n2. In your helm-charts directory, create a `cluster-check` directory: \n\n ```\n mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check\n ```\n3. In the `$APIGEE_HELM_CHARTS_HOME/cluster-check` directory, create a file named `apigee-k8s-cluster-ready-check.yaml` with the following contents: \n\n ```\n apiVersion: v1\n kind: ServiceAccount\n metadata:\n name: apigee-k8s-cluster-ready-check\n ---\n apiVersion: rbac.authorization.k8s.io/v1\n kind: ClusterRoleBinding\n metadata:\n name: cluster-check-admin\n roleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: ClusterRole\n name: cluster-admin\n subjects:\n - apiGroup: \"\"\n kind: ServiceAccount\n namespace: default\n name: apigee-k8s-cluster-ready-check\n ---\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: apigee-k8s-cluster-ready-check\n spec:\n template:\n spec:\n hostNetwork: true\n serviceAccountName: apigee-k8s-cluster-ready-check\n containers:\n - name: manager\n image: gcr.io/apigee-release/hybrid/apigee-operators:1.12.4\n command:\n - /manager\n args:\n - --k8s-cluster-ready-check\n env:\n - name: POD_IP\n valueFrom:\n fieldRef:\n fieldPath: status.podIP\n securityContext:\n runAsGroup: 998\n runAsNonRoot: true\n runAsUser: 999\n restartPolicy: Never\n backoffLimit: 1\n ```\n4. Apply the `apigee-k8s-cluster-ready-check.yaml` with the following `kubectl` command. This will run the test: \n\n ```\n kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml\n ```\n\n\n The output should show that the service account and job were created. For example: \n\n kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml\n serviceaccount/apigee-k8s-cluster-ready-check created\n job.batch/apigee-k8s-cluster-ready-check created\n\n5. Check the status of the Kubernetes job with the following command: \n\n ```\n kubectl get jobs apigee-k8s-cluster-ready-check\n ```\n\n\n If your cluster is ready, the output should look something like: \n\n ```\n NAME COMPLETIONS DURATION AGE\n apigee-k8s-cluster-ready-check 1/1 8s 1h23m\n ```\n\n\n If the test failed and your cluster is not ready, the output will look something like: \n\n ```\n NAME COMPLETIONS DURATION AGE\n apigee-k8s-cluster-ready-check 0/1 44s 44s\n ```\n\n Look for the number of completions:\n - **1/1** Success, your cluster is ready for Apigee hybrid installation.\n - **0/1** The test failed. The cluster is not ready. Proceed to the following steps to troubleshoot the cluster.\n\n \u003cbr /\u003e\n\n6. If the test did not succeed, check the logs with the following commands.\n 1. Get the name of the pod for the cluster pre-check job: \n\n ```\n kubectl get pods | grep apigee-k8s-cluster-ready-check\n ```\n 2. Get the Kubernetes logs for the pod: \n\n ```\n kubectl logs pod_name\n ```\n\n\n Where \u003cvar translate=\"no\"\u003epod_name\u003c/var\u003e is the name of the apigee-k8s-cluster-ready-check pod.\n7. Clean up before proceeding to the next step. Delete the Kubernetes job with the following command: \n\n ```\n kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml\n ```\n\n\n The output should show that the service account and job were deleted. For example: \n\n kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml\n serviceaccount \"apigee-k8s-cluster-ready-check\" deleted\n job.batch \"apigee-k8s-cluster-ready-check\" deleted\n\n| **Tip:** On some platforms, like Google Distributed Cloud, you may see DNS resolution errors. If the DNS resolution is not working, try this workaround.\n|\n|\n| Add a static host entry in `/etc/hosts` file of each cassandra worker node\n| similar to the following: \n|\n| ```\n| echo -e \"\\\\n127.0.1.1 ${HOSTNAME}\" \u003e\u003e \"/etc/hosts\"\n| ```\n|\n|\n| or \n|\n| ```\n| \"\\\\nWORKER-NODE-IP ${HOSTNAME}\" \u003e\u003e \"/etc/hosts\"\n| ```\n\nYou have now made sure your Apigee hybrid cluster is ready. Next, let's install the charts to\napply your configuration to the hybrid runtime.\n\nTroubleshooting\n---------------\n\n1. Cassandra DNS check: If you find error logs similar to `DNS resolution was successful but IP doesn't match POD IP`, `could not resolve hostname` or `error determining hostname` it means your cluster DNS is not configured correctly for a multi-region setup. You can ignore this error if you do not intend to set up multi-region.\n2. Control Plane connectivity check: If you find error logs similar to `error creating TCP connection with host` then you need to resolve the connectivity from cluster to apigee.googleapis.com and re-run the job.\n\nNext step\n---------\n\n\u003cbr /\u003e\n\n[1](/apigee/docs/hybrid/v1.12/install-create-cluster) [2](/apigee/docs/hybrid/v1.12/install-download-charts) [3](/apigee/docs/hybrid/v1.12/install-create-namespace) [4](/apigee/docs/hybrid/v1.12/install-service-accounts) [5](/apigee/docs/hybrid/v1.12/install-create-tls-certificates) [6](/apigee/docs/hybrid/v1.12/install-create-overrides) [7](/apigee/docs/hybrid/v1.12/install-enable-synchronizer-access) [8](/apigee/docs/hybrid/v1.12/install-cert-manager) [9](/apigee/docs/hybrid/v1.12/install-crds) [10](/apigee/docs/hybrid/v1.12/install-check-cluster) [(NEXT) Step 11: Install Apigee hybrid using Helm charts](/apigee/docs/hybrid/v1.12/install-helm-charts) [12](/apigee/docs/hybrid/v1.12/install-workload-identity)\n\n\u003cbr /\u003e"]]