This topic describes minimum cluster configurations for Apigee hybrid. These minimum configurations apply to all of the supported Kubernetes platforms.
About node pools
A node pool is a group of nodes within a cluster that all have the same configuration. By default, hybrid assigns all pods to the default node pool; however, you can create dedicated node pools and assign hybrid components to them as a way of distributing resources.
Typically, you define dedicated node pools when you have pods with differing resource
requirements. For example, the apigee-cassandra
pods require persistent storage, while
the other Apigee hybrid pods do not. For this reason, we recommend that you create
a stateful node pool for Cassandra and a stateless node pool for the rest of the hybrid
runtime services. See Configure dedicated node pools for
details.
The following section lists configurations for both stateful and stateless node pools.
Minimum configurations
Use these minimum configurations when setting up your cluster:
Configuration | Stateful node pool | Stateless node pool |
---|---|---|
Number of nodes | 3 (per region) | 3 (per region) |
CPU | 4 | 4 |
RAM | 15 | 15 |
Default label name | apigee-data | apigee-runtime |
Storage | dynamic | Managed with the ApigeeDeployment CRD |
Cassandra network requirements
Cassandra uses the Gossip protocol to exchange information with other nodes about network topology.
The use of Gossip plus the distributed nature of Cassandra—which involves talking to multiple nodes for read and write operations—results in a lot of data transfer through the network.
Apigee recommends using instance type with a minimum 1 Gbps network bandwidth and more than 1 Gbps for production systems.
Cassandra NTP requirements
Cassandra data synchronizes based on the timestamp of the system. Ensure that the time is synchronized across all pods and all regions within the Cassandra cluster. Time delays between the nodes and regions causes data inconsistencies.
Scaling the configuration
If you need to scale your initial configuration based on additional capacity or throughput needs, see the following topics:
- Configuring Cassandra for production
- Scaling Cassandra pods
- Configuring dedicated node pools
- Scale and autoscale runtime services