先日Kubernetes環境をバージョンアップする手順を記載した。
前回はKubernetes本体のバージョンアップ手順を記載したが、関連コンポーネントであるCRI (Container Runtime Interface)やCNI (Container Network Interface)のバージョンアップについては言及していなかった。
私の自宅Kubernetes環境ではCNIとしてflannelを用いている。本記事ではKubernetesのCNI「flannel」をバージョンアップする手順を記載する。
環境
以下に今回構築する各種ソフトウェアのバージョンを記載する。
- ホストOS : AlmaLinux 8.6
- Kubernetes : v1.27.3
- Docker : 23.0.5
- CRI : cri-dockerd 0.3.4
- CNI : flannel v0.21.5 -> v0.22.0
今回の構成の概要図を以下に記載する。
flannelバージョンアップ手順
1, 事前バージョン確認
flannelのバージョンアップ前のバージョン確認をしておく。Dockerのコンテナイメージの情報から、今回のバージョンアップ前のバージョンは、v0.21.5となっていることがわかる。
# docker images | grep flannel
flannel/flannel v0.21.5 a6c0cb5dbd21 2 months ago 68.9MB
flannel/flannel-cni-plugin v1.1.2 7a2dcab94698 7 months ago 7.97MB
2. 最新のマニフェストファイルを適用
flannelの最新のマニフェストファイルをダウンロードする。
# curl -LO https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl apply
にて更新する。最下行のdaemonset.apps/kube-flannel-ds
がconfigured
となっていれば、更新処理が実行される。
# kubectl apply -f kube-flannel.yml
namespace/kube-flannel unchanged
serviceaccount/flannel unchanged
clusterrole.rbac.authorization.k8s.io/flannel unchanged
clusterrolebinding.rbac.authorization.k8s.io/flannel unchanged
configmap/kube-flannel-cfg unchanged
daemonset.apps/kube-flannel-ds configured
3. バージョンアップ完了まで待機
マニフェストファイルを更新すると、ノード単位で順番にPodの再作成がされ自動的にローリングアップデートがされる。最終的に各ノードで動作していたkube-flannel-ds
のPodは、新しいバージョンのPodとして起動する。
# kubectl get pod -n=kube-flannel -w
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-5bqnn 1/1 Terminating 4 (8d ago) 60d
kube-flannel-ds-mghhs 1/1 Running 2 (35d ago) 60d
kube-flannel-ds-x9mzn 1/1 Running 2 (35d ago) 60d
kube-flannel-ds-5bqnn 0/1 Terminating 4 (8d ago) 60d
kube-flannel-ds-5bqnn 0/1 Terminating 4 (8d ago) 60d
kube-flannel-ds-5bqnn 0/1 Terminating 4 (8d ago) 60d
kube-flannel-ds-fgg2w 0/1 Pending 0 0s
kube-flannel-ds-fgg2w 0/1 Pending 0 0s
kube-flannel-ds-fgg2w 0/1 Init:0/2 0 0s
kube-flannel-ds-fgg2w 0/1 Init:1/2 0 1s
kube-flannel-ds-fgg2w 0/1 PodInitializing 0 7s
kube-flannel-ds-fgg2w 1/1 Running 0 8s
kube-flannel-ds-mghhs 1/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-mghhs 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-mghhs 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-mghhs 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-ztdg7 0/1 Pending 0 0s
kube-flannel-ds-ztdg7 0/1 Pending 0 0s
kube-flannel-ds-ztdg7 0/1 Init:0/2 0 0s
kube-flannel-ds-ztdg7 0/1 Init:1/2 0 1s
kube-flannel-ds-ztdg7 0/1 PodInitializing 0 6s
kube-flannel-ds-ztdg7 1/1 Running 0 7s
kube-flannel-ds-x9mzn 1/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-x9mzn 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-x9mzn 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-x9mzn 0/1 Terminating 2 (35d ago) 60d
kube-flannel-ds-cz2q4 0/1 Pending 0 0s
kube-flannel-ds-cz2q4 0/1 Pending 0 0s
kube-flannel-ds-cz2q4 0/1 Init:0/2 0 0s
kube-flannel-ds-cz2q4 0/1 Init:1/2 0 1s
kube-flannel-ds-cz2q4 0/1 PodInitializing 0 7s
kube-flannel-ds-cz2q4 1/1 Running 0 9s
4. 事後バージョン確認
flannelのバージョンアップ後のバージョン確認する。事前の確認においてv0.21.5だけだったコンテナイメージにv0.22.0が追加されている。
# docker images | grep flannel
flannel/flannel v0.22.0 38c11b8f4aa1 7 weeks ago 69.8MB
flannel/flannel v0.21.5 a6c0cb5dbd21 2 months ago 68.9MB
flannel/flannel-cni-plugin v1.1.2 7a2dcab94698 7 months ago 7.97MB
さらに、Podの詳細情報を確認すると、v0.22.0のコンテナイメージで起動していることが確認できる。
# kubectl describe pod kube-flannel-ds-cz2q4 -n=kube-flannel
Name: kube-flannel-ds-cz2q4
Namespace: kube-flannel
~(中略)~
Containers:
kube-flannel:
Container ID: docker://fcd1857a182c3622a9ba4bed91101e443d384705dcee03c97d0bf179704cec6d
Image: docker.io/flannel/flannel:v0.22.0 ★
Image ID: docker-pullable://flannel/flannel@sha256:5f83f1243057458e27249157394e3859cf31cc075354af150d497f2ebc8b54db
~(以下略)~
以上で、KubernetesのCNI「flannel」をバージョンアップする手順は完了となる。
0 件のコメント:
コメントを投稿