Kubernetes: CentOS上如何安裝指定版本的Kubernetes

劉近光發表於2018-09-21

簡介

在部署kubernetes時,要求master node和worker node上的版本保持一致,否則會出現版本不匹配導致奇怪的問題出現。本文將介紹如何在CentOS系統上,使用yum安裝指定版本的Kubernetes。

步驟

在使用yum安裝kubernetes前,需要配置倉庫源,可以使用阿里雲的映象:

[jinguang1@zookeeper03 ~]$ cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

通常我們使用下面的命令來安裝kubernetes:

yum install -y kubelet kubeadm kubectl 

但使用此命令有一個問題,由於有新的版本釋出到倉庫中,可能後期部署的版本跟之前的不一致。作者在部署過程中,遇到過類似問題,master node和worker node部署時間僅差2天,但新版本釋出導致了版本不一致的問題:

[jinguang1@zookeeper03 kubelet]# kubectl version
Client Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.0-rc.1", GitCommit:"3e4aee86dfaf933f03e052859c0a1f52704d4fef", GitTreeState:"clean", BuildDate:"2018-09-18T21:08:06Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T17:53:03Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

因此,我們需要安裝指定版本的kubernetes。那麼如何做呢?在進行yum安裝時,可以使用下列的格式來進行安裝:

yum install -y kubelet-<version> kubectl-<version> kubeadm-<version>

例如,如果需要安裝v1.11.3版本的kubernetes,使用下列命令即可:

[jinguang1@zookeeper03 kubelet]# sudo yum install -y kubelet-1.11.3 kubeadm-1.11.3 kubectl-1.11.3
Loaded plugins: aliases, changelog, fastestmirror, langpacks, tmprepo, verify, versionlock
Loading mirror speeds from cached hostfile
 * base-vault: pub.repos.sina.cn
 * extras-vault: pub.repos.sina.cn
 * sina: pub.repos.sina.cn
 * sina-updates: pub.repos.sina.cn
 * updates-vault: pub.repos.sina.cn
Resolving Dependencies
--> Running transaction check
---> Package kubeadm.x86_64 0:1.11.3-0 will be installed
--> Processing Dependency: kubernetes-cni >= 0.6.0 for package: kubeadm-1.11.3-0.x86_64
---> Package kubectl.x86_64 0:1.11.3-0 will be installed
---> Package kubelet.x86_64 0:1.11.3-0 will be installed
--> Running transaction check
---> Package kubernetes-cni.x86_64 0:0.6.0-0 will be installed
--> Finished Dependency Resolution

通過這種方式,我們就保證各個node上版本的一致性,避免出現一些版本相容性導致的問題。

相關文章