AWS EKS版本升级

乜坚成
2023-12-01

官网参考

更新集群控制平面
https://docs.amazonaws.cn/eks/latest/userguide/update-cluster.html

更新托管节点组
https://docs.amazonaws.cn/eks/latest/userguide/update-managed-node-group.html

更新非托管节点组
https://docs.amazonaws.cn/eks/latest/userguide/update-workers.html

按照官方说法,建议每次升级一个小版本,如1.19—1.20这样,不要跨版本升级,以免造成意外情况。

操作流程

控制平面升级

eksctl upgrade cluster --name xxx --approve
eksctl get cluster xxx

节点组升级(托管与非托管节点组均采用相同方式)

平滑升级流程
查看原节点组数量(eksctl) – 启动新的节点组保证数量(eksctl)–暂停主机调度(rancher)–重新部署(rancher)–观察全部迁移完成(rancher/kubectl)–删除老的节点组(eksctl)

  1. 查看原节点组数量
    eksctl get nodegroups --cluster=xxx

  2. 拷贝并修改为新节点组配置文件,保持节点数量desiredCapacity一致,避免pod pending
    eksctl create nodegroup --config-file=xxx.yml

  3. 在rancher中“暂停”原来的节点组,禁止调度

  4. 在rancher中“重新部署”节点组中的pod,使其滚动部署到新的节点组,速度较慢(若在业务低峰期间,对可用性要求不高,可以直接“驱逐”,会删除老的pod,创建新的pod,速度较快)对于statefuset应用注意是否绑定指定可用区的gp2 pvc。若在宁夏a区,可增加如下label:topology.kubernetes.io/zone = cn-northwest-1a,

  5. 待到全部启动成功,删除老的节点组即可。
    eksctl delete nodegroup --cluster=xxx --name=节点组名字

managedNodeGroups 升级最少修改参数
托管节点组官方ami查看

通常修改以下三个字段:
1、metadata.version: "1.20"                          # 版本
2、managedNodeGroups.name: "xxx-20"        # 节点组名
3、managedNodeGroups.ami: "ami-0e88a5d4b6efb1f09"    # 新版本使用的ami

nodeGroups 升级最少修改参数

通常修改以下两个字段:
1、metadata.version: "1.20"                          # 版本
2、nodeGroups.name: "xxx-20"               # 节点组名
 
 类似资料: