怎样将升级Kubernetes版本至1.18

Kubernetes 是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序,随着时间的推移,Kubernetes 不断地更新和升级,以提供新功能、修复漏洞和提高性能,本文将介绍如何将 Kubernetes 集群升级至 1.18 版本。

创新互联建站专注于华宁企业网站建设,成都响应式网站建设公司,成都商城网站开发。华宁网站建设公司,为华宁等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

准备工作

在升级 Kubernetes 之前,需要确保已经完成了以下准备工作:

1、确保所有的节点都已经安装了最新版本的 kubelet、kubectl 和 kubeadm,这些组件是运行 Kubernetes 集群的基础。

2、为所有节点生成并分发 ca 证书和 kubeconfig 文件,ca 证书用于建立信任关系,而 kubeconfig 文件包含了访问集群所需的信息。

3、在升级之前,建议先备份当前的集群状态,可以使用 kubectl get nodeskubectl get pods --all-namespaceskubectl get deployments --all-namespaces 等命令进行备份。

升级步骤

1、更新控制平面组件

需要更新控制平面组件,包括 etcd、API Server 和 Controller Manager,可以通过以下命令进行升级:

停止 API Server
sudo systemctl stop kube-apiserver
停止 etcd
sudo systemctl stop etcd
停止 Controller Manager
sudo systemctl stop kube-controller-manager
下载新的 etcd 镜像(如果使用的是 kubeadm)
sudo kubeadm config images pull etcd --config=/etc/kubernetes/admin.conf --manifest-dir=/etc/kubernetes/manifests
使用 kubeadm upgrade apiserver 将 API Server 升级到最新的稳定版本
sudo kubeadm upgrade apiserver --to-version=v1.18.0 --config=/etc/kubernetes/admin.conf --manifest-dir=/etc/kubernetes/manifests
使用 kubeadm upgrade controller-manager 将 Controller Manager 升级到最新的稳定版本
sudo kubeadm upgrade controller-manager --to-version=v1.18.0 --config=/etc/kubernetes/admin.conf --manifest-dir=/etc/kubernetes/manifests
启动新的 etcd 实例(如果使用的是 kubeadm)
sudo kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" --upload-certs --config=/etc/kubernetes/admin.conf --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --control-plane-name my-control-plane --service-cidr=10.100.0.0/16 --node-cidr=10.100.0.0/16 --networking calico || true

注意:请根据实际情况替换 LOAD_BALANCER_DNSLOAD_BALANCER_PORTregistry.aliyuncs.com/google_containers--control-plane-name--service-cidr--node-cidr--networking 等参数。

2、更新工作负载组件

接下来,需要更新工作负载组件,包括 kubelet、kube-proxy 和 cni,可以通过以下命令进行升级:

下载新的 kubelet 镜像(如果使用的是 kubeadm)
sudo kubeadm config images pull kubelet --config=/etc/kubernetes/admin.conf --manifest-dir=/etc/kubernetes/manifests
根据操作系统类型选择相应的升级脚本进行升级(对于 Ubuntu,可以使用以下命令)
sudo apt update && sudo apt install -y apt-transport-https curl > /dev/null && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add > /dev/null && echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null && sudo apt update && sudo apt install -y kubelet=1.18.0-00 kubelet-cimprov=1.18.0-00 kubelet-tools=1.18.0-00 > /dev/null && sudo apt clean > /dev/null && sudo apt autoremove > /dev/null && sudo apt purge > /dev/null && sudo apt update > /dev/null && sudo apt install kubelet=1.18.0-00 kubelet-cimprov=1.18.0-00 kubelet-tools=1.18.0-00 > /dev/null && sudo systemctl restart kubelet > /dev/null && sudo systemctl enable kubelet > /dev/null

注意:请根据实际情况替换 kubernetes-xenial 为实际使用的 Linux 发行版对应的版本,根据实际需求调整 --install-cni--cni-bin-dir--cni-conf-dir--cni-plugin-dir--cni-lib-dir--cni-bin-dir--network-plugin=cni--attachable-volumes--pods-infrastructure=cni--enable-hostpaths--hostpath-path=/opt/cni/bin--hostpath-type=hostpath:hostPath:bareHostPath:ro,relatime,mode:755,uid:root:0,gid:root:0,size:1G,requestDir:true,blockStorage:true,mounter:cifs,--mounter=cifs,--fstype=cifs,--volumePluginClassName=csi.azureDisk.csiDriver:CSIAzureDiskVolumePlugin,--storageClassName=standard,--registry-mirror=$(cat REGISTRY_MIRROR),`–allowPrivilegedContainerRegistryAccess=$(echo $ALLOWPRIVILEGEDCONTAINERREGISTRYACCESS | base64 | tr ‘

‘ ‘ ‘ | sed ‘s/ //g’),–experimentalMounterPathOverride=$(echo $EXPERIMENTALMOUNTERPATHOVERRIDE | base64 | tr ‘

‘ ‘ ‘ | sed ‘s/ //g’),以及 –node-ip=$(hostname)`,可以根据实际情况进行调整。

3、验证升级结果

完成上述步骤后,可以通过以下命令验证升级是否成功:

查看 API Server 版本
kubectl version --client=true | grep "Server version: v" | cut -d' ' -f3 | xargs echo "API Server version: " && echo "v$(cut -d' ' -f3)" || true

4、可能遇到的问题及解答

Q: 为什么在升级过程中会遇到权限问题?

A: 这可能是因为当前用户没有足够的权限执行升级操作,可以尝试使用 root 或者具有相应权限的用户进行升级,还可以检查 ~/.kube/config 文件中的认证信息是否正确。

分享文章:怎样将升级Kubernetes版本至1.18
网站URL:http://www.gawzjz.com/qtweb2/news25/14475.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联