General format
To create an AWSNodePool from this template, copy the following YAML and replace the highlighted values as defined in the field specifications.
apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool metadata: name: NODE_POOL_NAME spec: clusterName: AWSCLUSTER_NAME version: CLUSTER_VERSION # latest version is 1.25.5-gke.2100 region: AWS_REGION subnetID: AWS_SUBNET_ID minNodeCount: MINIMUM_NODE_COUNT maxNodeCount: MAXIMUM_NODE_COUNT maxPodsPerNode: MAXIMUM_PODS_PER_NODE_COUNT instanceType: AWS_NODE_TYPE keyName: KMS_KEY_PAIR_NAME iamInstanceProfile: NODE_IAM_PROFILE proxySecretName: PROXY_SECRET_NAME rootVolume: sizeGiB: ROOT_VOLUME_SIZE volumeType: VOLUME_TYPE # Optional iops: IOPS # Optional kmsKeyARN: NODE_VOLUME_KEY # Optional labels: # Optional LABEL_NAME: LABEL_VALUE taints: - key: KEY1 value: VALUE1 effect: PREFERNOSCHEDULE - key: KEY2 effect: NOSCHEDULE tags: TAG_NAME: TAG_VALUE
Field specifications
You can define the following fields in a AWSNodePool's spec
.
Name | Description | Type | Example | Required |
---|---|---|---|---|
clusterName | Your AWSCluster's name. | string |
my-cluster |
yes |
region | An AWS region for the node pool. This value must match the region of the parent cluster. | string |
us-east-1 |
yes |
version | The node pool's cluster version. See Versioning and upgrades and upgrading a user cluster for more information. | string |
1.25.5-gke.2100 |
|
minNodeCount | The minimum number of worker nodes in the node pool. | integer |
3 |
yes |
maxNodeCount | The maximum number of worker nodes in the node pool. | integer |
3 |
yes |
maxPodsPerNode | The maximum number of pods that GKE on AWS will allocate to a node. | integer |
100 |
yes |
instanceType | An AWS EC2 instance type for each node pool worker. See Supported instance types. | string |
m5.large |
yes |
keyName | The AWS KMS key pair assigned to each node pool worker. | string |
my-key-pair |
yes |
securityGroupIDs | The IDs of additional security groups to add to nodes in this pool. Note that GKE on AWS automatically creates security groups with minimum rules needed for a functioning node pool. | list(string) |
[sg-0ec06559d997a796f] |
no |
iamInstanceProfile | The name of the AWS EC2 instance profile assigned to nodes in the pool. | string |
my-node-pool-profile |
yes |
proxySecretName | The name of a proxy secret to configure custom proxy settings | string |
proxy-secret-1 |
no |
rootVolume | Parameters for node pool's root volumes. For more information, see spec.RootVolume. | object |
{sizeGiB: 10} |
yes |
subnetId | The private subnet in the node pool's region | string |
subnet-1234567890abcdef |
yes |
labels | Labels applied to nodes in the node pool | object |
{billing: some-account, owner: dev} |
no |
taints | Taints applied to the node pool | object |
key: key1 |
no |
tags | Key/value metadata assigned to each AWS resource supporting the node pool. | map(string) |
{Environment: Production, Team: Analytics} | no |
spec.rootVolume
Name | Description | Type | Example | Required |
---|---|---|---|---|
sizeGiB | Size of the control plane node's root volume in Gigabytes. You might need to increase this for large clusters. | integer |
10 |
yes |
volumeType | The node's AWS EBS volume type. Can be gp2 (default) or gp3 . |
string |
gp2 |
no |
iops | The amount of provisioned IO operations per second (IOPS) for volumes. Only valid when volumeType is gp3 . For more information, see General Purpose SSD volumes (gp3). |
integer |
5000 |
no |
kmsKeyARN | The ARN of the AWS KMS key used to encrypt the EBS volume. For more information, see Using a customer managed CMK to encrypt volumes. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
no |