千家信息网

Kubernetes 1.18.3高可用集群快速升级及扩容过程

发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,本篇文章给大家分享的是有关Kubernetes 1.18.3高可用集群快速升级及扩容过程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。K
千家信息网最后更新 2025年01月28日Kubernetes 1.18.3高可用集群快速升级及扩容过程

本篇文章给大家分享的是有关Kubernetes 1.18.3高可用集群快速升级及扩容过程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Kubernetes 1.18.3已经正式发布,高可用集群也可以直接升级(这里改用hub.docker.com的镜像,可以快速更新整个集群、增加新的master和worker节点)。

快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。

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

kubeadm upgrade apply v1.18.3

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

  • 第一步,重新创建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.18.3-00 kubectl=1.18.3-00 kubelet=1.18.3-00
  • 设置中国区的软件源,参考: kubernetes for china

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

kubeadm config images list

输出如下:

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

2、拉取容器镜像

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

MY_REGISTRY=mirrorgcrioK8S_VERSION="1.18.3"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.3-0docker pull ${MY_REGISTRY}/pause:3.2#docker pull ${MY_REGISTRY}/coredns-arm64:1.6.7docker pull coredns/coredns:1.6.7## 添加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.3-0 k8s.gcr.io/etcd:3.4.3-0docker tag ${MY_REGISTRY}/pause:3.2 k8s.gcr.io/pause:3.2#docker tag ${MY_REGISTRY}/coredns-arm64:1.6.7 k8s.gcr.io/coredns:1.6.7docker tag coredns/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7echo ""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脚本,然后执行。

  • 或者,下载脚本:https://github.com/openthings/kubernetes-tools/blob/master/kubeadm/2-images/

3、升级Kubernetes集群

全新安装:

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

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

sudo kubeadm init --kubernetes-version=v1.18.0 --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.18.2   v1.18.38 x v1.18.2   v1.18.3Upgrade to the latest version in the v1.18 series:COMPONENT            CURRENT   AVAILABLEAPI Server           v1.18.2   v1.18.3Controller Manager   v1.18.2   v1.18.3Scheduler            v1.18.2   v1.18.3Kube Proxy           v1.18.2   v1.18.3CoreDNS              1.6.7     1.6.7Etcd                 3.4.3-0     3.4.3-0You can now apply the upgrade by executing the following command:    kubeadm upgrade apply v1.18.3

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

kubeadm upgrade apply v1.18.3

看到下面信息,就OK了。

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.3". 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.18.3高可用集群快速升级及扩容过程,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

    升级 版本 镜像 节点 集群 容器 服务 信息 工作 过程 地址 更多 状态 知识 篇文章 脚本 问题 面的 参考 更新 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器数据库租用 人工智能时代下网络安全的实践 服务器管理企业操作系统 免费提供wind数据库的大学 云服务器怎么增加c盘容量 越南软件开发水平 2021年网络安全知识宣传简报 卫健系统网络安全保密 网络数据库案例与教程 学网络技术的前景 专升本数据库考试有多难 主流图数据库 软件开发与管理学院排名 三级网络技术可以考四级 国家网络安全实施战略 广东蓝牙软件开发品牌 求职app软件开发公司 世界互联网大会新技术黑科技 暨南大学的网络安全专业 网络安全为师生手抄报简单 无法验证服务器安全证书 西安冠盈互联网科技有限公司 小学课堂网络安全教育课题 十四五网络安全规划 专家 网站上的数据库应每周更新一次 方舟服务器管理密码是什么 安装黑群晖找不到服务器 如何选择数据库软件学习 提供web服务器的软件 计算机软件开发价钱是多少
    0