升级前准本 

官网: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/
查看可升级的组件

[root@hadoop01 yum.repos.d]# kubeadm upgrade plan
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[preflight] Running pre-flight checks.
[upgrade] Making sure the cluster is healthy:
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.16.0
[upgrade/versions] kubeadm version: v1.16.2
External components that should be upgraded manually before you upgrade the control plane with 'kubeadm upgrade apply':
COMPONENT CURRENT AVAILABLE
Etcd 3.3. 3.3.- Upgrade to the latest version in the v1. series: COMPONENT CURRENT AVAILABLE
API Server v1.16.0 v1.16.2
Controller Manager v1.16.0 v1.16.2
Scheduler v1.16.0 v1.16.2
Kube Proxy v1.16.0 v1.16.2
CoreDNS 1.6. 1.6. You can now apply the upgrade by executing the following command: kubeadm upgrade apply v1.16.2 _____________________________________________________________________

上面提示升级之前先升级外部组件etcd,如果kubelet,kubectl,kubeadm版本低则也需要升级
先导出配置文件

[root@hadoop03 ~]# kubectl -n kube-system get cm kubeadm-config -oyaml >  kubeadm-config.yaml

查看版本kubeadm/kubelet/kubectl

[root@cx-- ~]# kubeadm version
kubeadm version: &version.Info{Major:"", Minor:"", GitVersion:"v1.16.0", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"archive", BuildDate:"2019-11-25T09:06:09Z", GoVersion:"go1.12.7", Compiler:"gc", Platform:"linux/amd64"}
[root@hadoop03 ~]# kubectl version
Server Version: version.Info{Major:"", Minor:"", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
[root@hadoop03 ~]# kubelet --version
Kubernetes v1.16.0

1 升级ectd组件

  单独升级

2 升级kubeadm/kubelet/kubectl

  2.1) 使用yum列出可用版本
  一般情况下yum list只会列出最新版本

[root@cx-- ~]# yum list kubectl --showduplicates | sort -r | grep "1.16"
kubectl.x86_64 1.16.- @kubernetes
kubectl.x86_64 1.16.- kubernetes
kubectl.x86_64 1.16.- kubernetes
kubectl.x86_64 1.16.- kubernetes
kubectl.x86_64 1.16.- kubernetes
[root@cx-- ~]# yum list kubeadm --showduplicates | sort -r | grep "1.16"
kubeadm.x86_64 1.16.- @kubernetes
kubeadm.x86_64 1.16.- kubernetes
kubeadm.x86_64 1.16.- kubernetes
kubeadm.x86_64 1.16.- kubernetes
kubeadm.x86_64 1.16.- kubernetes
[root@cx-- ~]# yum list kubelet --showduplicates | sort -r | grep "1.16"
kubelet.x86_64 1.16.- kubernetes
kubelet.x86_64 1.16.- @kubernetes
kubelet.x86_64 1.16.- kubernetes
kubelet.x86_64 1.16.- kubernetes
kubelet.x86_64 1.16.- kubernetes

  2.1) 安装

[root@hadoop01 yum.repos.d]# yum -y install kubeadm.x86_64-1.16.-
[root@hadoop01 yum.repos.d]# yum -y install kubelet.x86_64-1.16.-
[root@hadoop01 yum.repos.d]# yum -y install kubectl.x86_64-1.16.-

3 升级集群

  3.1) 下载升级所需镜像
  在执行kubeadm upgrade apply v1.16.2之前我们先要把需要的镜像版本下载好,以便执行命令就不用长久的等待
  这里我们根据kubectl -n kube-system get cm kubeadm-config -oyaml >  kubeadm-config.yaml 集群配置文件把kubernetesVersion改为要升级的版本号

[root@hadoop01 ~]# kubeadm config images list --config kubeadm-config.yaml
registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.2
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.2
registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.2
registry.aliyuncs.com/google_containers/kube-proxy:v1.16.2
registry.aliyuncs.com/google_containers/pause:3.1
registry.aliyuncs.com/google_containers/coredns:1.6.
[root@hadoop01 ~]# kubeadm config images pull --config kubeadm-config.yaml
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.2
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.2
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.2
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-proxy:v1.16.2
[config/images] Pulled registry.aliyuncs.com/google_containers/pause:3.1
[config/images] Pulled registry.aliyuncs.com/google_containers/coredns:1.6.

  3.2 升级开始

[root@hadoop01 yum.repos.d]# kubeadm upgrade apply --certificate-renewal=false --config=kubeadm-config.yaml

