kubernetes version upgrade

마스터 노드를 먼저 하고 워커 노드를 나중에 한다.

kubeadm 을 먼저 업그레이드하고 kubelet kubectl을 나중에 업그레이드한다.

kubeadm

master01

ssh master01

yum list --showduplicates kubeadm --disableexcludes=kubernetes

yum install -y kubeadm-1.17.3-0 --disableexcludes=kubernetes

kubeadm version #확인

kubectl drain master01 --ignore-daemonsets # master01을 클러스터에서 뺀다. 업그레이드후 나중에 다시 붙이자.

kubeadm upgrade plan # 업그레이드 플랜내용을 보여준다. 마지막 커맨들를 실행하자.

kubeadm upgrade apply v1.17.3

한참 뭐를 한다.

마지막으로

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

이것이 나오면 맞는것이다.

kubectl uncordon master01 # 다시 클러스터에 붙인다.

master02 master03

kubeadm 설치후

yum install -y kubeadm-1.17.3-0 --disableexcludes=kubernetes
kubeadm version #확인

kubeadm upgrade apply 대신 kubeadm upgrade node 이걸 한다.

kubelet

master01 02 03

yum install -y kubelet-1.17.x-0 kubectl-1.17.3-0 --disableexcludes=kubernetes
systemctl restart kubelet

Worker node

기본적으로는 같다. 일단 클러스터에서 빼고 업그레이드후 다시 넣는다.

kubectl drain node13 --ignore-daemonsets # 클러스터에서 제거 
yum install -y kubeadm-1.17.3-0 --disableexcludes=kubernetes # 설치
kubeadm upgrade node # 설정 업그레이드

yum install -y kubelet-1.17.3-0 kubectl-1.17.3-0 --disableexcludes=kubernetes # 설치
systemctl restart kubelet # 재시작

kubectl uncordon node13

확인하자.

k get nodes

NAME       STATUS   ROLES    AGE    VERSION
master01   Ready    master   144d   v1.17.3
master02   Ready    master   144d   v1.17.3
master03   Ready    master   144d   v1.17.3
node11     Ready    <none>   144d   v1.17.3
node12     Ready    <none>   144d   v1.17.3
node13     Ready    <none>   42m    v1.17.3
node14     Ready    <none>   144d   v1.17.3

나머지 노드들도 하나씩 해주면 된다.

배운점

  • kube cluster에서 yum update를 하지말자.. 커널도 업데이트되고 막 뭐가 설치되면 나중에 알수가 없다. 패키지가 200개가 깔리기도 함.
  • 전체노드를 동시에 업데이트하지 말자 하나씩 클러스터에서 빼서 하고 다시 넣고 해야한다.
teamsmiley's profile image

teamsmiley

2020-02-29 00:00

Read more posts by this author