Step 8: Check cluster readiness

You are currently viewing version 1.11 of the Apigee hybrid documentation.This version is end of life. You should upgrade to a newer version. For more information, seeSupported versions.

Check hybrid cluster readiness

Before applying your configuration and installing the hybrid runtime, you should check that your Kubernetes cluster is ready for Apigee hybrid installation.

To check the readiness of your cluster, you will create a YAML file with a Kubernetes Job definition and apply that file withkubectl commands to check the cluster. You then check the status of the Kubernetes test job with akubectl get jobs command.

  1. Verify thatkubectl 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.
    kubectl config current-context

    The result should include the name of the cluster you are deploying Apigee hybrid in. For example, on GKE, the context name is usually in the formgke_project-id_cluster-location_cluster-name, as in:

    gke_my-project_us-central1_my-cluster

    If the name cluster name in the context does not match, the following command will get thegcloud credentials of the cluster and set thekubectl context:

    Regional clusters

    gcloud container clusters get-credentials $CLUSTER_NAME \  --region $CLUSTER_LOCATION \  --project $PROJECT_ID

    Zonal clusters

    gcloud container clusters get-credentials $CLUSTER_NAME \  --zone $CLUSTER_LOCATION \  --project $PROJECT_ID
  2. In your hybrid files directory, create acluster-check directory:
    mkdir$HYBRID_FILES/cluster-check
  3. In the$HYBRID_FILES/cluster-check directory, create a file namedapigee-k8s-cluster-ready-check.yaml with the following contents:
    apiVersion: v1kind: ServiceAccountmetadata:  name: apigee-k8s-cluster-ready-check---apiVersion: batch/v1kind: Jobmetadata:  name: apigee-k8s-cluster-ready-checkspec:  template:    spec:      hostNetwork: true      serviceAccountName: apigee-k8s-cluster-ready-check      containers:        - name: manager          image: gcr.io/apigee-release/hybrid/apigee-operators:1.10.0          command:            - /manager          args:          - --k8s-cluster-ready-check          env:          - name: POD_IP            valueFrom:              fieldRef:                fieldPath: status.podIP          securityContext:            runAsGroup: 998            runAsNonRoot: true            runAsUser: 999      restartPolicy: Never  backoffLimit: 1
  4. Apply theapigee-k8s-cluster-ready-check.yaml with the followingkubectl command. This will run the test:
    kubectl apply -f $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
  5. Check the status of the Kubernetes job with the following command:
    kubectl get jobs apigee-k8s-cluster-ready-check

    If your cluster is ready, the output should look something like:

    NAME                            COMPLETIONS   DURATION   AGEapigee-k8s-cluster-ready-check1/1           8s         1h23m

    If the test failed and your cluster is not ready, the output should look something like:

    NAME                            COMPLETIONS   DURATION   AGEapigee-k8s-cluster-ready-check0/1           44s         44s

    Look for the number of completions:

    • 1/1 Success, your cluster is ready for Apigee hybrid installation.
    • 0/1 The test failed. The cluster is not ready. Proceed to the following steps to troubleshoot the cluster.

  6. If the test did not succeed, check the logs with the following commands.
    1. Get the name of the pod for the cluster pre-check job:
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. Get the Kubernetes logs for the pod:
      kubectl logspod_name

      Wherepod_name is the name of the apigee-k8s-cluster-ready-check pod.

  7. Clean up before proceeding to the next step. Delete the Kubernetes job with the following command:
    kubectl delete -f $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
Tip: On some platforms, like Anthos on Bare Metal or GKE on-prem, you may see DNS resolution errors. If the DNS resolution is not working, try this workaround.

Add a static host entry in/etc/hosts file of each cassandra worker node similar to the following:

echo -e "\\n127.0.1.1 ${HOSTNAME}" >> "/etc/hosts"

or

"\\nWORKER-NODE-IP ${HOSTNAME}" >> "/etc/hosts"

You have now made sure your Apigee hybrid cluster is ready. Next, let's apply your configuration to the hybrid runtime and complete your installation of Apigee hybrid.

Troubleshooting

  1. Cassandra DNS check: If you find error logs similar toDNS resolution was successful but IP doesn't match POD IP,could not resolve hostname orerror 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 setup multi-region.
  2. Control Plane connectivity check: If you find error logs similar toerror creating TCP connection with host then you need to resolve the connectivity from cluster to apigee.googleapis.com and re-run the job.
12345678(NEXT) Step 9: Install the hybrid runtime10

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-18 UTC.