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

k8s-IPV6升级(3)

时间:2023-06-14 17:11:54浏览次数:41  
标签:kube conf kubernetes apps 升级 kubelet etcd IPV6 k8s

1. 逐节点手动升级步骤2

1.1 master节点升级到1.21.5步骤

# 备份apiserver、kube-scheduler和controller-manager
cp -r /apps/conf/kubernetes/manifests/ /tmp/

1.1.1 更新管理平面组件至1.21.5

  • 逐节点更新master节点的kube-apiserver
    修改如下参数
vi /apps/conf/kubernetes/manifests/kube-apiserver.yaml
# 更新apiserver的镜像
registry.paas/cmss/kube-apiserver:v1.21.5-eki.0

等待pod重启,查看pod状态

# 升级完成后查看apiserver的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep apiserver
# 升级完成后查看apiserver的镜像版本是否是v1.21.5-eki.0
kubectl edit pod kube-apiserver-kcpm1 -n kube-system
  • 逐节点更新master节点的kube-controller-manager
    修改如下参数
vi /apps/conf/kubernetes/manifests/kube-controller-manager.yaml
# 更新controller-manager的镜像
registry.paas/cmss/kube-controller-manager:v1.21.5-eki.0

等待pod重启,查看pod状态

# 升级完成后查看controller-manager的pod是否重新启动,状态是否正常,若是不正常且无法解决,需要回退,参考4.2.3
kubectl get pod -n kube-system |grep controller-manager
# 升级完成后查看controller-manager的镜像版本是否是v1.21.5-eki.0
kubectl edit pod kube-controller-manager-kcpm1 -n kube-system
  • 逐节点更新master节点的kube-scheduler
    修改如下参数
vi /apps/conf/kubernetes/manifests/kube-scheduler.yaml
# 更新kube-scheduler的镜像
registry.paas/cmss/kube-scheduler:v1.21.5-eki.0

等待pod重启,查看pod状态

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

1.1.2 升级kubectl到1.21.5

# 拷贝1.21.5版本的kubectl到/usr/bin/ 覆盖原来的
cp kubectl /usr/bin/
# 查看kubectl的客户端版本是否是v1.21.5
kubectl version

1.1.3 master节点回退

