首页 > 其他分享 >k8s-IPV6升级(二)

k8s-IPV6升级(二)

时间:2023-05-27 11:46:46浏览次数:36  
标签:kube apps 升级 kubelet manager scheduler IPV6 pod k8s

一、手动升级步骤

  1. 导入镜像至镜像仓库
# 将镜像导入到镜像仓库中
## apiserver镜像
docker load -i kube-apiserver_v1.21.5.tar
docker push registry.paas/cmss/kube-apiserver:v1.21.5
## controller-manager镜像
docker load -i kube-controller-manager_v1.21.5.tar
docker push registry.paas/cmss/kube-controller-manager:v1.21.5
## kube-scheduler镜像
docker load -i kube-scheduler_v1.21.5.tar
docker push registry.paas/cmss/kube-scheduler:v1.21.5
## kube-proxy镜像
docker load -i kube-proxy_v1.21.5.tar
docker push registry.paas/cmss/kube-proxy:v1.21.5
## etcd镜像
docker load -i etcd_3.4.13-0.tar
  1. master节点升级到1.20步骤
# 备份apiserver、kube-scheduler和controller-manager
cp -r /apps/conf/kubernetes/manifests/ /tmp/

2.1 更新管理平面组件至1.19
2.2 逐节点更新master节点的kube-apiserver

修改如下参数

vi /apps/conf/kubernetes/manifests/kube-apiserver.yaml
# 启动参数删除
- --basic-auth-file=/apps/conf/kubernetes/users/known_users.csv
# volumeMounts中删除
    - mountPath: /apps/conf/kubernetes/users
      name: basic-auth-config
# hostPath中删除
  - hostPath:
      path: /apps/conf/kubernetes/users
      type: ""
    name: basic-auth-config      
​
# 更新apiserver的镜像
registry.paas/cmss/kube-apiserver:v1.19.16

等待pod重启,查看pod状态

# 升级完成后查看apiserver的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep apiserver
# 升级完成后查看apiserver的镜像版本是否是1.19.16
kubectl edit pod kube-apiserver-kcpm1 -n kube-system

2.1.2 逐节点更新master节点的kube-controller-manager
修改如下参数

vi /apps/conf/kubernetes/manifests/kube-controller-manager.yaml
# 更新controller-manager的镜像
registry.paas/cmss/kube-controller-manager:v1.19.16

等待pod重启,查看pod状态

# 升级完成后查看controller-manager的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep controller-manager
# 升级完成后查看controller-manager的镜像版本是否是1.19.16
kubectl edit pod kube-controller-manager-kcpm1 -n kube-system

2.1.3 逐节点更新master节点的kube-scheduler
修改如下参数

vi /apps/conf/kubernetes/manifests/kube-scheduler.yaml
# 更新kube-scheduler的镜像
registry.paas/cmss/kube-scheduler:v1.19.16

等待pod重启,查看pod状态

# 升级完成后查看scheduler的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep scheduler
# 升级完成后查看scheduler的镜像版本是否是1.19.16
kubectl edit pod kube-scheduler-kcpm1 -n kube-system

2.3 管理平面组件升级到1.20.0
2.3.1 逐节点更新master节点的kube-apiserver
修改如下参数

vi /apps/conf/kubernetes/manifests/kube-apiserver.yaml
# 新增启动参数
- --service-account-issuer=https://kubernetes.default.svc.cluster.local
- --service-account-key-file=/apps/conf/kubernetes/ssl/sa.pub    #这一行看文件中是否有,没有就新增
- --service-account-signing-key-file=/apps/conf/kubernetes/ssl/sa.key
# 更新apiserver的镜像
registry.paas/cmss/kube-apiserver:v1.20.12

等待pod重启,查看pod状态

# 升级完成后查看apiserver的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep apiserver
# 升级完成后查看apiserver的镜像版本是否是1.20.12
kubectl edit pod kube-apiserver-kcpm1 -n kube-system

2.3.2 逐节点更新master节点的kube-controller-manager
修改如下参数

vi /apps/conf/kubernetes/manifests/kube-controller-manager.yaml
# 更新controller-manager的镜像
registry.paas/cmss/kube-controller-manager:v1.20.12

