升级前准本 

官网: 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. spring-cloud:利用eureka实现服务提供与调用示例

    1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springCl ...

  2. 4412 RS485

    一.485硬件原理 差分对传输数据的原理 IO数据的传输→差分对 rs232传输的距离在15米以下,RS485传输距离是几十米到1000米以上 为什么485可以传输这么远 差分对的机制可以降低电磁场的 ...

  3. SPOJ 7258 (后缀自动机)

    转载:http://hzwer.com/4492.html 给一个长度不超过90000的串S,每次询问它的所有不同子串中,字典序第K小的,询问不超过500个. 搞出后缀自动机 dp处理出每个点往下走能 ...

  4. 【BZOJ1801】【DTOJ2004】 [Ahoi2009]chess 中国象棋 【DP】

    题解: 首先知道一个性质,每一行每一列都最多有两个炮 那么很显然是DP 设F[i][j][k]表示前i行,有j列有一个炮,有k列有两个炮,那么转移式子为 这一行什么都不做:f[i][j][k]=f[i ...

  5. SQLmap注入

    一.安装 先安装Python2.7 下载SQLmap:http://sqlmap.org/ 下载文件解压到Python文件目录下 然后设置环境变量:D:\Python27\sqlmap 在cmd查看是 ...

  6. docker-swarm笔记

    1.部署环境: centos7 创建三节点的 swarm 集群 swarm-manager 是 manager node : 192.168.1.150 swarm-worker1 和 swarm-w ...

  7. [CSP-S模拟测试]:Tourist Attractions(简单图论+bitset)

    题目描述 在美丽的比特镇一共有$n$个景区,编号依次为$1$到$n$,它们之间通过若干条双向道路连接.$Byteasar$慕名来到了比特镇旅游,不过由于昂贵的门票费,他只能负担起$4$个景区的门票费. ...

  8. ElasticSearch 简介概念及核心

    1.ES是什么 ES是面向文档的Nosql,这意味着它可以存储整个对象或文档.然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索.在es中,你可以对文档(而非成行成列的数据)进行索 ...

  9. No orientation specified, and the default is horizontal.异常处理(转)

    参考:http://blog.csdn.net/sky_monkey/article/details/21466975 整的错误提示信息为: No orientation specified, and ...

  10. LintCode之删除排序链表中的重复元素

    题目描述: 我的代码: /** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * Li ...