You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新AWS EKS集群Fargate Pod的kubelet版本以完成升级?

解决EKS升级时Fargate Pod Kubelet版本不匹配的问题

问题原因

EKS控制平面升级到1.20后,现有Fargate Pod的kubelet版本仍停留在之前的集群版本,EKS要求所有Fargate Pod的kubelet版本必须与当前控制平面版本匹配,才能继续升级到1.21。

解决步骤

1. 定位不匹配的Fargate Pod

执行以下命令,列出所有kubelet版本未匹配1.20的Fargate Pod:

kubectl get pods --all-namespaces -o jsonpath='{range .items[?(@.spec.schedulerName=="fargate-scheduler")]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.status.nodeInfo.kubeletVersion}{"\n"}' | grep -v v1.20

(注:将v1.20替换为你的集群1.20对应的具体小版本,比如v1.20.15-eks-f6799c)

2. 回收不匹配的Pod

根据Pod的管理控制器类型,执行对应的重启操作:

  • Deployment管理的Pod:
    kubectl rollout restart deployment <deployment-name> -n <namespace>
    
  • StatefulSet管理的Pod:
    kubectl rollout restart statefulset <statefulset-name> -n <namespace>
    
  • DaemonSet管理的Pod:
    kubectl rollout restart daemonset <daemonset-name> -n <namespace>
    
  • 独立Pod(无控制器管理):
    先删除Pod,再重新应用其配置文件:
    kubectl delete pod <pod-name> -n <namespace>
    kubectl apply -f <pod-config.yaml>
    

3. 验证Pod版本

再次执行步骤1的命令,确认所有Fargate Pod的kubelet版本均已更新为1.20系列。同时可检查Pod状态:

kubectl get pods --all-namespaces -o wide | grep Fargate

4. 重新执行集群升级

确认所有Pod版本匹配后,重新运行升级命令:

eksctl upgrade cluster --name sandbox --approve

注意事项

  • 回收Pod会导致短暂服务中断,建议在业务低峰期操作。
  • 若存在多个Fargate Profile,需确保所有Profile下的Pod都被处理。
  • 操作完成后,确认所有Pod处于Running状态,再进行后续升级。

内容的提问来源于stack exchange,提问作者Chris F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:30:52