Skip to content

Commit 57becfe

Browse files
committed
feat: translate kubectl-node-debug.md into Japanese
1 parent 95ca859 commit 57becfe

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
title: Kubectlを用いたKubernetesノードのデバッグ
3+
content_type: task
4+
min-kubernetes-server-version: 1.20
5+
---
6+
7+
<!-- overview -->
8+
このページでは、Kubernetesクラスター上で動作している[ノード](/ja/docs/concepts/architecture/nodes/)`kubectl debug`コマンドを使用してデバッグする方法について説明します。
9+
10+
## {{% heading "prerequisites" %}}
11+
12+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
13+
14+
Podを作成し、それらの新しいPodを任意のノードに割り当てる権限が必要です。
15+
また、ホストのファイルシステムにアクセスするPodを作成する権限も必要です。
16+
17+
<!-- steps -->
18+
19+
## `kubectl debug node`を用いてノードをデバッグする
20+
21+
`kubectl debug node`コマンドを使用して、トラブルシューティングしたいノードにPodをデプロイします。
22+
このコマンドは、SSH接続を使用してノードにアクセスできないシナリオで役に立ちます。
23+
Podが作成されると、そのPodはノード上で対話型シェルを開きます。
24+
mynodeという名前のノード上で対話型シェルを作成するには、次のように実行します。
25+
26+
```shell
27+
kubectl debug node/mynode -it --image=ubuntu
28+
```
29+
30+
```console
31+
ノードmynode上に、コンテナデバッガーを持つデバッグ用Pod、node-debugger-mynode-pdx84を作成します。
32+
コマンドプロンプトが表示されない場合は、エンターキーを押してみてください。
33+
root@mynode:/#
34+
```
35+
36+
デバッグコマンドは、情報を収集し、問題をトラブルシューティングするのに役立ちます。
37+
使用する可能性のあるコマンドには、`ip``ifconfig``nc``ping``ps`などがあります。
38+
また、`mtr``tcpdump``curl`などの他のツールもそれぞれのパッケージマネージャーからインストールすることができます。
39+
40+
{{< note >}}
41+
42+
デバッグコマンドは、デバッグ用のPodが使用しているイメージに基づいて異なる場合があり、これらのコマンドをインストールする必要があるかもしれません。
43+
44+
{{< /note >}}
45+
46+
デバッグ用のPodは、Pod内の`/host`にマウントされたノードのルートファイルシステムにアクセスできます。
47+
kubeletをファイルシステムのネームスペースで実行している場合、デバッグ用のPodはそのネームスペースのルートを見ることになり、ノード全体のルートではありません。
48+
典型的なLinuxノードの場合、関連するログを見つけるために以下のパスを確認できます。
49+
50+
`/host/var/log/kubelet.log`
51+
: ノード上でコンテナを実行する責任がある`kubelet`からのログです。
52+
53+
`/host/var/log/kube-proxy.log`
54+
: サービスのエンドポイントへのトラフィックを指示する責任がある`kube-proxy`からのログです。
55+
56+
`/host/var/log/containerd.log`
57+
: ノード上で実行されている`containerd`プロセスからのログです。
58+
59+
`/host/var/log/syslog`
60+
: システムに関する一般的なメッセージや情報です。
61+
62+
`/host/var/log/kern.log`
63+
: カーネルログです。
64+
65+
ノード上でデバッグセッションを作成する際には、以下の点を考慮してください。
66+
67+
* `kubectl debug`は、新しいPodの名前をノードの名前に基づいて自動的に生成します。
68+
* ノードのルートファイルシステムは`/host`にマウントされます。
69+
* コンテナはホストのIPC、ネットワーク、PID Namespaceで実行されますが、Podは特権を持っていません。
70+
これは、一部のプロセス情報の読み取りが失敗する可能性があることを意味します。
71+
その情報へのアクセスはスーパーユーザーに制限されているためです。
72+
例えば、`chroot /host`は失敗します。
73+
特権Podが必要な場合は、手動で作成してください。
74+
75+
## {{% heading "cleanup" %}}
76+
77+
デバッグ用のPodの使用が終了したら、それを削除してください。
78+
79+
```shell
80+
kubectl get pods
81+
```
82+
83+
```none
84+
NAME READY STATUS RESTARTS AGE
85+
node-debugger-mynode-pdx84 0/1 Completed 0 8m1s
86+
```
87+
88+
```shell
89+
# Podの名前は適宜変更してください
90+
kubectl delete pod node-debugger-mynode-pdx84 --now
91+
```
92+
93+
```none
94+
pod "node-debugger-mynode-pdx84" deleted
95+
```
96+
97+
{{< note >}}
98+
99+
ノードがダウンしている場合(ネットワークから切断されている、kubeletが停止して再起動しないなど)、`kubectl debug node`コマンドは機能しません。
100+
その場合は、[ダウンあるいは到達不能なノードのデバッグ](/ja/docs/tasks/debug/debug-cluster/#example-debugging-a-down-unreachable-node)を確認してください。
101+
102+
{{< /note >}}

0 commit comments

Comments
 (0)