Kubernetes 1.14.0快速升級
阿新 • • 發佈:2019-04-01
Kubernetes 1.13.5/1.14.0已經正式釋出,快速升級(含國內映象快速下載連結)包括升級kubeadm/kubectl/kubelet版本、拉取映象、升級Kubernetes叢集三個主要步驟。參考《Ubuntu上軟體鎖定版本不更新》安裝特定DockerCE版本。
1、升級kubeadm/kubectl/kubelet版本
sudo apt install kubeadm=1.14.0-00 kubectl=1.14.0-00 kubelet=1.14.0-00
檢視該版本的容器映象版本:
kubeadm config images list
輸出如下:
~# kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.14.0
k8s.gcr.io/kube-controller-manager:v1.14.0
k8s.gcr.io/kube-scheduler:v1.14.0
k8s.gcr.io/kube-proxy:v1.14.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
2、拉取容器映象
原始的kubernetes映象檔案在gcr上,不能直接下載。我給映象到了阿里雲的杭州機房的容器倉庫裡,拉取還是比較快的。
echo "" echo "==========================================================" echo "Pull Kubernetes v1.14.0 Images from aliyuncs.com ......" echo "==========================================================" echo "" MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings ## 拉取映象 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver:v1.14.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager:v1.14.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler:v1.14.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy:v1.14.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd:3.3.10 docker pull ${MY_REGISTRY}/k8s-gcr-io-pause:3.1 docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.3.1 ## 新增Tag docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver:v1.14.0 k8s.gcr.io/kube-apiserver:v1.14.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler:v1.14.0 k8s.gcr.io/kube-scheduler:v1.14.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager:v1.14.0 k8s.gcr.io/kube-controller-manager:v1.14.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy:v1.14.0 k8s.gcr.io/kube-proxy:v1.14.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd:3.3.10 k8s.gcr.io/etcd:3.3.10 docker tag ${MY_REGISTRY}/k8s-gcr-io-pause:3.1 k8s.gcr.io/pause:3.1 docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.3.1 k8s.gcr.io/coredns:1.3.1 echo "" echo "==========================================================" echo "Pull Kubernetes v1.14.0 Images FINISHED." echo "into registry.cn-hangzhou.aliyuncs.com/openthings, " echo " by openthings@https://my.oschina.net/u/2306127." echo "==========================================================" echo ""
儲存為shell指令碼,然後執行。
3、升級Kubernetes叢集
全新安裝:
#指定IP地址,1.14.0版本:
sudo kubeadm init --kubernetes-version=v1.14.0 --apiserver-advertise-address=10.1.1.100 --pod-network-cidr=10.244.0.0/16
#注意,CoreDNS已經內建,不再需要引數--feature-gates CoreDNS=true
先檢視一下需要升級的各個元件的版本。
使用kubeadm upgrade plan ,輸出的版本升級資訊如下:
COMPONENT CURRENT AVAILABLE
API Server v1.13.2 v1.14.0
Controller Manager v1.13.2 v1.14.0
Scheduler v1.13.2 v1.14.0
Kube Proxy v1.13.2 v1.14.0
CoreDNS 1.2.6 1.3.1
Etcd 3.2.24 3.3.10
確保上面的容器映象已經下載(如果沒有提前下載,可能被網路阻隔導致掛起),然後執行升級:
kubeadm upgrade -y apply v1.14.0
看到下面資訊,就OK了。
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.14.0". 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 檢視服務地址。
4、工作節點的升級
每個工作節點需要拉取上面對應版本的映象,以及安裝kubelet的對應版本。
檢查版本:
~$ kubectl version
檢視Pod資訊:
kubectl get pod --all-namespaces
完成。
5 HA cluster
because the api change, will failed start apiserver. need change images to 1.14.0 manully.
Note:
- cd /etc/kubernetes/manifests/
- change every *.yaml , specify images to 1.14.0