Use the following steps to install Apigee hybrid into your cluster:
Be sure that you are in the hybrid-base-directory/hybrid-files directory.
cd $HYBRID_FILES
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.
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 form
gke_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 the
gcloud credentials of the cluster and set the kubectl context:
For Anthos on bare metal, AWS on GKE, EKS, and GKE on prem platforms only, Verify
that the
KUBECONFIG
variable is set using the following command:
echo ${KUBECONFIG}
Do a dry run initialization. Doing a dry run lets you check for any errors before any
changes are made to the cluster. Execute the init command with
the --dry-run flag as follows:
Repeat this step until the pods are all ready. The pods may take several minutes to start up.
GKE with Workload Identity
If you are installing Apigee hybrid on GKE and you are configuring Workload Identity to authenticate service accounts, in the next
step, you will configure the associations between the Kubernetes service accounts and the Google service accounts for your cluster.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eThis document outlines the steps to install Apigee hybrid version 1.11 into a cluster, beginning with navigating to the \u003ccode\u003ehybrid-base-directory\u003c/code\u003e/\u003ccode\u003ehybrid-files\u003c/code\u003e directory.\u003c/p\u003e\n"],["\u003cp\u003eThe installation process involves verifying the \u003ccode\u003ekubectl\u003c/code\u003e context, optionally setting the \u003ccode\u003eKUBECONFIG\u003c/code\u003e variable for specific platforms, and performing dry runs before initializing and applying the configuration.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003einit\u003c/code\u003e command installs the Apigee Deployment Controller and Admission Webhook, while the \u003ccode\u003eapply\u003c/code\u003e command deploys the Apigee-specific runtime components to the cluster, and it is important to periodically check the status of the pods until they are ready.\u003c/p\u003e\n"],["\u003cp\u003eFor GKE installations using Workload Identity, the next step will be to configure the associations between Kubernetes service accounts and Google service accounts, whereas for other installations, the next step will be configuring the Apigee ingress gateway.\u003c/p\u003e\n"]]],[],null,["# Step 9: Install hybrid runtime\n\n| 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, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nApply the configuration to the cluster\n--------------------------------------\n\n\nUse the following steps to install Apigee hybrid into your cluster:\n\n1. Be sure that you are in the \u003cvar translate=\"no\"\u003ehybrid-base-directory\u003c/var\u003e`/hybrid-files` directory. \n\n ```\n cd $HYBRID_FILES\n ```\n | **Note:** Because the overrides file specifies service account files using paths relative to your \u003cvar translate=\"no\"\u003ehybrid-base-directory\u003c/var\u003e`/hybrid-files` directory, you must execute the commands from within that directory.\n2. 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 ```\n3. *For **Anthos on bare metal** , **AWS on GKE** , **EKS** , and **GKE on prem** platforms only* , Verify that the [`KUBECONFIG`](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable) variable is set using the following command: \n\n ```\n echo ${KUBECONFIG}\n ```\n4. Do a *dry run* initialization. Doing a dry run lets you check for any errors before any changes are made to the cluster. Execute the `init` command with the `--dry-run` flag as follows: \n\n ```\n ${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml --dry-run=client\n ```\n5. If there are no errors, execute the `init` command as follows: \n\n ```\n ${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml\n ```\n\n The `init` command installs the [Apigee deployment\n services](/apigee/docs/hybrid/v1.11/apigee-deployment-services) Apigee Deployment Controller and Apigee Admission Webhook.\n6. To check the status of the deployment, you can use the following commands: \n\n ```\n ${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml\n ``` \n\n ```\n kubectl get pods -n apigee-system\n ``` \n\n ```\n kubectl get pods -n apigee\n ```\n\n\n When the pods are ready, go to the next step.\n7. Do a *dry run* install. Execute the `apply` command with the `--dry-run` flag. \n\n ```\n ${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --dry-run=client\n ```\n8. If there are no errors, you can apply the [Apigee-specific runtime components](/apigee/docs/hybrid/v1.11/what-is-hybrid#about-the-runtime-plane) to the cluster with the following command: \n\n ```\n ${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml\n ```\n9. To check the status of the deployment, run the following command: \n\n ```\n ${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml\n ```\n\n\n Repeat this step until the pods are all ready. The pods may take several minutes to start up.\n\n| **Important:** Follow the steps in the [1.11.2-hotfix.3. release notes](/apigee/docs/hybrid/release-notes#hybrid_1112-hotfix.3) to make sure you have installed the latest version of the hybrid runtime.\n| **Congratulations!**\n|\n| You've successfully installed and configured the Apigee hybrid runtime plane.\n\nGKE with Workload Identity\n--------------------------\n\nIf you are installing Apigee hybrid on GKE and you are configuring Workload Identity to authenticate service accounts, in the next\nstep, you will configure the associations between the Kubernetes service accounts and the Google service accounts for your cluster.\n[1](/apigee/docs/hybrid/v1.11/install-create-cluster) [2](/apigee/docs/hybrid/v1.11/install-cert-manager) [3](/apigee/docs/hybrid/v1.11/install-apigeectl) [4](/apigee/docs/hybrid/v1.11/install-service-accounts) [5](/apigee/docs/hybrid/v1.11/install-create-tls-certificates) [6](/apigee/docs/hybrid/v1.11/install-configure-cluster) [7](/apigee/docs/hybrid/v1.11/install-enable-synchronizer-access) [8](/apigee/docs/hybrid/v1.11/install-check-cluster) [9](/apigee/docs/hybrid/v1.11/install-hybrid-runtime) [(NEXT) Step 10: Set up Workload Identity](/apigee/docs/hybrid/v1.11/install-workload-identity)\n\n\u003cbr /\u003e\n\nAll other installations\n-----------------------\n\nIn the next step, you will configure the Apigee ingress gateway and deploy a proxy to test your installation.\n[(NEXT) Step 1: Expose Apigee ingress](/apigee/docs/hybrid/v1.11/install-expose-apigee-ingress) [2](/apigee/docs/hybrid/v1.11/install-deploy-proxy)\n\n\u003cbr /\u003e"]]