# 1. 依次将apiserver、kube-controller-manager和scheduler回退到1.20.12,将镜像的tag更改为1.20.12
# 2. apiserver、kube-controller-manager和scheduler回退到1.20.12
mv /tmp/manifests/* /apps/conf/kubernetes/manifests/

1.2 逐节点更新所有节点的kubelet到1.21.5

1.2.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/

1.2.2 kubelet

  • 重启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
  • 查看升级状态
# 查看kubelet状态
systemctl status kubelet
# 如果kubelet没有启动成功,则需修改kubelet的环境变量
vim /apps/conf/kubernetes/kubelet.env
# 删除RotateKubeletServerCertificate配置(如下整行删除)
--feature-gates=RotateKubeletServerCertificate=True,RotateKubeletClientCertificate=true
# 查看kubelet版本是否是1.21.5
kubelet --version
# 设置节点取消维护状态
kubectl uncordon <node name> 

1.2.3 回退

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

systemctl stop kubelet
cp /apps/conf/kubernetes/kubelet.env.bak /apps/conf/kubernetes/kubelet.env
cp /apps/bin/kubelet-1.20.12 /apps/bin/kubelet
cp /apps/bin/kubelet-1.20.12 /usr/bin/kubelet
systemctl daemon-reload && systemctl restart kubelet

1.3 addon更新到1.21.5

1.3.1 kube-proxy

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

1.3.2 查看升级状态

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

1.3.3 回退

若是组件状态有问题且无法解决,需要回退。
## kebe-proxy回退,替换镜像为registry.paas/cmss/kube-proxy:v1.20.12
/apps/bin/kubectl edit  ds kube-proxy -n kube-system

1.4 etcd更新

1.4.1 备份etcd数据

# 在master节点执行如下命令查找leader节点
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/apps/conf/kubernetes/ssl/etcd/ca.crt --cert=/apps/conf/kubernetes/ssl/etcd/peer.crt --key=/apps/conf/kubernetes/ssl/etcd/peer.key member list
# 要是上述命令不适用,采用以下命令查看leader节点
ETCDCTL_API=3 etcdctl -w table --endpoints=https://127.0.0.1:2379 --cacert=/apps/conf/kubernetes/ssl/etcd/ca.crt --cert=/apps/conf/kubernetes/ssl/etcd/peer.crt --key=/apps/conf/kubernetes/ssl/etcd/peer.key endpoint status
+------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|        ENDPOINT        |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| https://127.0.0.1:2379 | 9e5fcf8d71320eb3 |   3.4.3 |   13 MB |      true |      false |         7 |    6485967 |            6485967 |        |
+------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
 
# 在leader节点执行备份命令,得到备份文件snapshotdb
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/apps/conf/kubernetes/ssl/etcd/ca.crt --cert=/apps/conf/kubernetes/ssl/etcd/peer.crt --key=/apps/conf/kubernetes/ssl/etcd/peer.key snapshot save snapshotdb

1.4.2 更新etcd

## 以下操作需要在所有etcd节点执行,成功执行一个节点后再执行下一个节点。
# 备份etcd配置信息
cp -r /apps/conf/kubernetes/manifests/etcd.yaml /apps/conf/kubernetes/etcd.yaml.bak
# 修改etcd.yaml中的etcd镜像版本,替换etcd的镜像为registry.paas/cmss/etcd:3.4.13-0
vi /apps/conf/kubernetes/manifests/etcd.yaml
# 查看etcd的pod状态是否正常,查看镜像版本是否正确
kubectl get pod -n kube-system |grep etcd
# 升级完成后查看etcd的镜像版本是否是3.4.13-0
kubectl edit pod etcd-ekim1 -n kube-system

1.4.3 查看升级状态

# 所有节点操作完上述步骤后,在任意etcd节点查看etcd集群健康状态
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/apps/conf/kubernetes/ssl/etcd/ca.crt --cert=/apps/conf/kubernetes/ssl/etcd/peer.crt --key=/apps/conf/kubernetes/ssl/etcd/peer.key endpoint health --write-out=table
 
+-----------------------------+--------+-------------+-------+
|          ENDPOINT           | HEALTH |    TOOK     | ERROR |
+-----------------------------+--------+-------------+-------+
| https://10.142.113.171:2379 |   true |   17.0397ms |       |
| https://10.142.113.172:2379 |   true | 17.108517ms |       |
| https://10.142.113.173:2379 |   true | 17.532461ms |       |
+-----------------------------+--------+-------------+-------+
# 如上状态,没有error,视为正常

1.4.4 回退

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

# 替换etcd的镜像为registry.paas/cmss/etcd:v3.4.3-0
vi /apps/conf/kubernetes/manifests/etcd.yaml
# 等待etcd的pod重启

作者:姜博文

标签:kube,conf,kubernetes,apps,升级,kubelet,etcd,IPV6,k8s
From: https://www.cnblogs.com/DTCLOUD/p/17480800.html

相关文章

  • k8s pod dns 策略
    Pod的DNS策略DNS策略可以逐个Pod来设定。目前Kubernetes支持以下特定Pod的DNS策略。这些策略可以在Pod规约中的dnsPolicy字段设置:"Default":Pod从运行所在的节点继承名称解析配置。"ClusterFirst":与配置的集群域后缀不匹配的任何DNS查询(例如"www.kub......
  • k8s相关部署文件
    1.控制器1.生成后改改kubectlcreatedeploymentcoreqi-api--image=docker.io/fanqi/coreqi_api:latest--dry-run=client-oyaml>/home/coreqi_dm.yaml2.手撸apiVersion:apps/v1kind:Deploymentmetadata:creationTimestamp:nullgeneration:1labels:......
  • 当SRS遇到K8s:如何构建海量推流源站?
    Photoby OscarIvanEsquivelArteaga on Unsplash文/杨成立本章描述了基于K8s,如何构建OriginCluster支持超多推流场景。OriginCluster通过配置其他源站的信息,在本源站没有流时查询到流的位置,通过RTMP302定向到指定源站,具体原理可以参考#464。主要应用场景如下:源站灾备:即使......
  • 当SRS遇到K8s:如何实现高可用、回滚与灰度发布?
    Photoby LuisQuintero from Pexels文/杨成立服务的更新、回滚和灰度,是个简单的问题,如果加上一个条件"不中断服务的前提下",那么就是一个难题,如果再加上"大规模",那么就是K8S要解决的核心问题之一。坏消息是这个难搞的问题还真是流媒体服务的核心的、关键的、不可忽视的关键能......
  • 数字化转型下企业架构的智能化升级
    6月9日-11日,以“数字变革者”为主题的“2023未来CIO数字峰会”在浙江舟山成功举办。本次峰会由浙江省企业信息化促进会、安徽省首席信息官协会、山东CIO联盟、河南CIO联盟、江苏省企业信息化协会、广东省CIO联盟、福建信息主管(CIO)网、大连市CIO协会及崔牛会联......
  • 基于k8s构建持续集成
    一、实施准备登录OpenStack平台,使用提供的CentOS_7.5_x86_64_XD.qcow2镜像创建两台云主机,并使用提供的软件包部署好双节点Kubernetes集群。项目目标:jenkins的离线安装步骤、gitlab的使用和管理、CICD的配置步骤和方法。二、案例实施1、安装Jenkins环境#查看k8s集群状......
  • 2023年 1月 Tita 升级|绩效流程节点支持签名确认
    升级快速一览:点击免费领取绩效考核模版等资料·【考核模板】绩效流程节点支持签名确认;绩效流程节点支持签名确认使用场景:考核执行过程中,在指标确认、绩效面谈、绩效结果确认节点需要执行人的签名确认,并将签名进行留存当前仅支持在指标确认、绩效面谈、绩效结果确认节......
  • 版本升级| v1.0.11上线,你的需求被翻牌了吗?
    叮咚~综合我们接到的各种用户反馈,OpenSCA项目组在1.0.10的基础上迭代了1.0.11版本升级功能优化Java解析逻辑支持打印结果概览及常见报错信息到终端界面支持输出Cyclonedx及SWID标准格式SBOM清单进一步提升检测速度更新说明01Java解析逻辑优化进一步优化Java解析逻辑,将更多特殊情况......
  • RDIFramework.NET代码生成器全新V3.5版本发布-重大升级
    发布说明RDIFramework.NET代码生成器V3.5版本全新震撼推出,相比上次版本,本次发布新增与修改的内容如下:1、全新增加了WinForm界面代码的生成,可直接生成常用的主界面(集新增、修改、删除、查询、分页、打印等常用功能)、编辑界面。真正加大了开发效率,相比以前的版本界面部分只是针对Web......
  • 升级Ubuntu18.04上的gitlab 13.7.3
    1、查看gitlab版本,在首页后面添加/help就可以看到了也可以用命令查看cat/opt/gitlab/embedded/service/gitlab-rails/VERSION2、gitLab版本升级,需要按照官方的指示版本进行依次升级8.11.Z->8.12.0->8.17.7->9.5.10->10.8.7->11.11.8->12.0.12->12.1.17->12.10.1......