Skip to content

Commit 1fd7b52

Browse files
Okabe-Junyaatoato88t-inu
authored
[ja] Following the upstream for content/en/docs/tasks/debug/debug-cluster/_index.md (#44777)
* update: ## overview * update: Listing your cluster * feat: add ### Example: debugging a down/unreachable node * update: ## Looking at logs * update: ## Cluster failure modes * feat: add ## {{% heading "whatsnext" %}} * fix: "Node" to "ノード" * update: L12: add `/` Co-authored-by: atoato88 <[email protected]> * update: L313: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L314: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L315: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L317: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L318: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L319: add `/ja` Co-authored-by: atoato88 <[email protected]> * update: L226 Co-authored-by: inukai <[email protected]> --------- Co-authored-by: atoato88 <[email protected]> Co-authored-by: inukai <[email protected]>
1 parent e54c244 commit 1fd7b52

File tree

1 file changed

+231
-27
lines changed
  • content/ja/docs/tasks/debug/debug-cluster

1 file changed

+231
-27
lines changed

content/ja/docs/tasks/debug/debug-cluster/_index.md

Lines changed: 231 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@ no_list: true
99

1010
このドキュメントはクラスターのトラブルシューティングに関するもので、あなたが経験している問題の根本原因として、アプリケーションをすでに除外していることを前提としています。
1111
アプリケーションのデバッグのコツは、[アプリケーションのトラブルシューティングガイド](/ja/docs/tasks/debug/debug-application/)をご覧ください。
12-
また、[トラブルシューティングドキュメント](/ja/docs/tasks/debug/debug)にも詳しい情報があります。
12+
また、[トラブルシューティングドキュメント](/docs/tasks/debug/)にも詳しい情報があります。
13+
14+
{{<glossary_tooltip text="kubectl" term_id="kubectl">}}のトラブルシューティングについては、[kubectlのトラブルシューティング](/docs/tasks/debug/debug-cluster/troubleshoot-kubectl/)を参照してください。
1315

1416
<!-- body -->
1517

1618
## クラスターのリストアップ
1719

1820
クラスターで最初にデバッグするのは、ノードがすべて正しく登録されているかどうかです。
1921

22+
以下を実行します。
23+
2024
```shell
2125
kubectl get nodes
2226
```
@@ -28,59 +32,249 @@ kubectl get nodes
2832
```shell
2933
kubectl cluster-info dump
3034
```
35+
36+
### 例: ダウンあるいは到達不能なノードのデバッグ
37+
38+
デバッグを行う際、ノードの状態を見ることが有用なことがあります。
39+
たとえば、そのノード上で動作しているPodが奇妙な挙動を示している場合や、なぜPodがそのノードにスケジュールされないのかを知りたい場合などです。
40+
Podと同様に、`kubectl describe node``kubectl get node -o yaml`を使用してノードに関する詳細情報を取得できます。
41+
例えば、ノードがダウンしている(ネットワークから切断されている、またはkubeletが停止して再起動しないなど)場合に見られる状況は以下の通りです。
42+
ノードがNotReadyであることを示すイベントに注意し、また、Podが動作していないことにも注意してください(NotReady状態が5分間続くとPodは追い出されます)。
43+
44+
```shell
45+
kubectl get nodes
46+
```
47+
48+
```none
49+
NAME STATUS ROLES AGE VERSION
50+
kube-worker-1 NotReady <none> 1h v1.23.3
51+
kubernetes-node-bols Ready <none> 1h v1.23.3
52+
kubernetes-node-st6x Ready <none> 1h v1.23.3
53+
kubernetes-node-unaj Ready <none> 1h v1.23.3
54+
```
55+
56+
```shell
57+
kubectl describe node kube-worker-1
58+
```
59+
60+
```none
61+
Name: kube-worker-1
62+
Roles: <none>
63+
Labels: beta.kubernetes.io/arch=amd64
64+
beta.kubernetes.io/os=linux
65+
kubernetes.io/arch=amd64
66+
kubernetes.io/hostname=kube-worker-1
67+
kubernetes.io/os=linux
68+
Annotations: kubeadm.alpha.kubernetes.io/cri-socket: /run/containerd/containerd.sock
69+
node.alpha.kubernetes.io/ttl: 0
70+
volumes.kubernetes.io/controller-managed-attach-detach: true
71+
CreationTimestamp: Thu, 17 Feb 2022 16:46:30 -0500
72+
Taints: node.kubernetes.io/unreachable:NoExecute
73+
node.kubernetes.io/unreachable:NoSchedule
74+
Unschedulable: false
75+
Lease:
76+
HolderIdentity: kube-worker-1
77+
AcquireTime: <unset>
78+
RenewTime: Thu, 17 Feb 2022 17:13:09 -0500
79+
Conditions:
80+
Type Status LastHeartbeatTime LastTransitionTime Reason Message
81+
---- ------ ----------------- ------------------ ------ -------
82+
NetworkUnavailable False Thu, 17 Feb 2022 17:09:13 -0500 Thu, 17 Feb 2022 17:09:13 -0500 WeaveIsUp Weave pod has set this
83+
MemoryPressure Unknown Thu, 17 Feb 2022 17:12:40 -0500 Thu, 17 Feb 2022 17:13:52 -0500 NodeStatusUnknown Kubelet stopped posting node status.
84+
DiskPressure Unknown Thu, 17 Feb 2022 17:12:40 -0500 Thu, 17 Feb 2022 17:13:52 -0500 NodeStatusUnknown Kubelet stopped posting node status.
85+
PIDPressure Unknown Thu, 17 Feb 2022 17:12:40 -0500 Thu, 17 Feb 2022 17:13:52 -0500 NodeStatusUnknown Kubelet stopped posting node status.
86+
Ready Unknown Thu, 17 Feb 2022 17:12:40 -0500 Thu, 17 Feb 2022 17:13:52 -0500 NodeStatusUnknown Kubelet stopped posting node status.
87+
Addresses:
88+
InternalIP: 192.168.0.113
89+
Hostname: kube-worker-1
90+
Capacity:
91+
cpu: 2
92+
ephemeral-storage: 15372232Ki
93+
hugepages-2Mi: 0
94+
memory: 2025188Ki
95+
pods: 110
96+
Allocatable:
97+
cpu: 2
98+
ephemeral-storage: 14167048988
99+
hugepages-2Mi: 0
100+
memory: 1922788Ki
101+
pods: 110
102+
System Info:
103+
Machine ID: 9384e2927f544209b5d7b67474bbf92b
104+
System UUID: aa829ca9-73d7-064d-9019-df07404ad448
105+
Boot ID: 5a295a03-aaca-4340-af20-1327fa5dab5c
106+
Kernel Version: 5.13.0-28-generic
107+
OS Image: Ubuntu 21.10
108+
Operating System: linux
109+
Architecture: amd64
110+
Container Runtime Version: containerd://1.5.9
111+
Kubelet Version: v1.23.3
112+
Kube-Proxy Version: v1.23.3
113+
Non-terminated Pods: (4 in total)
114+
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age
115+
--------- ---- ------------ ---------- --------------- ------------- ---
116+
default nginx-deployment-67d4bdd6f5-cx2nz 500m (25%) 500m (25%) 128Mi (6%) 128Mi (6%) 23m
117+
default nginx-deployment-67d4bdd6f5-w6kd7 500m (25%) 500m (25%) 128Mi (6%) 128Mi (6%) 23m
118+
kube-system kube-proxy-dnxbz 0 (0%) 0 (0%) 0 (0%) 0 (0%) 28m
119+
kube-system weave-net-gjxxp 100m (5%) 0 (0%) 200Mi (10%) 0 (0%) 28m
120+
Allocated resources:
121+
(Total limits may be over 100 percent, i.e., overcommitted.)
122+
Resource Requests Limits
123+
-------- -------- ------
124+
cpu 1100m (55%) 1 (50%)
125+
memory 456Mi (24%) 256Mi (13%)
126+
ephemeral-storage 0 (0%) 0 (0%)
127+
hugepages-2Mi 0 (0%) 0 (0%)
128+
Events:
129+
...
130+
```
131+
132+
```shell
133+
kubectl get node kube-worker-1 -o yaml
134+
```
135+
136+
```yaml
137+
apiVersion: v1
138+
kind: Node
139+
metadata:
140+
annotations:
141+
kubeadm.alpha.kubernetes.io/cri-socket: /run/containerd/containerd.sock
142+
node.alpha.kubernetes.io/ttl: "0"
143+
volumes.kubernetes.io/controller-managed-attach-detach: "true"
144+
creationTimestamp: "2022-02-17T21:46:30Z"
145+
labels:
146+
beta.kubernetes.io/arch: amd64
147+
beta.kubernetes.io/os: linux
148+
kubernetes.io/arch: amd64
149+
kubernetes.io/hostname: kube-worker-1
150+
kubernetes.io/os: linux
151+
name: kube-worker-1
152+
resourceVersion: "4026"
153+
uid: 98efe7cb-2978-4a0b-842a-1a7bf12c05f8
154+
spec: {}
155+
status:
156+
addresses:
157+
- address: 192.168.0.113
158+
type: InternalIP
159+
- address: kube-worker-1
160+
type: Hostname
161+
allocatable:
162+
cpu: "2"
163+
ephemeral-storage: "14167048988"
164+
hugepages-2Mi: "0"
165+
memory: 1922788Ki
166+
pods: "110"
167+
capacity:
168+
cpu: "2"
169+
ephemeral-storage: 15372232Ki
170+
hugepages-2Mi: "0"
171+
memory: 2025188Ki
172+
pods: "110"
173+
conditions:
174+
- lastHeartbeatTime: "2022-02-17T22:20:32Z"
175+
lastTransitionTime: "2022-02-17T22:20:32Z"
176+
message: Weave pod has set this
177+
reason: WeaveIsUp
178+
status: "False"
179+
type: NetworkUnavailable
180+
- lastHeartbeatTime: "2022-02-17T22:20:15Z"
181+
lastTransitionTime: "2022-02-17T22:13:25Z"
182+
message: kubelet has sufficient memory available
183+
reason: KubeletHasSufficientMemory
184+
status: "False"
185+
type: MemoryPressure
186+
- lastHeartbeatTime: "2022-02-17T22:20:15Z"
187+
lastTransitionTime: "2022-02-17T22:13:25Z"
188+
message: kubelet has no disk pressure
189+
reason: KubeletHasNoDiskPressure
190+
status: "False"
191+
type: DiskPressure
192+
- lastHeartbeatTime: "2022-02-17T22:20:15Z"
193+
lastTransitionTime: "2022-02-17T22:13:25Z"
194+
message: kubelet has sufficient PID available
195+
reason: KubeletHasSufficientPID
196+
status: "False"
197+
type: PIDPressure
198+
- lastHeartbeatTime: "2022-02-17T22:20:15Z"
199+
lastTransitionTime: "2022-02-17T22:15:15Z"
200+
message: kubelet is posting ready status. AppArmor enabled
201+
reason: KubeletReady
202+
status: "True"
203+
type: Ready
204+
daemonEndpoints:
205+
kubeletEndpoint:
206+
Port: 10250
207+
nodeInfo:
208+
architecture: amd64
209+
bootID: 22333234-7a6b-44d4-9ce1-67e31dc7e369
210+
containerRuntimeVersion: containerd://1.5.9
211+
kernelVersion: 5.13.0-28-generic
212+
kubeProxyVersion: v1.23.3
213+
kubeletVersion: v1.23.3
214+
machineID: 9384e2927f544209b5d7b67474bbf92b
215+
operatingSystem: linux
216+
osImage: Ubuntu 21.10
217+
systemUUID: aa829ca9-73d7-064d-9019-df07404ad448
218+
```
219+
31220
## ログの確認
32221
33222
今のところ、クラスターをより深く掘り下げるには、関連するマシンにログインする必要があります。
34223
以下は、関連するログファイルの場所です。
35-
(systemdベースのシステムでは、代わりに `journalctl` を使う必要があるかもしれないことに注意してください)
224+
(systemdベースのシステムでは、代わりに`journalctl`を使う必要があるかもしれないことに注意してください)
36225

37-
### マスターノード
226+
### コントロールプレーンノード
38227

39-
* `/var/log/kube-apiserver.log` - APIの提供を担当するAPIサーバーのログ
40-
* `/var/log/kube-scheduler.log` - スケジューリング決定責任者であるスケジューラーのログ
41-
* `/var/log/kube-controller-manager.log` - レプリケーションコントローラーを管理するコントローラーのログ
228+
* `/var/log/kube-apiserver.log` - APIの提供を担当するAPIサーバーのログ
229+
* `/var/log/kube-scheduler.log` - スケジューリング決定責任者であるスケジューラーのログ
230+
* `/var/log/kube-controller-manager.log` - スケジューリングを除く、ほとんどのKubernetes組み込みの{{<glossary_tooltip text="コントローラー" term_id="controller">}}を実行するコンポーネントのログ(スケジューリングはkube-schedulerが担当します)
42231

43232
### ワーカーノード
44233

45-
* `/var/log/kubelet.log` - ノード上でコンテナの実行を担当するKubeletのログ
46-
* `/var/log/kube-proxy.log` - サービスのロードバランシングを担うKube Proxyのログ
234+
* `/var/log/kubelet.log` - ノード上でコンテナの実行を担当するKubeletのログ
235+
* `/var/log/kube-proxy.log` - サービスのロードバランシングを担うKube Proxyのログ
47236

48237
## クラスター障害モードの一般的な概要
49238

50239
これは、問題が発生する可能性のある事柄と、問題を軽減するためにクラスターのセットアップを調整する方法の不完全なリストです。
51240

52241
### 根本的な原因
53242

54-
- VMのシャットダウン
55-
- クラスター内、またはクラスターとユーザー間のネットワークパーティション
56-
- Kubernetesソフトウェアのクラッシュ
57-
- データの損失や永続的ストレージ(GCE PDやAWS EBSボリュームなど)の使用不能
58-
- Kubernetesソフトウェアやアプリケーションソフトウェアの設定ミスなど、オペレーターのミス
243+
- VMのシャットダウン
244+
- クラスター内、またはクラスターとユーザー間のネットワークパーティション
245+
- Kubernetesソフトウェアのクラッシュ
246+
- データの損失や永続的ストレージ(GCE PDやAWS EBSボリュームなど)の使用不能
247+
- Kubernetesソフトウェアやアプリケーションソフトウェアの設定ミスなど、オペレーターのミス
59248

60249
### 具体的なシナリオ
61250

62-
- apiserver VMのシャットダウンまたはapiserverのクラッシュ
251+
- apiserver VMのシャットダウンまたはapiserverのクラッシュ
252+
- その結果
63253
- 新しいPod、サービス、レプリケーションコントローラーの停止、更新、起動ができない
64254
- Kubernetes APIに依存していない限り、既存のPodやサービスは正常に動作し続けるはずです
65-
- apiserverのバックアップストレージが失われた
255+
- apiserverのバックアップストレージが失われた
256+
- その結果
66257
- apiserverが立ち上がらない
67-
- kubeletsは到達できなくなりますが、同じPodを実行し、同じサービスのプロキシを提供し続けます
258+
- kubeletは到達できなくなりますが、同じPodを実行し、同じサービスのプロキシを提供し続けます
68259
- apiserverを再起動する前に、手動でapiserverの状態を回復または再現する必要がある
69-
- サポートサービス(ノードコントローラー、レプリケーションコントローラーマネージャー、スケジューラーなど)VMのシャットダウンまたはクラッシュ
70-
- 現在、これらはapiserverとコロケーションしており、使用できない場合はapiserverと同様の影響があります
71-
- 将来的には、これらも複製されるようになり、同じ場所に配置されない可能性があります
72-
- 独自の永続的な状態を持っていない
73-
74-
- 個別ノード(VMまたは物理マシン)のシャットダウン
260+
- サポートサービス(ノードコントローラー、レプリケーションコントローラーマネージャー、スケジューラーなど)VMのシャットダウンまたはクラッシュ
261+
- 現在、これらはapiserverとコロケーションしており、使用できない場合はapiserverと同様の影響があります
262+
- 将来的には、これらも複製されるようになり、同じ場所に配置されない可能性があります
263+
- 独自の永続的な状態を持っていない
264+
- 個別ノード(VMまたは物理マシン)のシャットダウン
265+
- その結果
75266
- そのノード上のPodの実行を停止
76-
- ネットワークパーティション
267+
- ネットワークパーティション
268+
- その結果
77269
- パーティションAはパーティションBのノードがダウンしていると考え、パーティションBはapiserverがダウンしていると考えています。(マスターVMがパーティションAで終了したと仮定)
78-
- Kubeletソフトウェア障害
270+
- Kubeletソフトウェア障害
271+
- その結果
79272
- クラッシュしたkubeletがノード上で新しいPodを起動できない
80273
- kubeletがPodを削除するかどうか
81274
- ノードが不健全と判定される
82275
- レプリケーションコントローラーが別の場所で新しいPodを起動する
83-
- クラスターオペレーターエラー
276+
- クラスターオペレーターエラー
277+
- その結果
84278
- PodやServiceなどの損失
85279
- apiserverのバックエンドストレージの紛失
86280
- ユーザーがAPIを読めなくなる
@@ -99,10 +293,10 @@ kubectl cluster-info dump
99293
- 異常: コントロールプレーンノードのシャットダウンまたはコントロールプレーンコンポーネント(スケジューラー、APIサーバー、コントローラーマネージャー)のクラッシュ
100294
- 1つ以上のノードまたはコンポーネントの同時故障に耐えることができる
101295
- 異常: APIサーバーのバックアップストレージ(etcdのデータディレクトリーなど)が消失
102-
- HA(高可用性) etcdの構成を想定しています
296+
- HA(高可用性)etcdの構成を想定しています
103297

104298
- 対処法: apiserver PDs/EBS-volumesを定期的にスナップショットする
105-
- 異常: Apiserver のバックエンドストレージが失われる
299+
- 異常: Apiserverのバックエンドストレージが失われる
106300
- 異常: 操作ミスが発生する場合がある
107301
- 異常: Kubernetesのソフトウェアに障害が発生する場合がある
108302

@@ -113,3 +307,13 @@ kubectl cluster-info dump
113307
- 対処法: 予期せぬ再起動に耐えられるように設計されたアプリケーション(コンテナ)
114308
- 異常: ノードのシャットダウン
115309
- 異常: Kubeletソフトウェア障害
310+
311+
## {{% heading "whatsnext" %}}
312+
313+
* [リソースメトリクスパイプライン](/ja/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/)で利用可能なメトリクスについて学ぶ
314+
* [リソース使用状況の監視](/ja/docs/tasks/debug/debug-cluster/resource-usage-monitoring/)に役立つ追加ツールを探す
315+
* Node Problem Detectorを使用して[ノードの健康状態を監視する](/ja/docs/tasks/debug/debug-cluster/monitor-node-health/)
316+
* `kubectl debug node`を使用して[Kubernetesノードをデバッグする](/docs/tasks/debug/debug-cluster/kubectl-node-debug)
317+
* `crictl`を使用して[Kubernetesノードをデバッグする](/ja/docs/tasks/debug/debug-cluster/crictl/)
318+
* [Kubernetesの監査](/ja/docs/tasks/debug/debug-cluster/audit/)に関する詳細な情報を得る
319+
* `telepresence`を使用して[ローカルでサービスを開発・デバッグする](/ja/docs/tasks/debug/debug-cluster/local-debugging/)

0 commit comments

Comments
 (0)