EKS集群中Fargate与EC2节点kubelet版本不匹配问题求助
解决EKS集群Fargate与EC2节点kubelet版本不一致问题
你的集群中Fargate节点使用v1.22.6-eks-14c7a48,EC2节点使用v1.22.10-eks-7dc61e8,重启Fargate Pod无效的核心原因是:Fargate节点与Pod生命周期绑定,仅重启Pod不会销毁旧节点,旧节点仍会保留原kubelet版本。以下是具体解决方案:
步骤1:确认集群控制面版本
首先确认EKS控制面是否已升级到与EC2节点匹配的补丁版本(v1.22.10):
aws eks describe-cluster --name <你的集群名称> --query 'cluster.version'
如果控制面版本为1.22.10,则新创建的Fargate节点会自动使用对应补丁版本的kubelet。
步骤2:删除Fargate Pod强制重建
删除现有Fargate Pod,触发集群调度新Pod并创建匹配控制面版本的Fargate节点:
- 针对单个Pod:
kubectl delete pod <Pod名称> -n <命名空间>
- 针对Deployment管理的Pod(批量重建):
kubectl rollout restart deployment <Deployment名称> -n <命名空间>
步骤3:验证Fargate Profile配置(可选)
如果重建后的Pod仍调度到旧版本节点,检查Fargate Profile是否覆盖目标Pod的命名空间和标签:
aws eks describe-fargate-profile --cluster-name <你的集群名称> --fargate-profile-name <Profile名称>
确保Profile的selectors包含Pod所在的命名空间或标签,保证Pod会被调度到Fargate而非EC2节点。
步骤4:验证节点版本
Pod重建完成后,执行以下命令查看节点版本:
kubectl get nodes
新的Fargate节点kubelet版本应与EC2节点一致(v1.22.10-eks-7dc61e8)。
内容的提问来源于stack exchange,提问作者Vinithra Venkat
相关产品推荐
相关产品推荐

