1、升级前的版本确认(相同的大版本号下的小版本升级还是跨版本升级)

  例如:从1.12.0升级到1.12.7 或者 从1.12.7升级到1.13.0

2、配置kubernetes安装源(已配置kubernetes源,此处跳过)

  Debian/Ubuntu添加源方式:

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl

  CentOS/RHEL/Fedora添加源方式:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

  注意:如果需要安装特定版本,请参照如下方式

查看版本:
yum --enablerepo=kubernetes list kubelet kubeadm kubectl --showduplicates | sort -r 安装特定版本
yum --enablerepo=kubernetes install kubelet-1.13.0-0 kubeadm-1.13.0-0 kubectl-1.13.0-0

3、验证安装的版本

kubeadm version

4、查看升级后的所需镜像

kubeadm config images list

这里可以提前下载好镜像
kubeadm config images list > images.txt
for i in `cat images.txt`; do docker pull $i; done

5、在主节点上运行如下命令(此命令检查您的群集是否可以升级,并获取可以升级到的版本)

kubeadm upgrade plan

6、选择要升级到的版本,然后运行相应的命令(此处从1.12.7版本升级到1.13.0)

kubeadm upgrade apply v1.13.0

7、将控制节点设置为不可调度

kubectl drain $NODE --ignore-daemonsets

8、重启控制节点的kubelet服务

systemctl daemon-reload
systemctl restart kubelet

9、逐一将除控制节点以外的其他需要升级的节点设置为不可调度

kubectl cordon $NODENAME
kubectl drain $NODENAME

9、在除控制节点的所有节点上逐一执行如下命令升级(注意执行如下命令前,需要先按照步骤2的方法升级程序包)

kubeadm upgrade node config --kubelet-version v1.13.0

10、重新启动升级后节点的kubelet服务

systemctl daemon-reload
systemctl restart kubelet

11、恢复节点为可调度(在控制节点上操作)

kubectl uncordon $NODE

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

Kubernetes集群升级(kubeadm升级方式)的更多相关文章

  1. 【二】Kubernetes 集群部署-kubeadm方式(亲测)

    一.概述 本次部署 Kubernetes 集群是通过 kubeadm 工具来进行部署, kubeadm 是 Kubernetes 官⽅提供的⽤于快速部署 Kubernetes 集群的⼯具,利⽤其来部署 ...

  2. 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  3. 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)

    在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...

  4. K8s 二、(1、kubeadm部署Kubernetes集群)

    准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前 ...

  5. Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从

    1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...

  6. 解决kubeadm部署kubernetes集群镜像问题

    kubeadm 是kubernetes 的集群安装工具,能够快速安装kubernetes 集群.kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,需 ...

  7. 高可用Kubernetes集群-16. ansible快速部署

    说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...

  8. Kubernetes — 从0到1:搭建一个完整的Kubernetes集群

    准备工作 首先,准备机器.最直接的办法,自然是到公有云上申请几个虚拟机.当然,如果条件允许的话,拿几台本地的物理服务器来组集群是最好不过了.这些机器只要满足如下几个条件即可: 满足安装 Docker ...

  9. Docker学习-Kubernetes - 集群部署

    Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...

  10. 手把手从0到1:搭建Kubernetes集群

    搭建 k8s 集群网上很多教程,如果是手工部署或者实验环境可以直接使用 MiniKube 或者 Kind,来在本地启动简单的 Kubernetes 集群进行后面的学习即可.如果是使用 MiniKube ...

随机推荐

  1. Android CheckBox修改大小、边框颜色,以及自定义CheckBox;

    CheckBox修改大小: android:scaleX="0.8" android:scaleY="0.8" CheckBox修改边框颜色,注意不是背景色: ...

  2. Problem A: Apple(高斯消元)

    可以发现具有非常多的方程, 然后高斯消元就能85分 然而我们发现这些方程组成了一些环, 我们仅仅设出一部分变量即可获得N个方程, 就可以A了 trick 合并方程 #include <cstdi ...

  3. 分布式系统session同步解决方案

    来源:架构师之路 session的概念 什么是session? 当浏览器端第一次访问web server时,server端会调用getSession()方法创建session对象,经过特殊算法计算出s ...

  4. 2018-2019-2 20165205《网络对抗技术》Exp4 恶意代码分析

    2018-2019-2 20165205<网络对抗技术>Exp4 恶意代码分析 实验要求 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中 ...

  5. Convert Adjacency matrix into edgelist

    Convert Adjacency matrix into edgelist import numpy as np #read matrix without head. a = np.loadtxt( ...

  6. uva-757-贪心

    题意:有个人要去湖里钓鱼,总共有N个湖,排成一个序列,用字母P表示湖,从湖pi 到 pi+1(下一个湖)需要ti个五分钟. 并且,每个湖里可钓出来的鱼每过五分钟就减少di.如果产出的鱼小于等于di.那 ...

  7. 编程实现将一个N进制数转换成M进制数

    问题:编程实现将一个N进制数转换成M进制数.(c/c++.Java.Javascript.C#.Python) 1.Python 手写算法版 def conversion_num(num, src, ...

  8. Swift处理异常

    import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...

  9. win10 .net3.5的问题及解决方案

    近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...

  10. 数据库sql使用小结

    1.更新数据库中表的字段的时候,如果更新的表本身含有最细粒度的字段,那么可以以最细粒度作为判断条件,一次性更新多个字段: 2.如果更新的表中本身不含有最细粒度字段,那么要更新多个字段时有两种思路: a ...