Minimum
machine type
apigee-data
apigee-runtime
For more details about node pool configuration see Configure dedicated node pools.
default
node pool. See Delete a node pool.export CLUSTER_NAME="YOUR_CLUSTER_NAME"
export CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
export PROJECT_ID="YOUR_PROJECT_ID"
set CLUSTER_NAME="YOUR_CLUSTER_NAME"
set CLUSTER_LOCATION=YOUR_CLUSTER_LOCATION
set PROJECT_ID=YOUR_PROJECT_ID
Where:
CLUSTER_NAME
: The name of your cluster. CLUSTER_LOCATION
: The region in which you created your cluster. PROJECT_ID
: Your Google Cloud project ID. gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --zone=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
kubectl
by getting the gcloud
credentials of the cluster you just created: gcloud container clusters get-credentials ${CLUSTER_NAME} \ --region ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
Configure persistent solid state disk (SSD) storage for Cassandra. We do not support using local SSDs. For more information, see Change the default storage class in the Kubernetes documentation.
kubectl get sc
For example:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
standard-rwo
. Note that its type is pd-balanced
: kubectl describe sc standard-rwo
For example:
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
storageclass.yaml
.apigee-sc
. You can use any name you like. Also, note that the storage type is pd-ssd
: --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
kubectl apply -f storageclass.yaml
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
apigee-sc
: kubectl get sc
For example:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION}
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
gcloud container clusters describe ${CLUSTER_NAME} \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION} | grep -i "workload"
gcloud container clusters describe ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID} | grep -i "workload"
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a GKE cluster for Apigee hybrid as part of a software-only Google Distributed Cloud on VMware deployment.
Go to the next step only after the cluster creation completes successfully.
Minimum node pool requirements
Be sure to satisfy these minimum requirements when creating the node pools. Select the values for Prod or Non-prod depending on the the Apigee hybrid installation you are building. Non-prod installations are suitable for testing and demonstration but not sufficeint for production traffic.
Node pool name | Description | Minimum nodes | Prod Minimum machine type | Non-prod Minimum machine type |
---|---|---|---|---|
apigee-data | A stateful node pool used for the Cassandra database. | 1 per zone (3 per region) | e2-standard-8 (8 vCPU, 16 GB memory) | e2-standard-4 (4 vCPU, 16 GB memory) |
apigee-runtime | A stateless node pool used by the runtime message processor. | 1 per zone (3 per region) | e2-standard-8 (8 vCPU, 16 GB memory) | e2-standard-4 (4 vCPU, 16 GB memory) |
For more details about node pool configuration see Configure dedicated node pools.
default
node pool. See Delete a node pool.Configure persistent solid state disk (SSD) storage for Cassandra. We do not support using local SSDs. For more information, see Change the default storage class in the Kubernetes documentation.
kubectl get sc
For example:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
standard-rwo
. Note that its type is pd-balanced
: kubectl describe sc standard-rwo
For example:
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
storageclass.yaml
.apigee-sc
. You can use any name you like. Also, note that the storage type is pd-ssd
: --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
kubectl apply -f storageclass.yaml
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
apigee-sc
: kubectl get sc
For example:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a GKE cluster for Apigee hybrid as part of a software-only deployment of Google Distributed Cloud on bare metal. Google Distributed Cloud on bare metal lets you run Kubernetes clusters directly on your own machine resources.
The minimum configurations for your cluster are:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Purpose | A stateful node pool used for the Cassandra database. | A stateless node pool used by the runtime message processor. |
Label name | apigee-data | apigee-runtime |
Number of nodes | 1 per zone (3 per region) | 1 per zone (3 per region) |
CPU | 8 (Prod) 4 (Non-prod) | 8 (Prod) 4 (Non-prod) |
RAM | 32 (Prod) 16 (Non-prod) | 32 (Prod) 16 (Non-prod) |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Minimum disk IOPS | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. |
Network bandwidth for each machine instance type | 1 Gbps | 1 Gbps |
For more details on minimum cluster configuration see: Minimum cluster configurations
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a cluster for Apigee hybrid on AKS.
The minimum configurations for your cluster are:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Purpose | A stateful node pool used for the Cassandra database. | A stateless node pool used by the runtime message processor. |
Label name | apigee-data | apigee-runtime |
Number of nodes | 1 per zone (3 per region) | 1 per zone (3 per region) |
CPU | 8 (Prod) 4 (Non-prod) | 8 (Prod) 4 (Non-prod) |
RAM | 32 (Prod) 16 (Non-prod) | 32 (Prod) 16 (Non-prod) |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Minimum disk IOPS | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. |
Network bandwidth for each machine instance type | 1 Gbps | 1 Gbps |
For more details on minimum cluster configuration see: Minimum cluster configurations
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a cluster for Apigee hybrid on EKS.
The minimum configurations for your cluster are:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Purpose | A stateful node pool used for the Cassandra database. | A stateless node pool used by the runtime message processor. |
Label name | apigee-data | apigee-runtime |
Number of nodes | 1 per zone (3 per region) | 1 per zone (3 per region) |
CPU | 8 (Prod) 4 (Non-prod) | 8 (Prod) 4 (Non-prod) |
RAM | 32 (Prod) 16 (Non-prod) | 32 (Prod) 16 (Non-prod) |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Minimum disk IOPS | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. |
Network bandwidth for each machine instance type | 1 Gbps | 1 Gbps |
For more details on minimum cluster configuration see: Minimum cluster configurations
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a cluster for Apigee hybrid on GKE on AWS.
The minimum configurations for your cluster are:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Purpose | A stateful node pool used for the Cassandra database. | A stateless node pool used by the runtime message processor. |
Label name | apigee-data | apigee-runtime |
Number of nodes | 1 per zone (3 per region) | 1 per zone (3 per region) |
CPU | 8 (Prod) 4 (Non-prod) | 8 (Prod) 4 (Non-prod) |
RAM | 32 (Prod) 16 (Non-prod) | 32 (Prod) 16 (Non-prod) |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Minimum disk IOPS | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. |
Network bandwidth for each machine instance type | 1 Gbps | 1 Gbps |
For more details on minimum cluster configuration see: Minimum cluster configurations
When you have a cluster installed and running, go to the next step.
These steps explain how to configure and create a cluster for Apigee hybrid on OpenShift.
As part of the OpenShift install, install and configure the oc
CLI tool. See Getting started with the OpenShift CLI in the OpenShift documentation.
The minimum configurations for your cluster are:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Purpose | A stateful node pool used for the Cassandra database. | A stateless node pool used by the runtime message processor. |
Label name | apigee-data | apigee-runtime |
Number of nodes | 1 per zone (3 per region) | 1 per zone (3 per region) |
CPU | 8 (Prod) 4 (Non-prod) | 8 (Prod) 4 (Non-prod) |
RAM | 32 (Prod) 16 (Non-prod) | 32 (Prod) 16 (Non-prod) |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Minimum disk IOPS | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. | 2000 IOPS with SAN or directly attached storage. NFS is not recommended even if it can support the required IOPS. |
Network bandwidth for each machine instance type | 1 Gbps | 1 Gbps |
For more details on minimum cluster configuration see: Minimum cluster configurations
When you have installed a cluster, go to the next step.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-02 UTC.