千家信息网

Kubernetes 1.20.2高可用集群如何快速升级及扩容

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Kubernetes 1.20.2高可用集群如何快速升级及扩容",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Kubernetes 1.2
千家信息网最后更新 2026年11月02日Kubernetes 1.20.2高可用集群如何快速升级及扩容

本篇内容主要讲解"Kubernetes 1.20.2高可用集群如何快速升级及扩容",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Kubernetes 1.20.2高可用集群如何快速升级及扩容"吧!

提前将镜像传送到相应节点上,然后在任何一个master节点运行下面的命令即可完成升级。

kubeadm upgrade apply v1.20.2

在当前的集群中新增节点:

  • 第一步,重新创建certificate key和token:

sudo kubeadm init phase upload-certs --upload-certs### Got:# [upload-certs] Using certificate key:# 2ffe5bbf7d2e670d5bcfb03dac194e2f21eb9715f2099c5f8574e4ba7679ff78# Add certificate-key for Multi Master Node.kubeadm token create --print-join-command --certificate-key 2ffe5bbf7d2e670d5bcfb03dac194e2f21eb9715f2099c5f8574e4ba7679ff78
  • 第二步,增加Worker节点:

kubeadm join 192.168.199.173:6443 --token rlxvkn.2ine1loolri50tzt --discovery-token-ca-cert-hash sha256:86e68de8febb844ab8f015f6af4526d78a980d9cdcf7863eebb05b17c24b9383
  • 第三步,增加master节点:

kubeadm join 192.168.199.173:6443 --token rlxvkn.2ine1loolri50tzt --discovery-token-ca-cert-hash sha256:86e68de8febb844ab8f015f6af4526d78a980d9cdcf7863eebb05b17c24b9383 --control-plane --certificate-key 440a880086e7e9cbbcebbd7924e6a9562d77ee8de7e0ec63511436f2467f7dde

在arm上部署kubernetes参考:

  • Kubernetes for arm 1.18.0快速安装

  • kubernetes on arm发展现状

升级时出现一些小错误,后来解决了:

  • kubernetes高可用集群升级的etcd错误

  • Ubuntu跨版本升级出错问题解决

  • Ubuntu apt upgrade出现error "NO_PUBKEY"的解决

1、升级kubeadm/kubectl/kubelet版本

sudo apt install kubeadm=1.20.2-00 kubectl=1.20.2-00 kubelet=1.20.2-00
  • 设置中国区的软件源,参考: kubernetes for china

查看该版本的容器镜像版本:

kubeadm config images list

输出如下:

~# kubeadm config images listk8s.gcr.io/kube-apiserver:v1.20.2k8s.gcr.io/kube-controller-manager:v1.20.2k8s.gcr.io/kube-scheduler:v1.20.2k8s.gcr.io/kube-proxy:v1.20.2k8s.gcr.io/pause:3.2k8s.gcr.io/etcd:3.4.13-0k8s.gcr.io/coredns:1.7.0

2、拉取容器镜像

原始的kubernetes镜像文件在gcr上,不能直接下载。我原来是把镜像到了阿里云的杭州机房的容器仓库里,拉取还是比较快的。现在hub.docker.com的访问没有问题了,有同学把镜像放到料里面,而且更新还挺及时,可以直接用。

#mirrorgcrio已经没有更新了...#MY_REGISTRY=mirrorgcrioMY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/google_containersK8S_VERSION="1.20.2"echo ""echo "=========================================================="echo "Pull Kubernetes for x64 v$K8S_VERSION Images from docker.io ......"echo "=========================================================="echo ""## 拉取镜像docker pull ${MY_REGISTRY}/kube-apiserver:v$K8S_VERSIONdocker pull ${MY_REGISTRY}/kube-controller-manager:v$K8S_VERSIONdocker pull ${MY_REGISTRY}/kube-scheduler:v$K8S_VERSIONdocker pull ${MY_REGISTRY}/kube-proxy:v$K8S_VERSIONdocker pull ${MY_REGISTRY}/etcd:3.4.13-0docker pull ${MY_REGISTRY}/pause:3.2#docker pull ${MY_REGISTRY}/coredns-arm64:1.7.0docker pull coredns/coredns:1.7.0## 添加Tagdocker tag ${MY_REGISTRY}/kube-apiserver:v$K8S_VERSION k8s.gcr.io/kube-apiserver:v$K8S_VERSIONdocker tag ${MY_REGISTRY}/kube-scheduler:v$K8S_VERSION k8s.gcr.io/kube-scheduler:v$K8S_VERSIONdocker tag ${MY_REGISTRY}/kube-controller-manager:v$K8S_VERSION k8s.gcr.io/kube-controller-manager:v$K8S_VERSIONdocker tag ${MY_REGISTRY}/kube-proxy:v$K8S_VERSION k8s.gcr.io/kube-proxy:v$K8S_VERSIONdocker tag ${MY_REGISTRY}/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0docker tag ${MY_REGISTRY}/pause:3.2 k8s.gcr.io/pause:3.2#docker tag ${MY_REGISTRY}/coredns-arm64:1.7.0 k8s.gcr.io/coredns:1.7.0docker tag coredns/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0echo ""echo "=========================================================="echo "Pull Kubernetes for x64 v$K8S_VERSION Images FINISHED."echo "into docker.io/mirrorgcrio, "echo " by openthings@https://my.oschina.net/u/2306127."echo "=========================================================="echo ""

