k8s升级,此次升级是1.12.0–>1.13.0

准备

1、首先升级master节点的基础组件kubeadm、kubelet、kubectl
apt-get update && apt-get upgrade  kubeadm 

更新到1.13.0后,在master执行,执行一次

kubeadm upgrade plan

[upgrade/versions] Latest version in the v1.12 series: v1.13.0

External components that should be upgraded manually before you upgrade the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT   AVAILABLE
Etcd        3.2.22    3.2.24

Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       AVAILABLE
Kubelet     1 x v1.12.0   v1.13.0
            2 x v1.13.0   v1.13.0

Upgrade to the latest version in the v1.12 series:

COMPONENT            CURRENT   AVAILABLE
API Server           v1.12.0   v1.13.0
Controller Manager   v1.12.0   v1.13.0
Scheduler            v1.12.0   v1.13.0
Kube Proxy           v1.12.0   v1.13.0
CoreDNS              1.2.2     1.2.6

You can now apply the upgrade by executing the following command:

  kubeadm upgrade apply v1.13.0
需要先升级etcd服务,我们的版本是3.2.22,需要升级到3.2.24

2、备份etcd数据(以防万一)
 etcdctl snapshot save backup.db

 查看备份的状态
 etcdctl --write-out=table snapshot status backup.db

3、下载新的etcd,这里我们部署1.13.0的kubernetes需要的是3.2.24
[](https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz)

  wget https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz

由于之前部署的是三节点的etcd集群,所以可以做到无缝升级,一个节点一个节点进行升级,每个节点恢复正常后在升级下一个节点;
1)停掉当前节点
 systemctl stop etcd

2)将下载好的文件解压,然后替换之前的etcd和etcdctl,替换完成后启动etcd

 systemctl start etcd

3)每个节点替换完成后检查服务状态

 etcdctl endpoint health

Upgrade master and node packages

kubectl drain node_name --ignore-daemonsets

master节点需要加上--ignore-daemonsets,node节点不用

更新
apt-get update
apt-get upgrade -y  kubeadm

更新过程中要保证服务不中断,轮询替换更新

Upgrade kubelet on each node

1)On each node except the master node, upgrade the kubelet config:

kubeadm upgrade node config --kubelet-version \$(kubelet --version | cut -d ' ' -f 2)

2)Restart the kubelet process:

systemctl restart kubelet

3)Verify that the new version of the kubelet is running on the node:

systemctl status kubelet

4)Bring the node back online by marking it schedulable:

kubectl uncordon \$NODE

5)verify that all nodes are available again by running the following command from anywhere kubectl can access the cluster:

kubectl get nodes

The STATUS column should show Ready for all your nodes, and the version number should be updated.

Rolling update

如果升级失败了,一般会自动回滚到之前的版本,如果出现异常没有回退到之前的版本,可以再次执行kubeadm upgrade
kubeadm upgrade apply v1.12.0 --force

参考:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-13/

原文地址:https://www.cnblogs.com/cuishuai/p/10078300.html

时间: 2025-01-14 15:51:25

k8s升级,此次升级是1.12.0–>1.13.0的相关文章

[世预赛] 中国vs关岛,关岛实力有限 国足或许可以赢其10个球,比分预测 10:0,8:0,13:0

[世预赛] 中国vs关岛 开赛时间:2019-10-10 20:00 继5比0大胜马尔代夫之后,国足迎来世预赛40强赛的第二场比赛,再次向世界杯发起冲击.10月10日,国足在广州迎战神秘之旅关岛. 19年前的亚预赛上,中国男足曾以一场19比0的狂胜,创造了队史国际A级比赛的最大比分纪录,这场比赛的另一个主角正是关岛男足.经历19年发展的关岛实力有所提升,国足再想打出两位数比分有一定难度. 大战当前,诸多悬念亟待揭晓.千里奔袭回归的武磊能否首发?埃克森.李可跟队友的磨合怎么样?本次集训调入的江苏苏

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

Pig升级0.13.0踩过的一个坑

背景:之前的pig版本是0.12,看到社区的0.13.0已经发布好久了,有很多新的patch和feature.其中有一个feature是 设置jar包缓存的参数,pig.user.cache.enabled .这个参数可以提高pig的执行速度.具体看下: https://issues.apache.org/jira/browse/PIG-3954     User Jar Cache     Jars required for user defined functions (UDFs) are

oracle-基于oracle dataguard滚动升级(oracle10.2.0.1--10.2.0.4--11.2.0.4)

oracle-基于oracle dataguard滚动升级(oracle10g升级到oracle11g)thinking:(主要技术涉及到:1.物理备库转成逻辑备库.2.数据库软件升级从oracle10.2.0.1升级到oracle10.2.0.4升级到oracle11.2.0.4.)     1.首先从搭建物理DG开始,搭建A主机数据库的物理DG B(数据库软件从oracle 10.2.0.1升级到10.2.0.4). 2.切换物理DG, 把B主机上的数据库切换为逻辑备库.(物理备库要求主备库

iOS10.0 & Swift 3.0 对于升级项目的建议

iOS & Swift新旧版本更替, 在Apple WWDC大会开始之际, 也迎来了iOS 10.0, Swift 3.0 测试版, 到目前为止, 已经是测试版2.0, 每次更新都带来了新的语法变化, Swift更加简洁, 但是Xcode 越发不给力, 输出变本加厉, NSLog 一如既往的不好使, 但是,好消息是, 无论语法怎么改变, 在已有项目的基础上, Xcode更新到8.0 测试版 2.0, 您只需按照系统提示的红空心原点提示, 一个一个的替换, 就可以完美的过度到iOS 10.0,  

linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )

花了一天的时间,终于把ubuntu12.04 的linux内核版本从3.13.0升级到3.4.0 升级后,系统更加稳定. 具体步骤:# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.gz# tar zxvf linux-3.4.tar.gz -C /usr/src# cd /usr/src/linux-3.4# make menuconfig# make# make modules_install# cp arch/

【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update....   yum install 或者 添加yum 的 repo 文件 也不行, 只能更新到 4.4.7! then,  只能手动编译安装了,那么开始第一步下载源代码吧,

ASP.Net MVC3安全升级导致程序集从3.0.0.0变为3.0.0.1

开发环境一般引用的是本机 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies下的System.Web.Mvc.dll,当系统更新时,此文件会更新为高级版本,从而和已经部署到服务器上的System.Web.Mvc.dll版本不一致.从能在线上运行时报下面的错误: Assembly 'TestUnsafe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' us

Apache 2.4.12 64位+Tomcat-8.0.32-windows-x64负载集群方案

上次搞了Apache 2.2的集群方案,但是现在自己的机器和客户的服务器一般都是64位的,而且tomcat已经到8了.重新做Apache 2.4.12 64位+Tomcat-8.0.32-windows-x64负载集群方案. 知其然知其所以然,先看下一些关键术语: 1.负载均衡(load balance)在互联网高速发展的时代,大数据量.高并发等是互联网网站提及最多的.如何处理高并发带来的系统性能问题,最终大家都会使用负载均衡机制.它是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服