前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubeadm多master集群升级k8s版本

kubeadm多master集群升级k8s版本

作者头像
SY小站
发布2020-06-15 12:33:04
7640
发布2020-06-15 12:33:04
举报
文章被收录于专栏:SY小站的专栏SY小站的专栏

01 版本说明

本次升级版本为从1.15.3升级至1.16.3。另外更高的k8s版本,要注意内核要为4.4以上,尤其是1.18版本。

02 升级

01 master节点升级

查看当前集群组件列表

代码语言:javascript
复制
[root@master01 ~]# kubectl get nodes
NAME              STATUS   ROLES    AGE    VERSION
master01.sy.com   Ready    master   3d9h   v1.15.3
master02.sy.com   Ready    master   3d9h   v1.15.3
master03.sy.com   Ready    master   3d9h   v1.15.3
代码语言:javascript
复制
[root@master01 ~]# kubeadm config images list
I0521 20:18:24.336912   23537 version.go:248] remote version is much newer: v1.18.3; falling back to: stable-1.15
W0521 20:18:34.337440   23537 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.15.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.15.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
W0521 20:18:34.337495   23537 version.go:99] falling back to the local client version: v1.15.3
k8s.gcr.io/kube-apiserver:v1.15.3
k8s.gcr.io/kube-controller-manager:v1.15.3
k8s.gcr.io/kube-scheduler:v1.15.3
k8s.gcr.io/kube-proxy:v1.15.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
[root@master01 ~]#

升级 Kubeadm 工具版本

代码语言:javascript
复制
[root@master01 ~]# yum update -y kubeadm-1.16.3-0

查看待升级的 kubernetes 组件镜像列表

代码语言:javascript
复制
[root@master01 ~]# kubeadm config images list
W0521 20:33:34.091388   32299 version.go:101] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
W0521 20:33:34.091559   32299 version.go:102] falling back to the local client version: v1.16.3
k8s.gcr.io/kube-apiserver:v1.16.3
k8s.gcr.io/kube-controller-manager:v1.16.3
k8s.gcr.io/kube-scheduler:v1.16.3
k8s.gcr.io/kube-proxy:v1.16.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.15-0
k8s.gcr.io/coredns:1.6.2

创建镜像脚本,并打tag

代码语言:javascript
复制
[root@master01 ~]# cat pull-image.sh 
## 设置镜像仓库地址
MY_REGISTRY=registry.aliyuncs.com/google_containers

## 拉取镜像
docker pull ${MY_REGISTRY}/kube-apiserver:v1.16.3
docker pull ${MY_REGISTRY}/kube-controller-manager:v1.16.3
docker pull ${MY_REGISTRY}/kube-scheduler:v1.16.3
docker pull ${MY_REGISTRY}/kube-proxy:v1.16.3
docker pull ${MY_REGISTRY}/etcd:3.3.15-0
docker pull ${MY_REGISTRY}/pause:3.1
docker pull ${MY_REGISTRY}/coredns:1.6.2
## 设置标签
docker tag ${MY_REGISTRY}/kube-apiserver:v1.16.3          k8s.gcr.io/kube-apiserver:v1.16.3
docker tag ${MY_REGISTRY}/kube-scheduler:v1.16.3          k8s.gcr.io/kube-scheduler:v1.16.3
docker tag ${MY_REGISTRY}/kube-controller-manager:v1.16.3 k8s.gcr.io/kube-controller-manager:v1.16.3
docker tag ${MY_REGISTRY}/kube-proxy:v1.16.3              k8s.gcr.io/kube-proxy:v1.16.3
docker tag ${MY_REGISTRY}/etcd:3.3.15-0                    k8s.gcr.io/etcd:3.3.15-0
docker tag ${MY_REGISTRY}/pause:3.1                       k8s.gcr.io/pause:3.1
docker tag ${MY_REGISTRY}/coredns:1.6.2                   k8s.gcr.io/coredns:1.6.2

升级kubeadm

代码语言:javascript
复制
[root@master01 ~]# kubectl drain master01.sy.com --ignore-daemonsets
[root@master01 ~]# kubeadm upgrade apply v1.16.3
[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/version] You have chosen to change the cluster version to "v1.16.3"
[upgrade/versions] Cluster version: v1.15.3
[upgrade/versions] kubeadm version: v1.16.3
[upgrade/confirm] Are you sure you want to proceed with the upgrade? [y/N]: y
.........
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.16.3". Enjoy!
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.

升级 Kubelet

代码语言:javascript
复制
[root@master01 ~]# yum update -y kubelet-1.16.3-0
[root@master01 ~]# systemctl daemon-reload && systemctl restart kubelet

看日志发现kubelet有报错

代码语言:javascript
复制
cni.go:237] Unable to update cni config: no valid networks found in /etc/cni/net.d

解决

代码语言:javascript
复制
在v1.16中,kubelet将验证cni配置文件
在cbr0 这一行上面新增一行:
cni-conf.json: |
    {
      "cniVersion":"0.2.0",
      "name": "cbr0",
      
      
      
flannal镜像改成quay.io/coreos/flannel:v0.11.0-amd64

在看node状态
[root@master01 ~]# kubectl uncordon master01.sy.com
node/master01.sy.com uncordoned
[root@master01 ~]# kubectl get nodes
NAME              STATUS   ROLES    AGE    VERSION
master01.sy.com   Ready    master   4d3h   v1.16.3
master02.sy.com   Ready    master   4d3h   v1.15.3
master03.sy.com   Ready    master   4d2h   v1.15.3

其他master节点升级也一样操作,不过命令替换一下

代码语言:javascript
复制
[root@master02 ~]# kubeadm upgrade node experimental-control-plane

[root@master01 ~]# kubectl get nodes
NAME              STATUS   ROLES    AGE    VERSION
master01.sy.com   Ready    master   4d3h   v1.16.3
master02.sy.com   Ready    master   4d3h   v1.16.3
master03.sy.com   Ready    master   4d3h   v1.16.3

02 node节点升级

代码语言:javascript
复制
kubectl drain [节点名称] --ignore-daemonsets
yum update -y kubeadm-1.16.3-0
yum update -y kubelet-1.16.3-0
systemctl daemon-reload && systemctl restart kubelet
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SY技术小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 版本说明
  • 02 升级
    • 01 master节点升级
    • 02 node节点升级
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档