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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: EKS集群手动升级kube-proxy组件

生产集群升级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 !

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
缓存 Prometheus Kubernetes
kubernetes 【网络组件】coredns【1】配置使用详解
kubernetes 【网络组件】coredns【1】配置使用详解
kubernetes 【网络组件】coredns【1】配置使用详解
|
8月前
|
Kubernetes 调度 Docker
Kubernetes高可用集群二进制部署(五)kubelet、kube-proxy、Calico、CoreDNS
Kubernetes高可用集群二进制部署(五)kubelet、kube-proxy、Calico、CoreDNS
Kubernetes高可用集群二进制部署(五)kubelet、kube-proxy、Calico、CoreDNS
|
存储 Kubernetes 负载均衡
【Kubernetes系统原理、核心资源、Pod原理与创建及生命周期管理、Job、Cronjob、Statefulset、Service负载均衡Ingress】
【Kubernetes系统原理、核心资源、Pod原理与创建及生命周期管理、Job、Cronjob、Statefulset、Service负载均衡Ingress】
399 2
|
负载均衡 Kubernetes 网络协议
kubernetes--kube-proxy组件深入理解
每台机器上都运行一个kube-proxy服务’它监听API server中service和endpoint的变化情 况,并通过iptables等来为服务配置负载均衡(仅支持TCP和UDP)
451 0
|
8月前
|
Kubernetes 容器
Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-manager、kube-scheduler
Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-manager、kube-scheduler
|
8月前
|
Kubernetes 前端开发 网络协议
云原生|kubernetes|kubernetes中的资源(一)---service详解
云原生|kubernetes|kubernetes中的资源(一)---service详解
243 0
|
存储 Kubernetes 网络协议
Kubernetes 集群部署 NFS-Subdir-External-Provisioner 存储插件
Kubernetes 对 Pod 进行调度时,以当时集群中各节点的可用资源作为主要依据,自动选择某一个可用的节点,并将 Pod 分配到该节点上。在这种情况下,Pod 中容器数据的持久化如果存储在所在节点的磁盘上,就会产生不可预知的问题,例如,当 Pod 出现故障,Kubernetes 重新调度之后,Pod 所在的新节点上,并不存在上一次 Pod 运行时所在节点上的数
6620 2
Kubernetes 集群部署 NFS-Subdir-External-Provisioner 存储插件
|
Kubernetes 负载均衡 网络协议
Kubernetes 【网络组件】kube-proxy使用详解
Kubernetes 【网络组件】kube-proxy使用详解
Kubernetes 【网络组件】kube-proxy使用详解
|
Kubernetes 容器
k8s部署 kube-proxy 组件
k8s部署 kube-proxy 组件
k8s部署 kube-proxy 组件
|
存储 Kubernetes 前端开发
Kubernetes config 配置访问多集群
Kubernetes config 配置访问多集群