Skip to content

Commit d8746d8

Browse files
authored
Merge pull request #23176 from shuuji3/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity
Translate tasks/configure-pod-container/assign-pods-nodes-using-node-affinity into Japanese
2 parents 10c92f4 + 006a582 commit d8746d8

File tree

3 files changed

+152
-0
lines changed

3 files changed

+152
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: Node Affinityを利用してPodをノードに割り当てる
3+
min-kubernetes-server-version: v1.10
4+
content_type: task
5+
weight: 120
6+
---
7+
8+
<!-- overview -->
9+
このページでは、Node Affinityを利用して、PodをKubernetesクラスター内の特定のノードに割り当てる方法を説明します。
10+
11+
12+
## {{% heading "prerequisites" %}}
13+
14+
15+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
16+
17+
18+
19+
<!-- steps -->
20+
21+
## ノードにラベルを追加する
22+
23+
1. クラスター内のノードを一覧表示して、ラベルを確認します。
24+
25+
```shell
26+
kubectl get nodes --show-labels
27+
```
28+
29+
出力は次のようになります。
30+
31+
```shell
32+
NAME STATUS ROLES AGE VERSION LABELS
33+
worker0 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker0
34+
worker1 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker1
35+
worker2 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker2
36+
```
37+
1. ノードを選択して、ラベルを追加します。
38+
39+
```shell
40+
kubectl label nodes <your-node-name> disktype=ssd
41+
```
42+
43+
ここで、`<your-node-name>`は選択したノードの名前で置換します。
44+
45+
1. 選択したノードに`disktype=ssd`ラベルがあることを確認します。
46+
47+
```shell
48+
kubectl get nodes --show-labels
49+
```
50+
51+
出力は次のようになります。
52+
53+
```
54+
NAME STATUS ROLES AGE VERSION LABELS
55+
worker0 Ready <none> 1d v1.13.0 ...,disktype=ssd,kubernetes.io/hostname=worker0
56+
worker1 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker1
57+
worker2 Ready <none> 1d v1.13.0 ...,kubernetes.io/hostname=worker2
58+
```
59+
60+
この出力を見ると、`worker0`ノードに`disktype=ssd`というラベルが追加されたことがわかります。
61+
62+
## required node affinityを使用してPodをスケジューリングする
63+
64+
以下に示すマニフェストには、`requiredDuringSchedulingIgnoredDuringExecution``disktype: ssd`というnode affinityを使用したPodが書かれています。このように書くと、Podは`disktype=ssd`というラベルを持つノードにだけスケジューリングされるようになります。
65+
66+
{{< codenew file="pods/pod-nginx-required-affinity.yaml" >}}
67+
68+
1. マニフェストを適用して、選択したノード上にスケジューリングされるPodを作成します。
69+
70+
```shell
71+
kubectl apply -f https://k8s.io/examples/pods/pod-nginx-required-affinity.yaml
72+
```
73+
74+
1. Podが選択したノード上で実行されていることを確認します。
75+
76+
```shell
77+
kubectl get pods --output=wide
78+
```
79+
80+
出力は次のようになります。
81+
82+
```
83+
NAME READY STATUS RESTARTS AGE IP NODE
84+
nginx 1/1 Running 0 13s 10.200.0.4 worker0
85+
```
86+
87+
## preferred node affinityを使用してPodをスケジューリングする
88+
89+
以下に示すマニフェストには、`preferredDuringSchedulingIgnoredDuringExecution``disktype: ssd`というnode affinityを使用したPodが書かれています。このように書くと、Podは`disktype=ssd`というラベルを持つノードに優先的にスケジューリングされるようになります。
90+
91+
{{< codenew file="pods/pod-nginx-preferred-affinity.yaml" >}}
92+
93+
1. マニフェストを適用して、選択したノード上にスケジューリングされるPodを作成します。
94+
95+
```shell
96+
kubectl apply -f https://k8s.io/examples/pods/pod-nginx-preferred-affinity.yaml
97+
```
98+
99+
1. Podが選択したノード上で実行されていることを確認します。
100+
101+
```shell
102+
kubectl get pods --output=wide
103+
```
104+
105+
出力は次のようになります。
106+
107+
```
108+
NAME READY STATUS RESTARTS AGE IP NODE
109+
nginx 1/1 Running 0 13s 10.200.0.4 worker0
110+
```
111+
112+
## {{% heading "whatsnext" %}}
113+
114+
[Node Affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity)についてさらに学ぶ。
115+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: nginx
5+
spec:
6+
affinity:
7+
nodeAffinity:
8+
preferredDuringSchedulingIgnoredDuringExecution:
9+
- weight: 1
10+
preference:
11+
matchExpressions:
12+
- key: disktype
13+
operator: In
14+
values:
15+
- ssd
16+
containers:
17+
- name: nginx
18+
image: nginx
19+
imagePullPolicy: IfNotPresent
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: nginx
5+
spec:
6+
affinity:
7+
nodeAffinity:
8+
requiredDuringSchedulingIgnoredDuringExecution:
9+
nodeSelectorTerms:
10+
- matchExpressions:
11+
- key: disktype
12+
operator: In
13+
values:
14+
- ssd
15+
containers:
16+
- name: nginx
17+
image: nginx
18+
imagePullPolicy: IfNotPresent

0 commit comments

Comments
 (0)