LoginSignup
1
0

More than 1 year has passed since last update.

Google Cloud Platformで勉強用Kubernetesクラスタを作る (2)

Posted at

前編でkubeadmを用いたkubeadmクラスタを作成しました。
CKAの出題範囲である、kubeadmによるクラスタのバージョンアップを試してみます。
公式ドキュメントにしたがって進めます。

コントローラーのバージョンアップ

kubeadmのバージョンアップ

apt-mark unhold kubeadm && \
 apt-get update && apt-get install -y kubeadm=1.26.0-00 && \
 apt-mark hold kubeadm

1.26.0がインストールされました。

$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:57:06Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
kubeadm upgrade plan
kubeadm upgrade apply v1.26.0

drain

$ kubectl drain controller --ignore-daemonsets 
node/controller already cordoned
Warning: ignoring DaemonSet-managed Pods: calico-system/calico-node-vkjq6, calico-system/csi-node-driver-5zh6x, kube-system/kube-proxy-6krvm
evicting pod calico-apiserver/calico-apiserver-64459cbbd7-vk5ld
pod/calico-apiserver-64459cbbd7-vk5ld evicted
node/controller drained

kubeletのバージョンアップ

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet=1.26.0-00 kubectl=1.26.0-00 && \
apt-mark hold kubelet kubectl
systemctl daemon-reload
systemctl restart kubelet

CRIのバージョンアップ

CRIにCRI-Oを使用しているので、これもあわせてバージョンアップします。
公式の手順にしたがいます。

OS=Debian_11
VERSION=1.25

# 旧バージョン用のファイルを削除する
rm /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

VERSION=1.26

# 新バージョン用のファイルをダウンロードする
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | apt-key add -

apt update
apt install cri-o cri-o-runc

uncordon

$ kubectl uncordon controller 
node/controller uncordoned

完了

以下のとおりコントローラーを1.26.0にバージョンアップできました。

$ kubectl get node 
NAME         STATUS   ROLES           AGE   VERSION
controller   Ready    control-plane   14h   v1.26.0
worker       Ready    <none>          13h   v1.25.0

ワーカーのバージョンアップ

kubeadmのバージョンアップ

apt-mark unhold kubeadm && \
 apt-get update && apt-get install -y kubeadm=1.26.0-00 && \
 apt-mark hold kubeadm
kubeadm upgrade node

drain

$ kubectl drain worker --ignore-daemonsets 
node/worker already cordoned
Warning: ignoring DaemonSet-managed Pods: calico-system/calico-node-hg8b7, calico-system/csi-node-driver-ftw9b, kube-system/kube-proxy-ghnl5
evicting pod tigera-operator/tigera-operator-64db64cb98-rtpx7
evicting pod calico-system/calico-typha-88f68649f-kd2gk
evicting pod calico-apiserver/calico-apiserver-64459cbbd7-b7zpc
evicting pod calico-apiserver/calico-apiserver-64459cbbd7-xlb7q
evicting pod calico-system/calico-kube-controllers-5f9dc85578-9wkmp
evicting pod default/whoami-deploy-6d757cc7f6-srfwl
evicting pod default/whoami-deploy-6d757cc7f6-9fk6b
evicting pod kube-system/coredns-787d4945fb-7pq22
evicting pod kube-system/coredns-787d4945fb-mdffl
pod/whoami-deploy-6d757cc7f6-srfwl evicted
pod/tigera-operator-64db64cb98-rtpx7 evicted
pod/whoami-deploy-6d757cc7f6-9fk6b evicted
pod/calico-kube-controllers-5f9dc85578-9wkmp evicted
pod/calico-apiserver-64459cbbd7-xlb7q evicted
pod/calico-apiserver-64459cbbd7-b7zpc evicted
pod/coredns-787d4945fb-mdffl evicted
pod/coredns-787d4945fb-7pq22 evicted
pod/calico-typha-88f68649f-kd2gk evicted
node/worker drained

kubeletのバージョンアップ

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet=1.26.0-00 kubectl=1.26.0-00 && \
apt-mark hold kubelet kubectl
systemctl daemon-reload
systemctl restart kubelet

CRI-Oのバージョンアップ

コントローラーと同じ。

uncordon

$ kubectl uncordon worker
node/worker uncordoned

完了

$ kubectl get node
NAME         STATUS   ROLES           AGE   VERSION
controller   Ready    control-plane   15h   v1.26.0
worker       Ready    <none>          13h   v1.26.0

おわり

以上でコントローラ、ワーカーともに1.26にバージョンアップできました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0