kubernetes使用kubeadm升级集群
升级前准本
官网: 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升级集群的更多相关文章
- Kubernetes 使用kubeadm创建集群
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 实践环境 CentOS-7-x86_64-DVD-1810 Docker 19.03.9 Kubernetes version: v1.20.5 ...
- Kubernetes实践技巧:集群升级k8s版本
更新证书 使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题,本文的演示集群版本为 v1.16.2 ...
- 使用Kubeadm搭建Kubernetes(1.12.2)集群
Kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,在2018年将进入GA状态,说明离生产环境中使用的距离越来 ...
- Kubernetes学习之路(八)之Kubeadm部署集群
一.环境说明 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet ...
- kubeadm安装集群系列-2.Master高可用
Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 apiVersion: kubead ...
- kubeadm安装集群系列(kubeadm 1.15.1)
kubeadm已经进入GA阶段,所以尝试使用kubeadm从零开始安装高可用的Kubernetes集群,并记录下过程和所有坑 本文基于kubeadm 1.15.1 目录 kubeadm安装集群系列-1 ...
- 使用国内的镜像源搭建 kubernetes(k8s)集群
1. 概述 老话说的好:努力学习,提高自己,让自己知道的比别人多,了解的别人多. 言归正传,之前我们聊了 Docker,随着业务的不断扩大,Docker 容器不断增多,物理机也不断增多,此时我们会发现 ...
- 利用ansible来做kubernetes 1.10.3集群高可用的一键部署
请读者务必保持环境一致 安装过程中需要下载所需系统包,请务必使所有节点连上互联网. 本次安装的集群节点信息 实验环境:VMware的虚拟机 IP地址 主机名 CPU 内存 192.168.77.133 ...
- ES跨版本升级?——难道升级集群发生shard allocation是因为要分配replica节点???
Full cluster restart upgrade Elasticsearch requires a full cluster restart when upgrading across maj ...
随机推荐
- AshMap如何让hash保持一致
学Java的都知道hashMap的底层是“链表散列”的数据结构也也可以说是hash表.在put的实话先根据key的hashcode重新计算hash值的,而我们又知道hash是一种算法.所以哈希码并不是 ...
- BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$ $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...
- 【HDOJ6578】Blank(DP)
题意:一个长为n的序列,每个位置上的值是0,1,2,3中的一个,有m个限制条件,限制位置[l[i],r[i]]中不同的数值有x[i]个,问方案数MOD 998244353 n<=100,m< ...
- loadrunner(预测系统行为和性能的负载测试工具)
LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.企业使用LoadRu ...
- Rainbow的信号 CH3801
题目链接 题意:求n个整数任意取一个区间,一起进行xor,and,或or的操作,求xor的期望值,and的期望值,or的期望值. 思路:区间取的左端点为l,右端点为r,当r==l时,选的概率为1/n/ ...
- Mutable and Immutable Variables in Python
本文解决python中比较令人困惑的一个小问题:传递到函数中的参数若在函数中进行了重新赋值,对于函数外的原变量有何影响.看一个小栗子: def fun(a): a=2 return a=1 fun(a ...
- jsbridge 原理
https://juejin.im/post/5abca877f265da238155b6bc
- ontouchstart ondragstart="return false" oncopy="return false;" oncut="return false onselectstart="return false" onpaste="return false"
ontouchstart: 开始触屏事件. ondragstart="return false" 禁止拖拽 oncopy="return false" 禁止 ...
- 怒转一波,此人整理的Flink特别好
Apache Flink:特性.概念.组件栈.架构及原理分析 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtim ...
- go 发送http请求
普通的get请求 package main import ( "io/ioutil" "fmt" "net/http" ) func mai ...