Skip to content

Commit cf3cafc

Browse files
authored
Merge pull request #51147 from kfess/issue-51146
[ja] Translated /content/en/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd.md into Japanese
2 parents 5381aab + b423540 commit cf3cafc

File tree

1 file changed

+172
-0
lines changed

1 file changed

+172
-0
lines changed
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
---
2+
title: ノードのコンテナランタイムをDocker Engineからcontainerdに変更する
3+
weight: 10
4+
content_type: task
5+
---
6+
7+
このタスクでは、コンテナランタイムをDockerからcontainerdに更新するために必要な手順について説明します。
8+
これは、Kubernetes 1.23以前を使用しているクラスターオペレーターに適用されます。
9+
また、dockershimからcontainerdへの移行を行う際の具体的なシナリオ例も含まれています。
10+
代替のコンテナランタイムについては、この[ページ](/docs/setup/production-environment/container-runtimes/)を参照してください。
11+
12+
## {{% heading "prerequisites" %}}
13+
14+
{{% thirdparty-content %}}
15+
16+
containerdをインストールします。
17+
詳細については[containerdのインストールドキュメント](https://containerd.io/docs/getting-started/)を参照してください。
18+
特定の前提条件については、[containerdガイド](/docs/setup/production-environment/container-runtimes/#containerd)を参照してください。
19+
20+
## ノードのドレイン
21+
22+
```shell
23+
kubectl drain <node-to-drain> --ignore-daemonsets
24+
```
25+
26+
`<node-to-drain>`は、ドレイン対象のノード名に置き換えてください。
27+
28+
## Dockerデーモンの停止
29+
30+
```shell
31+
systemctl stop kubelet
32+
systemctl disable docker.service --now
33+
```
34+
35+
## containerdのインストール
36+
37+
containerdをインストールする手順の詳細については、[ガイド](/docs/setup/production-environment/container-runtimes/#containerd)を参照してください。
38+
39+
{{< tabs name="tab-cri-containerd-installation" >}}
40+
{{% tab name="Linux" %}}
41+
42+
1. 公式のDockerリポジトリから`containerd.io`パッケージをインストールします。
43+
各Linuxディストリビューション向けにDockerリポジトリを設定し、`containerd.io`パッケージをインストールする手順については、[Getting started with containerd](https://github.com/containerd/containerd/blob/main/docs/getting-started.md)を参照してください。
44+
45+
1. containerdを設定する:
46+
47+
```shell
48+
sudo mkdir -p /etc/containerd
49+
containerd config default | sudo tee /etc/containerd/config.toml
50+
```
51+
52+
1. containerdを再起動する:
53+
54+
```shell
55+
sudo systemctl restart containerd
56+
```
57+
58+
{{% /tab %}}
59+
{{% tab name="Windows (PowerShell)" %}}
60+
61+
PowerShellセッションを開始し、`$Version`に目的のバージョンを設定します(例: `$Version="1.4.3"`)。
62+
その後、次のコマンドを実行します:
63+
64+
1. containerdをダウンロードする:
65+
66+
```powershell
67+
curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz
68+
tar.exe xvf .\containerd-windows-amd64.tar.gz
69+
```
70+
2. 展開および設定:
71+
72+
```powershell
73+
Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force
74+
cd $Env:ProgramFiles\containerd\
75+
.\containerd.exe config default | Out-File config.toml -Encoding ascii
76+
77+
# 設定内容を確認します。セットアップによっては、以下を調整する必要があります:
78+
# - sandbox_image(Kubernetesのpauseイメージ)
79+
# - cniのbin_dirおよびconf_dirの場所
80+
Get-Content config.toml
81+
82+
# (オプションだが、強く推奨される)containerdをWindows Defenderのスキャン対象から除外する
83+
Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe"
84+
```
85+
86+
3. containerdを起動する:
87+
88+
```powershell
89+
.\containerd.exe --register-service
90+
Start-Service containerd
91+
```
92+
93+
{{% /tab %}}
94+
{{< /tabs >}}
95+
96+
## containerdをコンテナランタイムとして使用するためのkubeletの設定
97+
98+
`/var/lib/kubelet/kubeadm-flags.env`ファイルを編集し、フラグに`--container-runtime-endpoint=unix:///run/containerd/containerd.sock`を追加して、containerdランタイムを指定します。
99+
100+
kubeadmを使用しているユーザーは、`kubeadm`ツールが各ホストのCRIソケットを、そのホストのノードオブジェクトにアノテーションとして保存していることに注意してください。
101+
これを変更するには、`/etc/kubernetes/admin.conf`ファイルが存在するマシン上で次のコマンドを実行します。
102+
103+
```shell
104+
kubectl edit no <node-name>
105+
```
106+
107+
これによりテキストエディタが起動し、ノードオブジェクトを編集できます。
108+
使用するテキストエディタを指定するには、`KUBE_EDITOR`環境変数を設定してください。
109+
110+
- `kubeadm.alpha.kubernetes.io/cri-socket`の値を`/var/run/dockershim.sock`から、使用したいCRIソケットのパス(例: `unix:///run/containerd/containerd.sock`)に変更します。
111+
112+
新しいCRIソケットのパスは、原則として`unix://`で始める必要がある点に注意してください。
113+
114+
- テキストエディタで変更を保存すると、ノードオブジェクトが更新されます。
115+
116+
## kubeletの再起動
117+
118+
```shell
119+
systemctl start kubelet
120+
```
121+
122+
## ノードが正常であることの確認
123+
124+
`kubectl get nodes -o wide`を実行し、先ほど変更したノードのランタイムとしてcontainerdが表示されていることを確認します。
125+
126+
## Docker Engineの削除
127+
128+
{{% thirdparty-content %}}
129+
130+
ノードが正常に見える場合は、Dockerを削除します。
131+
132+
{{< tabs name="tab-remove-docker-engine" >}}
133+
{{% tab name="CentOS" %}}
134+
135+
```shell
136+
sudo yum remove docker-ce docker-ce-cli
137+
```
138+
{{% /tab %}}
139+
{{% tab name="Debian" %}}
140+
141+
```shell
142+
sudo apt-get purge docker-ce docker-ce-cli
143+
```
144+
{{% /tab %}}
145+
{{% tab name="Fedora" %}}
146+
147+
```shell
148+
sudo dnf remove docker-ce docker-ce-cli
149+
```
150+
{{% /tab %}}
151+
{{% tab name="Ubuntu" %}}
152+
153+
```shell
154+
sudo apt-get purge docker-ce docker-ce-cli
155+
```
156+
{{% /tab %}}
157+
{{< /tabs >}}
158+
159+
前述のコマンドは、ホスト上のイメージ、コンテナ、ボリューム、またはカスタマイズされた設定ファイルを削除しません。
160+
これらを削除するには、Dockerの[Docker Engineのアンインストール](https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine)手順に従ってください。
161+
162+
{{< caution >}}
163+
Docker Engineのアンインストール手順には、containerdを削除してしまうリスクがあります。コマンドの実行には十分注意してください。
164+
{{< /caution >}}
165+
166+
## ノードのuncordon
167+
168+
```shell
169+
kubectl uncordon <node-to-uncordon>
170+
```
171+
172+
`<node-to-uncordon>`は、以前にドレインしたノードの名前に置き換えてください。

0 commit comments

Comments
 (0)