Skip to content

Commit a5f1040

Browse files
authored
Merge pull request #39261 from grainrigi/ja-dockershim-deprecation
[ja] Add dockerhim depreaction FAQ blog post
2 parents cbca217 + 773a7d8 commit a5f1040

File tree

6 files changed

+203
-6
lines changed

6 files changed

+203
-6
lines changed

content/ja/blog/_posts/2020-12-02-dont-panic-kubernetes-and-docker.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@ DockerはCRI([Container Runtime Interface](https://kubernetes.io/blog/2016/12/co
4343
経験の多寡や難易度にかかわらず、どんなことでも質問してください。我々の目標は、全ての人が将来の変化について、可能な限りの知識と理解を得られることです。
4444
このブログが多くの質問の答えとなり、不安を和らげることができればと願っています。
4545

46-
別の情報をお探してあれば、[Dockershim Deprecation FAQ](/blog/2020/12/02/dockershim-faq/)を参照してください。
46+
別の情報をお探しであれば、[dockershimの削除に関するFAQ](/ja/dockershim)を参照してください。
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
layout: blog
3+
title: "更新: dockershimの削除に関するFAQ"
4+
linkTitle: "dockershimの削除に関するFAQ"
5+
date: 2022-02-17
6+
slug: dockershim-faq
7+
aliases: [ '/ja/dockershim' ]
8+
---
9+
10+
**この記事は2020年の後半に投稿されたオリジナルの記事[Dockershim Deprecation FAQ](/blog/2020/12/02/dockershim-faq/)の更新版です。
11+
この記事にはv1.24のリリースに関する更新を含みます。**
12+
13+
---
14+
15+
この文書では、Kubernetesからの _dockershim_ の削除に関するよくある質問について説明します。
16+
この削除はKubernetes v1.20リリースの一部としてはじめて[発表](/blog/2020/12/08/kubernetes-1-20-release-announcement/)されたものです。
17+
Kubernetes [v1.24のリリース](/releases/#release-v1-24)においてdockershimは実際にKubernetesから削除されました。
18+
19+
これが何を意味するかについては、ブログ記事[Don't Panic: Kubernetes and Docker](/ja/blog/2020/12/02/dont-panic-kubernetes-and-docker/)をご覧ください。
20+
21+
[dockershim削除の影響範囲を確認する](/ja/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-removal-affects-you/)をお読みいただくことで、
22+
dockershimの削除があなたやあなたの組織に与える影響をご判断いただけます。
23+
24+
Kubernetes 1.24リリースに至るまでの間、Kubernetesコントリビューターはこの移行を円滑に行えるようにするために尽力してきました。
25+
26+
- 私たちの[コミットメントと次のステップ](/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/)を詳述したブログ記事。
27+
- [他のコンテナランタイム](/ja/docs/setup/production-environment/container-runtimes/#container-runtimes)への移行に大きな障害があるかどうかのチェック。
28+
- [dockershimからの移行](/ja/docs/tasks/administer-cluster/migrating-from-dockershim/)ガイドの追加。
29+
- [dockershimの削除とCRI互換ランタイムの使用に関する記事一覧](/docs/reference/node/topics-on-dockershim-and-cri-compatible-runtimes/)の作成。
30+
このリストには、上に示した文書の一部が含まれており、また、厳選された外部の情報(ベンダーによるガイドを含む)もカバーしています。
31+
32+
### dockershimはなぜKubernetesから削除されたのですか?
33+
34+
Kubernetesの初期のバージョンは、特定のコンテナランタイム上でのみ動作しました。
35+
Docker Engineです。その後、Kubernetesは他のコンテナランタイムと連携するためのサポートを追加しました。
36+
オーケストレーター(Kubernetesなど)と多くの異なるコンテナランタイムの間の相互運用を可能にするため、
37+
CRI標準が[作成](/blog/2016/12/container-runtime-interface-cri-in-kubernetes/)されました。
38+
Docker Engineはそのインターフェイス(CRI)を実装していないため、Kubernetesプロジェクトは移行を支援する特別なコードを作成し、
39+
その _dockershim_ コードをKubernetes自身の一部としました。
40+
41+
dockershimコードは常に一時的な解決策であることを意図されていました(このためshimと名付けられています)。
42+
コミュニティでの議論や計画については、[dockershimの削除によるKubernetes改良の提案][drkep]にてお読みいただけます。
43+
44+
実際、dockershimのメンテナンスはKubernetesメンテナーにとって大きな負担になっていました。
45+
46+
さらに、dockershimとほとんど互換性のなかった機能、たとえばcgroups v2やユーザーネームスペースなどが、
47+
これらの新しいCRIランタイムに実装されています。Kubernetesからdockershimを削除することで、これらの分野でのさらなる開発が可能になります。
48+
49+
[drkep]: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2221-remove-dockershim
50+
51+
### Dockerとコンテナは同じものですか?
52+
53+
DockerはLinuxのコンテナパターンを普及させ、その基盤技術の発展に寄与してきましたが、
54+
Linuxのコンテナ技術そのものはかなり以前から存在しています。
55+
また、コンテナエコシステムはDockerを超えてより広範に発展してきました。
56+
OCIやCRIのような標準は、Dockerの機能の一部を置き換えたり、既存の機能を強化したりすることで、
57+
私達のエコシステムの多くのツールの成長と繁栄を助けてきました。
58+
59+
### 既存のコンテナイメージは引き続き使えるのですか?
60+
61+
はい、`docker build`から生成されるイメージは、全てのCRI実装で動作します。
62+
既存のイメージも全く同じように動作します。
63+
64+
### プライベートイメージについてはどうでしょうか?
65+
66+
はい、すべてのCRIランタイムはKubernetesで使われているものと同一のpull secretsをサポートしており、
67+
PodSpecまたはService Accountを通して利用できます。
68+
69+
### Kubernetes 1.23でDocker Engineを引き続き使用できますか?
70+
71+
はい、1.20で変更されたのは、Docker Engineランタイムを使用している場合に警告ログが[kubelet]起動時に出るようになったことだけです。
72+
この警告は、1.23までのすべてのバージョンで表示されます。
73+
dockershimの削除はKubernetes 1.24で行われました。
74+
75+
Kubernetes v1.24以降を実行している場合は、[Docker Engineを引き続きコンテナランタイムとして利用できますか?](#can-i-still-use-docker-engine-as-my-container-runtime)をご覧ください。
76+
(CRIがサポートされているKubernetesリリースを使用している場合、dockershimから切り替えることができることを忘れないでください。
77+
リリースv1.24からはKubernetesにdockershimが含まれなくなったため、**必ず**切り替えなければなりません)。
78+
79+
[kubelet]: /docs/reference/command-line-tools-reference/kubelet/
80+
81+
### どのCRIの実装を使うべきでしょうか?
82+
83+
これは難しい質問で、様々な要素に依存します。
84+
もしDocker Engineがうまく動いているのであれば、containerdに移行するのは比較的簡単で、
85+
性能もオーバーヘッドも確実に改善されるでしょう。
86+
しかし、他の選択のほうがあなたの環境により適合する場合もありますので、
87+
[CNCF landscape]にあるすべての選択肢を検討されることをおすすめします。
88+
89+
[CNCF landscape]: https://landscape.cncf.io/card-mode?category=container-runtime&grouping=category
90+
91+
#### Docker Engineを引き続きコンテナランタイムとして利用できますか? {#can-i-still-use-docker-engine-as-my-container-runtime}
92+
93+
第一に、ご自身のPCで開発やテスト用途でDockerを使用している場合、何も変わることはありません。
94+
Kubernetesでどのコンテナランタイムを使っていても、Dockerをローカルで使い続けることができます。
95+
コンテナではこのような相互運用性を実現できます。
96+
97+
MirantisとDockerは、Kubernetesから内蔵のdockershimが削除された後も、
98+
Docker Engineの代替アダプターを維持することに[コミット][mirantis]しています。
99+
代替アダプターの名前は[`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)です。
100+
101+
`cri-dockerd`をインストールして、kubeletをDocker Engineに接続するために使用することができます。
102+
詳細については、[Migrate Docker Engine nodes from dockershim to cri-dockerd](/docs/tasks/administer-cluster/migrating-from-dockershim/migrate-dockershim-dockerd/)を読んでください。
103+
104+
[mirantis]: https://www.mirantis.com/blog/mirantis-to-take-over-support-of-kubernetes-dockershim-2/
105+
106+
### 今現在でプロダクション環境に他のランタイムを使用している例はあるのでしょうか?
107+
108+
Kubernetesプロジェクトが生み出したすべての成果物(Kubernetesバイナリ)は、リリースごとに検証されています。
109+
110+
また、[kind]プロジェクトは以前からcontainerdを使っており、プロジェクトのユースケースにおいて安定性が向上してきています。
111+
kindとcontainerdは、Kubernetesコードベースの変更を検証するために毎日何回も利用されています。
112+
他の関連プロジェクトも同様のパターンを追っており、他のコンテナランタイムの安定性と使いやすさが示されています。
113+
例として、OpenShift 4.xは2019年6月以降、CRI-Oランタイムをプロダクション環境で使っています。
114+
115+
他の事例や参考資料はについては、
116+
containerdとCRI-O(Cloud Native Computing Foundation ([CNCF])の2つのコンテナランタイム)の採用例をご覧ください。
117+
118+
- [containerd](https://github.com/containerd/containerd/blob/master/ADOPTERS.md)
119+
- [CRI-O](https://github.com/cri-o/cri-o/blob/master/ADOPTERS.md)
120+
121+
[CRI-O]: https://cri-o.io/
122+
[kind]: https://kind.sigs.k8s.io/
123+
[CNCF]: https://cncf.io
124+
125+
### OCIという単語をよく見るのですが、これは何ですか?
126+
127+
OCIは[Open Container Initiative]の略で、コンテナツールとテクノロジー間の数多くのインターフェースの標準化を行った団体です。
128+
彼らはコンテナイメージをパッケージするための標準仕様(OCI image-spec)と、
129+
コンテナを実行するための標準仕様(OCI runtime-spec)をメンテナンスしています。
130+
また、[runc]という形でruntime-specの実装もメンテナンスしており、
131+
これは[containerd][CRI-O]の両方でデフォルトの下位ランタイムとなっています。
132+
CRIはこれらの低レベル仕様に基づいて、コンテナを管理するためのエンドツーエンドの標準を提供します。
133+
134+
[Open Container Initiative]: https://opencontainers.org/about/overview/
135+
[runc]: https://github.com/opencontainers/runc
136+
[containerd]: https://containerd.io/
137+
138+
### CRI実装を変更する際に注意すべきことは何ですか?
139+
140+
DockerとほとんどのCRI(containerdを含む)において、下位で使用されるコンテナ化コードは同じものですが、
141+
いくつかの細かい違いが存在します。移行する際に考慮すべき一般的な事項は次のとおりです。
142+
143+
- ログ設定
144+
- ランタイムリソースの制限
145+
- ノード構成スクリプトでdockerコマンドやコントロールソケット経由でDocker Engineを使用しているもの
146+
- `kubectl`のプラグインで`docker` CLIまたはDocker Engineコントロールソケットが必要なもの
147+
- KubernetesプロジェクトのツールでDocker Engineへの直接アクセスが必要なもの(例:廃止された`kube-imagepuller`ツール)
148+
- `registry-mirrors`やinsecureレジストリなどの機能の設定
149+
- その他の支援スクリプトやデーモンでDocker Engineが利用可能であることを想定していてKubernetes外で実行されるもの(モニタリング・セキュリティエージェントなど)
150+
- GPUまたは特別なハードウェア、そしてランタイムおよびKubernetesとそれらハードウェアの統合方法
151+
152+
あなたがKubernetesのリソース要求/制限やファイルベースのログ収集DaemonSetを使用しているのであれば、それらは問題なく動作し続けますが、
153+
`dockerd`の設定をカスタマイズしていた場合は、それを新しいコンテナランタイムに適合させる必要があるでしょう。
154+
155+
他に注意することとしては、システムメンテナンスを実行するようなものや、コンテナ内でイメージをビルドするようなものが動作しなくなります。
156+
前者の場合は、[`crictl`][cr]ツールをdrop-inの置き換えとして使用できます([docker cliからcrictlへのマッピング](https://kubernetes.io/ja/docs/tasks/debug/debug-cluster/crictl/#docker-cli%E3%81%8B%E3%82%89crictl%E3%81%B8%E3%81%AE%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0)を参照)。
157+
後者の場合は、[img][buildah][kaniko][buildkit-cli-for-kubectl]のようなDockerを必要としない新しいコンテナビルドの選択肢を使用できます。
158+
159+
[cr]: https://github.com/kubernetes-sigs/cri-tools
160+
[img]: https://github.com/genuinetools/img
161+
[buildah]: https://github.com/containers/buildah
162+
[kaniko]: https://github.com/GoogleContainerTools/kaniko
163+
[buildkit-cli-for-kubectl]: https://github.com/vmware-tanzu/buildkit-cli-for-kubectl
164+
165+
containerdを使っているのであれば、[ドキュメント]を参照して、移行するのにどのような構成が利用可能かを確認するところから始めるといいでしょう。
166+
167+
[ドキュメント]: https://github.com/containerd/cri/blob/master/docs/registry.md
168+
169+
containerdとCRI-OをKubernetesで使用する方法に関しては、[コンテナランタイム]に関するKubernetesのドキュメントを参照してください。
170+
171+
[コンテナランタイム]: /ja/docs/setup/production-environment/container-runtimes/
172+
173+
### さらに質問がある場合どうすればいいでしょうか?
174+
175+
ベンダーサポートのKubernetesディストリビューションを使用している場合、彼らの製品に対するアップグレード計画について尋ねることができます。
176+
エンドユーザーの質問に関しては、[エンドユーザーコミュニティフォーラム](https://discuss.kubernetes.io/)に投稿してください。
177+
178+
dockershimの削除に関する決定については、専用の[GitHub issue](https://github.com/kubernetes/kubernetes/issues/106917)で議論することができます。
179+
180+
変更点に関するより詳細な技術的な議論は、[待ってください、DockerはKubernetesで非推奨になったのですか?][dep]という素晴らしいブログ記事も参照してください。
181+
182+
[dep]: https://dev.to/inductor/wait-docker-is-deprecated-in-kubernetes-now-what-do-i-do-e4m
183+
184+
### dockershimを使っているかどうかを検出できるツールはありますか?
185+
186+
はい![Detector for Docker Socket (DDS)][dds]というkubectlプラグインをインストールすることであなたのクラスターを確認していただけます。
187+
DDSは、アクティブなKubernetesワークロードがDocker Engineソケット(`docker.sock`)をボリュームとしてマウントしているかを検出できます。
188+
さらなる詳細と使用パターンについては、DDSプロジェクトの[README][dds]を参照してください。
189+
190+
[dds]: https://github.com/aws-containers/kubectl-detector-for-docker-socket
191+
192+
### ハグしていただけますか?
193+
194+
はい、私達は引き続きいつでもハグに応じています。🤗🤗🤗

content/ja/docs/tasks/administer-cluster/migrating-from-dockershim/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ dockershimから他のコンテナランタイムに移行する際に知って
1010

1111
Kubernetes 1.20で[dockershim deprecation](blog/2020/12/08/kubernetes-1-20-release-announcement/#dockershim-deprecation)が発表されてから、様々なワークロードやKubernetesインストールにどう影響するのかという質問が寄せられています。
1212

13-
この問題をよりよく理解するために、[Dockershim Deprecation FAQ](/blog/2020/12/02/dockershim-faq/)ブログが役に立つでしょう。
13+
この問題をよりよく理解するために、[dockershimの削除に関するFAQ](/ja/dockershim)ブログが役に立つでしょう。
1414

1515
dockershimから代替のコンテナランタイムに移行することが推奨されます。
1616
[コンテナランタイム](/ja/docs/setup/production-environment/container-runtimes/)のセクションをチェックして、どのような選択肢があるかを確認してください。
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
title: Dockershim非推奨の影響範囲を確認する
2+
title: dockershim削除の影響範囲を確認する
33
content_type: task
44
weight: 20
55
---
66

77
<!-- overview -->
88
Kubernetesの`dockershim`コンポーネントは、DockerをKubernetesの{{< glossary_tooltip text="コンテナランタイム" term_id="container-runtime" >}}として使用することを可能にします。
99

10-
Kubernetesの組み込みコンポーネントである`dockershim`はリリースv1.20で非推奨となりました
10+
Kubernetesの組み込みコンポーネントである`dockershim`はリリースv1.24で削除されました
1111

12-
このページでは、あなたのクラスターがどのようにDockerをコンテナランタイムとして使用しているか、使用中の`dockershim`が果たす役割について詳しく説明し、`dockershim`の廃止によって影響を受けるワークロードがあるかどうかをチェックするためのステップを示します
12+
このページでは、あなたのクラスターがどのようにDockerをコンテナランタイムとして使用しているか、使用中の`dockershim`が果たす役割について詳しく説明し、`dockershim`の削除によって影響を受けるワークロードがあるかどうかをチェックするためのステップを示します
1313

1414
## 自分のアプリがDockerに依存しているかどうかの確認 {#find-docker-dependencies}
1515

content/ja/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ weight: 70
88

99
Kubernetes 1.20でdockershimは非推奨になりました。
1010

11-
[Dockershim Deprecation FAQ](/blog/2020/12/02/dockershim-faq/)から、ほとんどのアプリがコンテナをホストするランタイムに直接依存しないことは既にご存知かもしれません。
11+
[dockershimの削除に関するFAQ](/ja/dockershim)から、ほとんどのアプリがコンテナをホストするランタイムに直接依存しないことは既にご存知かもしれません。
1212
しかし、コンテナのメタデータやログ、メトリクスを収集するためにDockerに依存しているテレメトリーやセキュリティエージェントはまだ多く存在します。
1313
この文書では、これらの依存関係を検出する方法と、これらのエージェントを汎用ツールまたは代替ランタイムに移行する方法に関するリンクを集約しています。
1414

data/i18n/ja/ja.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ other = "現在表示しているのは、次のバージョン向けのドキ
3737
[deprecation_warning]
3838
other = " のドキュメントは積極的にメンテナンスされていません。現在表示されているバージョンはスナップショットです。最新のドキュメントはこちらです: "
3939

40+
[dockershim_message]
41+
other = """dockershimは1.24のリリースをもってKubernetesプロジェクトから削除されました。詳しくは、<a href="/ja/dockershim">dockershimの削除に関するFAQ</a>をご覧ください。"""
42+
4043
[docs_label_browse]
4144
other = "ドキュメントの参照"
4245

0 commit comments

Comments
 (0)