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

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

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

## 始める前に

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

* [残りのkubeadmクラスターのアップグレード手順](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade)をよく理解しておいてください。
  Linuxワーカーノードをアップグレードする前に、コントロールプレーンノードのアップグレードをする必要があります。

<!-- steps -->

## パッケージリポジトリの変更 {#changing-the-package-repository}

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

<div class="alert alert-secondary callout note" role="note">
  <strong>備考:</strong> 古いパッケージリポジトリ(<code>apt.kubernetes.io</code>および<code>yum.kubernetes.io</code>)は<a href="/blog/2023/08/31/legacy-package-repository-deprecation/">2023年9月13日以降、非推奨となり凍結されています</a>。
<strong><a href="/blog/2023/08/15/pkgs-k8s-io-introduction/"><code>pkgs.k8s.io</code>にてホストされている新しいリポジトリ</a>の使用が強く推奨されており、2023年9月13日以降にリリースされたKubernetesのバージョンをインストールするには必須となっています。</strong>
非推奨の古いリポジトリとその内容は、将来事前予告なく削除される可能性があります。
新しいパッケージリポジトリでは、v1.24.0以降のKubernetesバージョンのダウンロードを提供しています。
</div>


## ワーカーノードのアップグレード {#upgrading-worker-nodes}

### kubeadmのアップグレード {#upgrade-kubeadm}

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

<ul class="nav nav-tabs" id="tabs-k8s-install-kubeadm-worker-nodes" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-k8s-install-kubeadm-worker-nodes-0" role="tab" aria-controls="tabs-k8s-install-kubeadm-worker-nodes-0" aria-selected="true">Ubuntu、Debian、またはHypriotOS</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-k8s-install-kubeadm-worker-nodes-1" role="tab" aria-controls="tabs-k8s-install-kubeadm-worker-nodes-1">CentOS、RHEL、またはFedora</a></li></ul>

<div class="tab-content" id="tabs-k8s-install-kubeadm-worker-nodes-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-k8s-install-kubeadm-worker-nodes-0" role="tabpanel" aria-labelledby="tabs-k8s-install-kubeadm-worker-nodes-0-tab" tabindex="k8s-install-kubeadm-worker-nodes"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo apt-mark unhold kubeadm <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-get update <span class="o">&amp;&amp;</span> sudo apt-get install -y <span class="nv">kubeadm</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-mark hold kubeadm
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-k8s-install-kubeadm-worker-nodes-1" role="tabpanel" aria-labelledby="tabs-k8s-install-kubeadm-worker-nodes-1-tab" tabindex="k8s-install-kubeadm-worker-nodes"><p>DNFを搭載したシステムの場合:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubeadm-<span class="s1">&#39;1.36.x-*&#39;</span> --disableexcludes<span class="o">=</span>kubernetes
</span></span></code></pre></div><p>DNF5を搭載したシステムの場合:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubeadm-<span class="s1">&#39;1.36.x-*&#39;</span> --setopt<span class="o">=</span><span class="nv">disable_excludes</span><span class="o">=</span>kubernetes
</span></span></code></pre></div></div></div>


### "kubeadm upgrade"の実行 {#call-kubeadm-upgrade}

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

```shell
sudo kubeadm upgrade node
```

### ノードのドレイン {#drain-the-node}

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

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

### kubeletとkubectlのアップグレード {#upgrade-kubelet-and-kubectl}

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

   <ul class="nav nav-tabs" id="tabs-k8s-kubelet-and-kubectl" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-k8s-kubelet-and-kubectl-0" role="tab" aria-controls="tabs-k8s-kubelet-and-kubectl-0" aria-selected="true">Ubuntu、Debian、またはHypriotOS</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-k8s-kubelet-and-kubectl-1" role="tab" aria-controls="tabs-k8s-kubelet-and-kubectl-1">CentOS、RHEL、またはFedora</a></li></ul>

<div class="tab-content" id="tabs-k8s-kubelet-and-kubectl-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-k8s-kubelet-and-kubectl-0" role="tabpanel" aria-labelledby="tabs-k8s-kubelet-and-kubectl-0-tab" tabindex="k8s-kubelet-and-kubectl"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo apt-mark unhold kubelet kubectl <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-get update <span class="o">&amp;&amp;</span> sudo apt-get install -y <span class="nv">kubelet</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="nv">kubectl</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-mark hold kubelet kubectl
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-k8s-kubelet-and-kubectl-1" role="tabpanel" aria-labelledby="tabs-k8s-kubelet-and-kubectl-1-tab" tabindex="k8s-kubelet-and-kubectl"><p>DNFを搭載したシステムの場合:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubelet-<span class="s1">&#39;1.36.x-*&#39;</span> kubectl-<span class="s1">&#39;1.36.x-*&#39;</span> --disableexcludes<span class="o">=</span>kubernetes
</span></span></code></pre></div><p>DNF5を搭載したシステムの場合:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1">#「1.36.x-*」の「x」は最新のパッチバージョンに置き換えてください。</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubelet-<span class="s1">&#39;1.36.x-*&#39;</span> kubectl-<span class="s1">&#39;1.36.x-*&#39;</span> --setopt<span class="o">=</span><span class="nv">disable_excludes</span><span class="o">=</span>kubernetes
</span></span></code></pre></div></div></div>


1. kubeletを再起動します。

   ```shell
   sudo systemctl daemon-reload
   sudo systemctl restart kubelet
   ```

### ノードの隔離解除 {#uncordon-the-node}

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

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

## 次の項目

* [Windowsノードのアップグレード](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes/)を参照してください。
