当前位置: 首页 > 工具软件 > kube-aws > 使用案例 >

EKS集群手动升级kube-proxy组件

陈马鲁
2023-12-01

生产集群升级kube-proxy组件计划
目的:1.13.7 --> 1.16.8
附件:点我下载kube-proxy-1.16.8.yaml

0.更新前再次确认工作(删除" resource-container= "字段)

kubectl get daemonset kube-proxy --namespace kube-system -o yaml | grep 'resource-container='

如何有输出,edit删除

kubectl edit daemonset kube-proxy --namespace kube-system

1.备份当前kube-proxy文件输出yaml文件备用(包含configmap等资源类型)注:备份后的yaml不能直接使用,需要删除相关集群绑定信息后,调整格式才能应用

kubectl -n kube-system get configmaps kube-proxy -o yaml >> old-kube-proxy-1.13.7-2021xxxx.yaml
kubectl -n kube-system get configmaps kube-proxy-config -o yaml >> old-kube-proxy-1.13.7-2021xxxx.yaml
kubectl -n kube-system get sa kube-proxy -o yaml >> old-kube-proxy-1.13.7-2021xxxx.yaml
kubectl -n kube-system get clusterrolebindings.rbac.authorization.k8s.io eks:kube-proxy -o yaml >> old-kube-proxy-1.13.7-2021xxxx.yaml
kubectl -n kube-system get daemonsets.apps kube-proxy -o yaml >> old-kube-proxy-1.13.7-2021xxxx.yaml

2.修改kube-proxy模板文件(终端节点,镜像版本,提前验证镜像能否拉取)

查看终端服务节点

aws eks describe-cluster \
    --name <cluster-name> \
    --region <region-code> \
    --query 'cluster.endpoint' \
    --output text

返回

https://<A89DBB2140C8AC0C2F920A36CCC6E18C>.sk1.<region-code>.eks.amazonaws.com

修改模板文件

3.部署新版kube-proxy配置文件,并且快速处理对应的pod为running状态 (ssh登录子节点验证iptables规则状态,设置副本数后查看)

kubectl apply -f kube-proxy-temp-1.16.8.yaml

验证方式:
kube-proxy pod running 后

ssh ec2-user@work01
iptables -L <KUBE-SVC-XXXX> -t nat

master节点操作:

kubectl -n <grafana> scale deployments.apps <grafana-dep> --replicas=5

work节点操作

iptables -L <KUBE-SVC-XXXX> -t nat

同步更新则为正常
恢复操作:

kubectl -n <grafana> scale deployments.apps <grafana-dep> --replicas=1

3.1.<<升级失败回滚计划>>,若升级失败,20分钟内kube-proxy-pod或者集群服务还是error状态,则删除对应的资源对象,部署旧的kube-proxy.yaml备份文件,回滚。

方式1(优先):

kubectl  -n kube-system  rollout undo daemonsets.apps kube-proxy
成功后ssh工作节点验证iptables规则

方式2:
old-kube-proxy-1.13.8.yaml(修改格式能直接应用的yaml文件)

kubectl apply -f old-kube-proxy-1.13.8.yaml

pod runing后再次执行验证操作

验证方式:
kube-proxy pod running 后

ssh ec2-user@work01
iptables -L <KUBE-SVC-XXXX> -t nat

master节点操作:

kubectl -n <grafana> scale deployments.apps <grafana-dep> --replicas=5

work节点操作

iptables -L <KUBE-SVC-XXXX> -t nat

同步更新则为正常
恢复操作:

kubectl -n <grafana> scale deployments.apps <grafana-dep> --replicas=1

4.kube-proxy对应资源running后,观察系统pod是否正常,备份yaml文件,方便后续升级kube-proxy !

 类似资料: