节点池是 GKE 集群中的一组节点,它们具有相同的配置。通过管理节点池,您可以更有效地利用计算资源,优化成本,并提高应用程序的可用性。💪
您可以使用 Google Cloud Console 或 gcloud 命令行工具创建节点池。
gcloud container node-pools create [节点池名称] \
--cluster=[集群名称] \
--machine-type=[节点类型] \
--num-nodes=[节点数量] \
--zone=[可用区] \
--node-version=[GKE版本] \
--enable-autoscaling \
--min-nodes=[最小节点数] \
--max-nodes=[最大节点数]
例如:
gcloud container node-pools create my-node-pool \
--cluster=my-cluster \
--machine-type=e2-medium \
--num-nodes=3 \
--zone=us-central1-a \
--node-version=latest \
--enable-autoscaling \
--min-nodes=1 \
--max-nodes=5
更新节点池可以更改节点类型、节点数量、镜像版本等。您可以滚动更新节点池,以避免应用程序中断。
gcloud container node-pools update [节点池名称] \
--cluster=[集群名称] \
--machine-type=[新的节点类型] \
--num-nodes=[新的节点数量] \
--node-version=[GKE版本] \
--update-surge=[最大并发更新节点数] \
--max-surge-percentage=[最大并发更新节点百分比] \
--max-unavailable=[最大不可用节点数] \
--max-unavailable-percentage=[最大不可用节点百分比]
例如:
gcloud container node-pools update my-node-pool \
--cluster=my-cluster \
--machine-type=e2-standard-2 \
--num-nodes=5 \
--node-version=latest \
--update-surge=1 \
--max-unavailable=1
删除节点池会永久删除节点池中的所有节点。请谨慎操作!
gcloud container node-pools delete [节点池名称] \
--cluster=[集群名称] \
--zone=[可用区]
例如:
gcloud container node-pools delete my-node-pool \
--cluster=my-cluster \
--zone=us-central1-a
节点池自动伸缩可以根据应用程序的负载自动调整节点数量,以优化资源利用率和成本。
gcloud container node-pools update [节点池名称] \
--cluster=[集群名称] \
--enable-autoscaling \
--min-nodes=[最小节点数] \
--max-nodes=[最大节点数]
例如:
gcloud container node-pools update my-node-pool \
--cluster=my-cluster \
--enable-autoscaling \
--min-nodes=1 \
--max-nodes=5
节点污点和容忍度可以控制哪些 Pod 可以调度到特定节点池中的节点上。这对于将特定类型的工作负载隔离到专用节点池非常有用。
kubectl taint nodes [节点名称] [key]=[value]:[effect]
例如:
kubectl taint nodes gke-my-cluster-my-node-pool-xxxxx key=value:NoSchedule
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"
节点标签可以用于将节点分组,并使用节点选择器将 Pod 调度到特定节点组。
kubectl label nodes [节点名称] [key]=[value]
例如:
kubectl label nodes gke-my-cluster-my-node-pool-xxxxx environment=production
nodeSelector:
environment: production
希望本指南能帮助您更好地管理 GKE 集群节点池!🎉