2025年11月16日日曜日

k8s node version UP(1.34.1 > 1.34.2)

[マスターノードでの準備と安全確保]

1)etcdctl クライアントのインストール: (未インストールの場合は必要)

apt update

apt install etcd-client


2)etcd バックアップの取得と退避 (最重要):

ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 \

    --cacert=/etc/kubernetes/pki/etcd/ca.crt \

    --cert=/etc/kubernetes/pki/apiserver-etcd-client.crt \

    --key=/etc/kubernetes/pki/apiserver-etcd-client.key \

    snapshot save /tmp/etcd_backup_$(date +%Y%m%d_%H%M%S).db


3)ファイルをクラスター外の安全な場所(ローカルPCなど)にコピーします。

環境によって、異なるので割愛します。(おそらくSCPなど待避されるのではと思いますが)


4)Pod Disruption Budget (PDB) の一時削除:

ドレインをブロックするIstioなどのPDBを削除します。

kubectl delete pdb istio-ingressgateway -n istio-system

kubectl delete pdb istiod -n istio-system




[コントロールプレーンのアップグレード]

1)kubeadm バイナリの更新:

apt-mark unhold kubeadm

apt install -y kubeadm=1.34.2-1.1

apt-mark hold kubeadm


2)コアコンポーネントの適用:

kubeadm upgrade apply v1.34.2


3)kubeletkubectl パッケージの更新:

apt-mark unhold kubelet kubectl

apt install -y kubelet=1.34.2-1.1 kubectl=1.34.2-1.1


4)kubelet の再起動:

systemctl daemon-reload

systemctl restart kubelet


5)パッケージのホールド再設定:

apt-mark hold kubelet kubectl





[ワーカーノードのアップグレード(ノードごとに繰り返し)]

rasp-node1rasp-node2 で、以下の手順を1台ずつ実行します。


1)ドレイン(マスターノードで実行):

kubectl drain <ノード名> --ignore-daemonsets --delete-emptydir-data --force



2)ノードの設定更新(ワーカーノードで実行)

対象のワーカーノードにログインし、kubeletの設定を更新します。

kubeadm upgrade node


3)kubelet サービス更新(ワーカーノードで実行)

apt-mark unhold kubelet

apt install -y kubelet=1.34.2-1.1

systemctl daemon-reload

systemctl restart kubelet

apt-mark hold kubelet


4)アンコルドン(マスターノードで実行

kubectl uncordon <ノード名>



[ 最終確認と PDB の再適用]

実行場所: マスターノード (rasp-master)

  1. 全ノードバージョン確認: すべてのノードが v1.34.2 Ready であることを確認します
    kubectl get nodes


0 件のコメント:

コメントを投稿

terraform(moved.tf)のリソース名の修正方法について

以下の赤枠を直接変えてしまうと、ec2が削除されてしまいます。 これを維持したい場合について記載します。 以下に moved.tf ファイルを作成します。 以下のように、 from に修正前で、 to に修正したい内容を記載します。 以下のリソースにも修正を加えます。 terra...