2022年1月15日土曜日

k8sアップグレード(for Raspberry pi)

参照:
https://v1-22.docs.kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/



課題:

以下、k8sのバージョンが古い(2022/01現在)ので最新版にアップデートをしてみます。






アップグレード中での影響について:

バージョンアップ中は、稼働中のPodが停止するなどの悪影響は起きない。

マスターノード単体の場合は、更新が完了するまで、worker nodeへの出来ないことを考慮する必要がある。



手順:

コントロールプレーン x1、worker node x2の構成になので

以下の順に、アップグレードを行う。


1)コントロールプレーンのアップグレードを行う

①レポジトリの更新を行う。

apt update








②アップグレードのリストを表示する。

apt-cache madison kubeadm











③対象のバージョンにkubeadmのアップグレードを行う。

apt-mark unhold kubeadm && \

apt-get update && apt-get install -y kubeadm=1.23.1-00 && \

apt-mark hold kubeadm










④kubeadmバージョンの確認を行う

kubeadm version




⑤アップグレード方法を確認する

kubeadm upgrade plan

(以下のアップグレードの適応方法が記載されている。)















































⑥アップグレードの実施を行う

kubeadm upgrade apply v1.23.1












⑦kubeadmのアップグレードが成功すると、以下の表示が出て完了となる。









⑧kubelet&kubectlのアップグレードを行う。

(公式には記載がないがworker Nodeとバージョンを揃えたいので実施)

apt-mark unhold kubelet kubectl && \

apt-get update && apt-get install -y kubelet=1.23.1-00 kubectl=1.23.1-00 && \

apt-mark hold kubelet kubectl



⑨kubeletを再起動する

sudo systemctl daemon-reload

sudo systemctl restart kubelet




2)Worker Node(1台目)のアップグレードを行う

①対象のworker nodeにスケジュールを禁止にする。

注意:コントロールプレーンで実施


kubectl drain rasp-node1.local --ignore-daemonsets







②rasp-node1.localにログインして、アップグレードを行う。


apt-mark unhold kubelet kubectl && \

apt-get update && apt-get install -y kubelet=1.23.1-00 kubectl=1.23.1-00 && \

apt-mark hold kubelet kubectl













③kubeletを再起動する

sudo systemctl daemon-reload

sudo systemctl restart kubelet



④対象のworker Nodeをオンラインの状態にする

注意:コントロールプレーンで実施


kubectl uncordon rasp-node1.local 






3)Worker Node(2台目)のアップグレードを行う

①上記のworker nodeと同様の作業を行う。



4)バージョンの確認を行う

対象のバージョン(1.23.1)になっていることが把握dけいる。

(以下のバージョンは、kubeletのバージョンを表す)














0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...