//或
//[root@hadoop01 yum.repos.d]# kubeadm upgrade apply  --certificate-renewal=false v1.16.2

  注意: 如果我们的证书有效期是10年或者100年,就不必更新证书了,不然就设 --certificate-renewal=true,更多详细参数请查看官网

kubernetes使用kubeadm升级集群的更多相关文章

  1. Kubernetes 使用kubeadm创建集群

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 实践环境 CentOS-7-x86_64-DVD-1810 Docker 19.03.9 Kubernetes version: v1.20.5 ...

  2. Kubernetes实践技巧:集群升级k8s版本

    更新证书 使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题,本文的演示集群版本为 v1.16.2 ...

  3. 使用Kubeadm搭建Kubernetes(1.12.2)集群

    Kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,在2018年将进入GA状态,说明离生产环境中使用的距离越来 ...

  4. Kubernetes学习之路(八)之Kubeadm部署集群

    一.环境说明 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet ...

  5. kubeadm安装集群系列-2.Master高可用

    Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 apiVersion: kubead ...

  6. kubeadm安装集群系列(kubeadm 1.15.1)

    kubeadm已经进入GA阶段,所以尝试使用kubeadm从零开始安装高可用的Kubernetes集群,并记录下过程和所有坑 本文基于kubeadm 1.15.1 目录 kubeadm安装集群系列-1 ...

  7. 使用国内的镜像源搭建 kubernetes(k8s)集群

    1. 概述 老话说的好:努力学习,提高自己,让自己知道的比别人多,了解的别人多. 言归正传,之前我们聊了 Docker,随着业务的不断扩大,Docker 容器不断增多,物理机也不断增多,此时我们会发现 ...

  8. 利用ansible来做kubernetes 1.10.3集群高可用的一键部署

    请读者务必保持环境一致 安装过程中需要下载所需系统包,请务必使所有节点连上互联网. 本次安装的集群节点信息 实验环境:VMware的虚拟机 IP地址 主机名 CPU 内存 192.168.77.133 ...

  9. ES跨版本升级?——难道升级集群发生shard allocation是因为要分配replica节点???

    Full cluster restart upgrade Elasticsearch requires a full cluster restart when upgrading across maj ...

随机推荐

  1. JS中算法之排序算法

    1.基本排序算法 1.1.冒泡排序 它是最慢的排序算法之一. 1.不断比较相邻的两个元素,如果前一个比后一个大,则交换位置. 2.当比较完第一轮的时候最后一个元素应该是最大的一个. 3.按照步骤一的方 ...

  2. 集训队8月3日(A*+IDA*)

    刷题数:4 今天看书看了A*与IDA*,算法竞赛入门经典124~133页. 先说一下看书后对知识点的认识,A*算法就是设计一个估价函数,附加到其优先队列的权值比较中,然后还是得到目标状态的解.值得一提 ...

  3. 简记 jQuery 插件模板

    /** * @lisence jquery plugin demo v1.0.0 * * author: Jeremy Yu * * description: * this is a jquery p ...

  4. 分布式架构下的会话追踪实践【基于Cookie和Redis实现】

    分布式架构下的会话追踪实践[基于Cookie和Redis实现] 博客分类: NoSQL/Redis/MongoDB session共享rediscookie分布式架构session 在单台Tomcat ...

  5. 基础复习之HTML (doctype、标签语义化)

    这段时间找实习看的眼花缭乱的,然后也被拒得落花流水,啊哈哈-还是写博客好玩儿-嘿嘿,下面正题 一.doctype 标准模式 (Full Standards Mode) 接近标准模式 (Almost S ...

  6. HBase最佳实践-读性能优化策略

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...

  7. 如何让Jmeter压力测试减少压力机的资源消耗

    如下是官方的一些建议: 1. 使用非gui模式,例如 jmeter -n -t test.jmx -l test.jtl 2. 尽量用较少的监听器(listeners):如果使用了-l 标致像上面一样 ...

  8. 工控PLC中,关于定时器TON,TOF,的一点新认知,或者说醒悟吧!

    PLC  中的定时器,都是放在一个具体PRG任务单元中的,而PRG单元需要放在具体固定的周期循环任务中才能被执行,而这个周期循环任务的循环周期 T: 与定时器的定时时间T0:    T与T0 的数量级 ...

  9. 插件化框架解读之Android 资源加载机制详解(二)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680Android提供了一种非常灵活的资源系统,可以根据不同的条件提供 ...

  10. JS高级程序随笔二

    var person1={ toLoginString:function(){ return "lili"; }, toString2:function(){ return &qu ...