Linuxノードのアップグレード

このページでは、kubeadmで構築したLinuxワーカーノードのアップグレード方法を示します。

始める前に

全てのノードへのシェルアクセスが可能であり、kubectlコマンドラインツールがクラスターと通信できるように設定されている必要があります。 このチュートリアルでは、コントロールプレーンのホストではないノードが少なくとも2つ存在するクラスターで実行することを推奨します。

バージョンを確認するには次のコマンドを実行してください: kubectl version.

パッケージリポジトリの変更

コミュニティ所有のパッケージリポジトリ(pkgs.k8s.io)を使用している場合、必要なKubernetesのマイナーリリースのパッケージリポジトリを有効化する必要があります。 これは、Kubernetesパッケージリポジトリの変更ドキュメントにて説明されています。

ワーカーノードのアップグレード

kubeadmのアップグレード

kubeadmをアップグレードします。

#「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo apt-mark unhold kubeadm && \ sudo apt-get update && sudo apt-get install -y kubeadm='1.34.x-*' && \ sudo apt-mark hold kubeadm 

DNFを搭載したシステムの場合:

#「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo yum install -y kubeadm-'1.34.x-*' --disableexcludes=kubernetes 

DNF5を搭載したシステムの場合:

#「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo yum install -y kubeadm-'1.34.x-*' --setopt=disable_excludes=kubernetes 

"kubeadm upgrade"の実行

ワーカーノードは、以下のコマンドによってローカルのkubeletの設定がアップグレードされます。

sudo kubeadm upgrade node 

ノードのドレイン

ノードをスケジュール不可としてマークし、ワークロードを退去させることで、ノードのメンテナンスの準備をします。

# このコマンドはコントロールプレーンノードで実行してください。 # <node-to-drain>は、ドレインするノード名に置き換えてください。 kubectl drain <node-to-drain> --ignore-daemonsets 

kubeletとkubectlのアップグレード

  1. kubeletとkubectlをアップグレードします。

    #「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo apt-mark unhold kubelet kubectl && \ sudo apt-get update && sudo apt-get install -y kubelet='1.34.x-*' kubectl='1.34.x-*' && \ sudo apt-mark hold kubelet kubectl 

    DNFを搭載したシステムの場合:

    #「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --disableexcludes=kubernetes 

    DNF5を搭載したシステムの場合:

    #「1.34.x-*」の「x」は最新のパッチバージョンに置き換えてください。 sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --setopt=disable_excludes=kubernetes 
  2. kubeletを再起動します。

    sudo systemctl daemon-reload sudo systemctl restart kubelet 

ノードの隔離解除

ノードをスケジュール可能としてマークすることで、ノードをオンラインに戻します。

# このコマンドはコントロールプレーンノードで実行してください。 # <node-to-uncordon>は対象のノード名に置き換えてください。 kubectl uncordon <node-to-uncordon> 

次の項目