GKE 节点池允许你将集群中的节点组织成不同的组,每个组可以有不同的配置,例如机器类型、操作系统镜像、磁盘大小等。这使得你可以根据工作负载的需求优化资源利用率。
可以使用 Google Cloud Console、gcloud 命令行工具或 Kubernetes API 创建节点池。
gcloud 命令行工具 🧰使用以下命令创建节点池:
gcloud container node-pools create [NODE_POOL_NAME] \
--cluster=[CLUSTER_NAME] \
--machine-type=[MACHINE_TYPE] \
--num-nodes=[NUM_NODES] \
--image-type=[IMAGE_TYPE] \
--disk-size=[DISK_SIZE] \
--zone=[ZONE]
例如:
gcloud container node-pools create worker-pool-1 \
--cluster=my-cluster \
--machine-type=e2-medium \
--num-nodes=3 \
--image-type=COS_CONTAINERD \
--disk-size=100 \
--zone=us-central1-a
创建节点池后,你可以对其进行管理,例如调整节点数量、升级节点、删除节点池等。
可以使用 Google Cloud Console 或 gcloud 命令行工具调整节点数量。
gcloud 命令行工具使用以下命令调整节点数量:
gcloud container node-pools resize [NODE_POOL_NAME] \
--cluster=[CLUSTER_NAME] \
--num-nodes=[NUM_NODES] \
--zone=[ZONE]
例如:
gcloud container node-pools resize worker-pool-1 \
--cluster=my-cluster \
--num-nodes=5 \
--zone=us-central1-a
GKE 会定期发布新的节点镜像。你应该定期升级节点以确保它们使用最新的安全补丁和功能。
可以使用 Google Cloud Console 或 gcloud 命令行工具升级节点。
gcloud 命令行工具使用以下命令升级节点:
gcloud container node-pools upgrade [NODE_POOL_NAME] \
--cluster=[CLUSTER_NAME] \
--zone=[ZONE]
例如:
gcloud container node-pools upgrade worker-pool-1 \
--cluster=my-cluster \
--zone=us-central1-a
如果不再需要某个节点池,可以将其删除。
可以使用 Google Cloud Console 或 gcloud 命令行工具删除节点池。
gcloud 命令行工具使用以下命令删除节点池:
gcloud container node-pools delete [NODE_POOL_NAME] \
--cluster=[CLUSTER_NAME] \
--zone=[ZONE]
例如:
gcloud container node-pools delete worker-pool-1 \
--cluster=my-cluster \
--zone=us-central1-a
节点池非常适合管理不同类型的节点,例如:
你可以为每种类型的节点创建一个节点池,并使用 Kubernetes 的节点选择器或污点和容忍度将工作负载调度到相应的节点池。
gcloud container node-pools create gpu-pool \
--cluster=my-cluster \
--machine-type=n1-standard-1 \
--accelerator type=nvidia-tesla-k80,count=1 \
--num-nodes=1 \
--zone=us-central1-a
在 Pod 的 YAML 文件中,添加 nodeSelector 字段:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: my-container
image: my-gpu-image
nodeSelector:
cloud.google.com/gke-accelerator: nvidia-tesla-k80
GKE 节点池提供了一种灵活的方式来管理集群中的节点,并根据工作负载的需求优化资源利用率。通过创建不同类型的节点池,你可以轻松地将工作负载调度到最合适的节点上。希望这些信息能帮助你更好地配置和管理 GKE 集群!🚀