保存为shell脚本,然后执行。

3、升级Kubernetes集群

全新安装:

#指定IP地址,1.20.2版本:sudo kubeadm init --kubernetes-version=v1.20.2 --apiserver-advertise-address=10.1.1.199 --pod-network-cidr=10.244.0.0/16

高可用安装(多master节点):

sudo kubeadm init --kubernetes-version=v1.20.2 --apiserver-advertise-address=192.168.199.173 --control-plane-endpoint=192.168.199.173:6443 --pod-network-cidr=10.244.0.0/16 --upload-certs
  • 使用kubeadm部署高可用Kubernetes 1.17.0

先查看一下需要升级的各个组件的版本。

使用kubeadm upgrade plan ,输出的版本升级信息如下:

Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':COMPONENT   CURRENT       AVAILABLEKubelet     1 x v1.20.0   v1.20.28 x v1.20.0   v1.20.2Upgrade to the latest version in the v1.20 series:COMPONENT            CURRENT   AVAILABLEAPI Server           v1.20.0   v1.20.2Controller Manager   v1.20.0   v1.20.2Scheduler            v1.20.0   v1.20.2Kube Proxy           v1.20.0   v1.20.2CoreDNS              1.7.0     1.7.0Etcd                 3.4.13-0     3.4.13-0You can now apply the upgrade by executing the following command:kubeadm upgrade apply v1.20.2

确保上面的容器镜像已经下载(如果没有提前下载,可能被网络阻隔导致挂起),然后执行升级:

kubeadm upgrade apply v1.20.2

看到下面信息,就OK了。

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.20.2". Enjoy!

然后,配置当前用户环境:

  mkdir -p $HOME/.kube  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  sudo chown $(id -u):$(id -g) $HOME/.kube/config

就可以使用 kubectl version 来查看状态和 kubectl cluster-info 查看服务地址。

  • 如果服务没有起来,测试一下:

    • 查看服务版本,kubectl version

    • 查看集群信息,kubectl cluster-info

    • 查看服务状态,sudo systemctl status kubelet

    • 查看服务日志,journalctl -xefu kubelet

4、工作节点的升级

每个工作节点需要拉取上面对应版本的镜像,以及安装kubelet的对应版本。

检查版本:

~$ kubectl version

查看Pod信息:

kubectl get pod --all-namespaces

完成。

⚠️注意:1.17后版本,如果使用kubeadm安装为高可用模式,所有master节点都可以被升为最新版本(需要提前把k8s的容器镜像放到节点上去)。

    到此,相信大家对"Kubernetes 1.20.2高可用集群如何快速升级及扩容"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    升级 版本 节点 镜像 集群 容器 服务 信息 内容 地址 状态 问题 面的 参考 学习 工作 更新 输出 原始 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 蓝思科技飞鸽互联网 互联网金融监管科技数据 互联网科技会 互联网为科技 互联网 卓越科技 互联网科技素材视频竖屏 互联网科技公司的市场部门 阿里巴巴算科技企业还是互联网 小米互联网科技园设置 互联网科技与管理 江阴互联网智能科技产品进口 互联网媒体平台算高科技产业 银川新华互联网科技学校联系电话 互联网金融科技展 特约风豹互联网科技为什么扣费 珠海东科互联网科技有限公司 云鲸互联网络科技有限公司 青岛易易互联网科技 株洲百竞科技的互联网营销顾问 互联网科技企业 互联网科技博客 互联网科技素材视频竖屏 互联网和高科技公司 互联网科技博主是什么意思 温州喔噻互联网科技有限公司 互联网校园科技培训 互联网科技大赛获奖感言 银川新华互联网科技学校是国营吗 互联网时代高科技布局
    0