Skip to content

Commit a6eacb6

Browse files
Okabe-Junyat-inu
andauthored
[ja] Translate content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md into Japanese (#44839)
* feat: translate network-plugin.md into Japanese * update: L11 Co-authored-by: inukai <[email protected]> * update: L16 Co-authored-by: inukai <[email protected]> * update: L14 Co-authored-by: inukai <[email protected]> * update: L24 Co-authored-by: inukai <[email protected]> * update: L102 Co-authored-by: inukai <[email protected]> * update: L49 Co-authored-by: inukai <[email protected]> * update: 60 Co-authored-by: inukai <[email protected]> * update: network-plugins.md --------- Co-authored-by: inukai <[email protected]>
1 parent 520e475 commit a6eacb6

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
title: ネットワークプラグイン
3+
content_type: concept
4+
weight: 10
5+
---
6+
7+
8+
<!-- overview -->
9+
10+
Kubernetes {{< skew currentVersion >}}は、クラスターネットワーキングのために[Container Network Interface](https://github.com/containernetworking/cni) (CNI)プラグインをサポートしています。
11+
クラスターと互換性があり、需要に合ったCNIプラグインを使用する必要があります。
12+
様々なプラグイン(オープンソースあるいはクローズドソース)が幅広いKubernetesエコシステムで利用可能です。
13+
14+
[Kubernetesネットワークモデル](/ja/docs/concepts/services-networking/#the-kubernetes-network-model)を実装するには、CNIプラグインが必要です。
15+
16+
[v0.4.0](https://github.com/containernetworking/cni/blob/spec-v0.4.0/SPEC.md)以降のCNI仕様のリリースと互換性のあるCNIプラグインを使用する必要があります。
17+
Kubernetesプロジェクトは、[v1.0.0](https://github.com/containernetworking/cni/blob/spec-v1.0.0/SPEC.md)のCNI仕様と互換性のあるプラグインの使用を推奨しています(プラグインは複数の仕様のバージョンに対応できます)。
18+
19+
<!-- body -->
20+
21+
## インストール
22+
23+
ネットワーキングの文脈におけるコンテナランタイムは、ノード上のデーモンであり、kubelet向けのCRIサービスを提供するように設定されています。
24+
特に、コンテナランタイムは、Kubernetesネットワークモデルを実装するために必要なCNIプラグインを読み込むように設定する必要があります。
25+
26+
{{< note >}}
27+
Kubernetes 1.24以前は、CNIプラグインは`cni-bin-dir``network-plugin`といったコマンドラインパラメーターを使用してkubeletによって管理することもできました。
28+
これらのコマンドラインパラメーターはKubernetes 1.24で削除され、CNIの管理はkubeletの範囲外となりました。
29+
30+
dockershimの削除に伴う問題に直面している場合は、[CNIプラグイン関連のエラーのトラブルシューティング](/docs/tasks/administer-cluster/migrating-from-dockershim/troubleshooting-cni-plugin-related-errors/)を参照してください。
31+
{{< /note >}}
32+
33+
コンテナランタイムがCNIプラグインをどのように管理しているかについての具体的な情報については、そのコンテナランタイムのドキュメントを参照してください。
34+
例えば:
35+
36+
- [containerd](https://github.com/containerd/containerd/blob/main/script/setup/install-cni)
37+
- [CRI-O](https://github.com/cri-o/cri-o/blob/main/contrib/cni/README.md)
38+
39+
CNIプラグインのインストールや管理方法についての具体的な情報については、そのプラグインまたは[ネットワーキングプロバイダー](/ja/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model)のドキュメントを参照してください。
40+
41+
## ネットワークプラグインの要件
42+
43+
44+
### ループバックCNI
45+
46+
Kubernetesネットワークモデルを実装するためにノードにインストールされたCNIプラグインに加えて、Kubernetesはコンテナランタイムにループバックインターフェース`lo`を提供することも要求します。
47+
これは各サンドボックス(Podサンドボックス、VMサンドボックスなど)に使用されます。
48+
ループバックインターフェースの実装は、[CNIループバックプラグイン](https://github.com/containernetworking/plugins/blob/master/plugins/main/loopback/loopback.go)を再利用するか、自分で実装することで達成できます(例: [CRI-Oを用いた例](https://github.com/cri-o/ocicni/blob/release-1.24/pkg/ocicni/util_linux.go#L91))。
49+
50+
### hostPortのサポート
51+
52+
CNIネットワーキングプラグインは`hostPort`をサポートしています。
53+
CNIプラグインチームが提供する公式の[portmap](https://github.com/containernetworking/plugins/tree/master/plugins/meta/portmap)プラグインを使用するか、ポートマッピング(portMapping)機能を持つ独自のプラグインを使用できます。
54+
55+
`hostPort`サポートを有効にする場合、`cni-conf-dir``portMappings capability`を指定する必要があります。
56+
例:
57+
58+
```json
59+
{
60+
"name": "k8s-pod-network",
61+
"cniVersion": "0.4.0",
62+
"plugins": [
63+
{
64+
"type": "calico",
65+
"log_level": "info",
66+
"datastore_type": "kubernetes",
67+
"nodename": "127.0.0.1",
68+
"ipam": {
69+
"type": "host-local",
70+
"subnet": "usePodCidr"
71+
},
72+
"policy": {
73+
"type": "k8s"
74+
},
75+
"kubernetes": {
76+
"kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
77+
}
78+
},
79+
{
80+
"type": "portmap",
81+
"capabilities": {"portMappings": true},
82+
"externalSetMarkChain": "KUBE-MARK-MASQ"
83+
}
84+
]
85+
}
86+
```
87+
88+
### トラフィックシェーピングのサポート
89+
90+
**これは実験的な機能です**
91+
92+
CNIネットワーキングプラグインは、Podの入出力トラフィックシェーピングにも対応しています。
93+
CNIプラグインチームが提供する公式の[bandwidth](https://github.com/containernetworking/plugins/tree/master/plugins/meta/bandwidth)プラグインを使用するか、帯域制御機能を持つ独自のプラグインを使用できます。
94+
95+
トラフィックシェーピングのサポートを有効にする場合、`bandwidth`プラグインをCNIの設定ファイル(デフォルトは`/etc/cni/net.d`)に追加し、バイナリがCNIのbinディレクトリ(デフォルトは`/opt/cni/bin`)に含まれていることを確認する必要があります。
96+
97+
```json
98+
{
99+
"name": "k8s-pod-network",
100+
"cniVersion": "0.4.0",
101+
"plugins": [
102+
{
103+
"type": "calico",
104+
"log_level": "info",
105+
"datastore_type": "kubernetes",
106+
"nodename": "127.0.0.1",
107+
"ipam": {
108+
"type": "host-local",
109+
"subnet": "usePodCidr"
110+
},
111+
"policy": {
112+
"type": "k8s"
113+
},
114+
"kubernetes": {
115+
"kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
116+
}
117+
},
118+
{
119+
"type": "bandwidth",
120+
"capabilities": {"bandwidth": true}
121+
}
122+
]
123+
}
124+
```
125+
126+
これでPodに`kubernetes.io/ingress-bandwidth``kubernetes.io/egress-bandwidth`のアノテーションを追加できます。
127+
例:
128+
129+
```yaml
130+
apiVersion: v1
131+
kind: Pod
132+
metadata:
133+
annotations:
134+
kubernetes.io/ingress-bandwidth: 1M
135+
kubernetes.io/egress-bandwidth: 1M
136+
...
137+
```
138+
139+
## {{% heading "whatsnext" %}}
140+
141+
- [クラスターのネットワーク](/ja/docs/concepts/cluster-administration/networking/)についてさらに学ぶ
142+
- [ネットワークポリシー](/ja/docs/concepts/services-networking/network-policies/)についてさらに学ぶ
143+
- [CNIプラグインに関連するエラーのトラブルシューティング](/docs/tasks/administer-cluster/migrating-from-dockershim/troubleshooting-cni-plugin-related-errors/)について学ぶ

0 commit comments

Comments
 (0)