等待pod重启,查看pod状态

# 升级完成后查看controller-manager的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep controller-manager
# 升级完成后查看controller-manager的镜像版本是否是1.20.12
kubectl edit pod kube-controller-manager-kcpm1 -n kube-system

2.3.3 逐节点更新master节点的kube-scheduler
修改如下参数

vi /apps/conf/kubernetes/manifests/kube-scheduler.yaml
# 更新kube-scheduler的镜像
registry.paas/cmss/kube-scheduler:v1.20.12

等待pod重启,查看pod状态

# 升级完成后查看scheduler的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep scheduler
# 升级完成后查看scheduler的镜像版本是否是1.20.12
kubectl edit pod kube-scheduler-kcpm1 -n kube-system

2.4 master节点回退

# 1. 依次将apiserver、kube-controller-manager和scheduler回退到1.18.5,将镜像的tag更改为1.18.5
# 2. apiserver、kube-controller-manager和scheduler回退到1.18.5
mv /tmp/manifests/* /apps/conf/kubernetes/manifests/
  1. 逐节点更新所有节点的kubelet到1.20
    3.1 准备工作
# 节点进入维护状态,此步骤不是必须步骤
kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
# --force
# 当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者 StatefulSet 管理的时候就需要用--force来强制执行 (例如:kube-proxy) 
# --ignore-daemonsets
# 无视DaemonSet管理下的Pod 
# --delete-local-data
# 如果有mount local volumn的pod,会强制杀掉该pod并把数据清除掉,另外如果跟本身的配置讯息有冲突时,drain就不会执行
​
# 停止节点的kubelet
systemctl stop kubelet
# 备份节点的配置文件和可执行文件
## 备份kubelet的环境变量
cp /apps/conf/kubernetes/kubelet.env /apps/conf/kubernetes/kubelet.env.bak
## 备份kubelet的可执行文件
cp /apps/bin/kubelet /apps/bin/kubelet.bak
## 备份apiserver、controller-manager和scheduler
cp -r /apps/conf/kubernetes/manifests /tmp/

3.2 kubelet
3.2.1 重启kubelet

cp kubelet /apps/bin/
cp kubelet /usr/bin/
chmod +x /apps/bin/kubelet
chmod +x /usr/bin/kubelet
systemctl daemon-reload && systemctl restart kubelet

3.2.2 查看升级状态

# 查看kubelet状态
systemctl status kubelet
# 查看kubelet版本是否是1.20.12
kubelet --version
# 设置节点取消维护状态
kubectl uncordon <node name> 

3.3 回退
若kubelet状态异常且无法解决,则需要回退。

systemctl stop kubelet
cp /apps/conf/kubernetes/kubelet.env.bak /apps/conf/kubernetes/kubelet.env
cp /apps/bin/kubelet-1.18.5 /apps/bin/kubelet
cp /apps/bin/kubelet-1.18.5 /usr/bin/kubelet
systemctl daemon-reload && systemctl restart kubele 
  1. addon更新到1.20

4.1 kube-proxy

kubectl edit  ds kube-proxy -nkube-system
# 替换镜像为 registry.paas/cmss/kube-proxy:v1.20.12 

4.2 查看升级状态

# 升级完成后查看kube-proxy的pod是否重新启动,状态是否正常,若是不正常需要回退
kubectl get pod -n kube-system |grep kube-proxy
# 升级完成后查看scheduler的镜像版本是否是1.20.12
kubectl edit pod kube-proxy-kcpm1 -n kube-system
# 查看是否能够访问集群中的服务来验证kube-proxy的功能,若是能连通,则代表kube-proxy升级成功
curl serviceip:port

4.3 回退
若是组件状态有问题且无法解决,需要回退。

## kebe-proxy回退,替换镜像为registry.paas/cmss/kube-proxy:v1.18.5
/apps/bin/kubectl edit ds kube-proxy -n kube-system

作者:姜博文

标签:kube,apps,升级,kubelet,manager,scheduler,IPV6,pod,k8s
From: https://www.cnblogs.com/DTCLOUD/p/17436482.html

相关文章

  • 云原生(docker jenkins k8s)
    docker(1)架构●Docker_Host:○安装Docker的主机●DockerDaemon:○运行在Docker主机上的Docker后台进程●Client:○操作Docker主机的客户端(命令行、UI等)●Registry:○镜像仓库○DockerHub●Images:○镜像,带环境打包好的程序,可以直接启动运行●Containers:○......
  • .net core部署到k8s
    .netcore部署到k8s参考准备dockerfiledotnetnewmvc--namemywebdotnetpublish-crelease-opublishFROMmcr.microsoft.com/dotnet/aspnet:7.0ASbaseWORKDIR/appEXPOSE80COPY..ENTRYPOINT["dotnet","myweb.dll"]dockerbuild......
  • ks8-IPV6升级
    一、需求k8s1.18.5的环境升级到1.21.5版本,预期目标是:1.升级过程中k8s集群正常运行2.运行在k8s集群中的业务不中断3.升级过程中失败能快速回退二、思路Kubernetes版本号格式为x.y.z,其中x为大版本号,y为小版本号,z为补丁版本,各个组件之间最大的版本偏差如下(参考Kubernetes版本......
  • 【K8s入门推荐】K8s1.24版本部署全教程,轻松掌握技巧kubeadm丨Kubernetes丨容器编排丨
    通过kubeadm方式极速部署Kubernetes1.24版本前言在Kubernetes的搭建过程中,繁琐的手动操作和复杂的配置往往会成为制约部署效率的关键因素。而使用kubeadm工具可以避免这些问题,大大提高集群的部署效率和部署质量。本文将为大家详细介绍如何使用kubeadm工具快速搭建Kubernetes1.24......
  • 全网最全Kubernetes(k8s)知识点,看着一篇就够了
    一、引言Kubernetes是谷歌强力推出的一款开源的容器编排技术,他的目标是让部署容器化的应用更简单高效,Kubernetes提供了应用部署,规划,更新,维护的一系列机制,很多大公司都在使用。Kubernetes有叫k8s(下面我就简称k8s)。下面我们就进入k8s的世界吧!二、k8s概述和特性1、几点概述k8s......
  • k8s中,怎么修改pod的内核参数?
    对于docker容器,可以在run的时候,指定--sysctl和对应的内核参数 那么,对于pod该如何进行修改? 接下来的内容,将会告诉你,如何进行修改 方法非常的简单...... 通过initContainer 示例如下: 1、编辑deployment文件kubectleditdeployphp-apache  2、增加init......
  • 10分钟,完成变更!内蒙古东胜区政务服务升级之路
    近日,东胜区市民王先生在东胜市民中心进行社会组织团体资质变更办理事宜,往年办理需要好几天的时间对提交的材料进行多重人工审核,今年王先生便提前来到大厅办理。一进门便眼前一新,在工作人员的引导下,王先生先来到窗口进行事项办理,窗口人员通过高速扫描仪仅用了1分钟就完成了所有材料......
  • 虚拟机安装k8s
    k8s集群参考配置环境#关闭selinux(管安全的)sed-i's/enforcing/disabled/'/etc/selinux/config#关闭swap(类似虚拟内存,会有性能和管理问题)swapoff-ased-ri's/.*swap.*/#&/'/etc/fstab#添加hostcat>>/etc/hosts<<EOF192.168.114.134key0119......
  • centos7升级内核到5.4
    centos7升级内核到5.4一、yum的方式升级1、查看当前内核版本#uname-srLinux3.10.0-1160.el7.x86_642、安装elrepo载入公钥,安装eprepo源(网址:http://elrepo.org/)#rpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org#rpm-Uvhhttps://www.elrepo.org/elrepo-......
  • python升级pip失败的最终解决办法
    玩点python卡在pip安装包上了,我用的是pycharm,在它的交互命令行里使用python-mpipinstall--upgradepip始终报错!Traceback(mostrecentcalllast):File"d:\soft\python3.7\lib\site-packages\pip\_vendor\urllib3\response.py",line331,in_error_catcheryield......