Skip to content

Commit f29f4a5

Browse files
[ja] Add description about debugging profile (#47050)
* add description about debugging profile * Update content/ja/docs/tasks/debug/debug-application/debug-running-pod.md Co-authored-by: Kohei Ota (inductor) <[email protected]> --------- Co-authored-by: Kohei Ota (inductor) <[email protected]>
1 parent 97a0575 commit f29f4a5

File tree

2 files changed

+80
-4
lines changed

2 files changed

+80
-4
lines changed

content/ja/docs/tasks/debug/debug-application/debug-running-pod.md

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ kubectl delete pod myapp myapp-debug
623623

624624
## ノード上のシェルによるデバッグ {#node-shell-session}
625625

626-
いずれの方法でもうまくいかない場合は、Podが動作しているノードを探し出し、ホストの名前空間で動作する特権Podを作成します
626+
いずれの方法でもうまくいかない場合は、Podが動作しているノードを探し出し、ホストの名前空間で動作するデバッグ用のPodを作成します
627627
ノード上で`kubectl debug`を使って対話型のシェルを作成するには、以下を実行します:
628628

629629
```shell
@@ -639,11 +639,86 @@ root@ek8s:/#
639639
ノードでデバッグセッションを作成する場合、以下の点に注意してください:
640640

641641
* `kubectl debug`はノードの名前に基づいて新しいPodの名前を自動的に生成します。
642-
* コンテナはホストのIPC、Network、PIDネームスペースで実行されます。
643642
* ノードのルートファイルシステムは`/host`にマウントされます。
643+
* コンテナはホストのIPC、Network、PIDネームスペースで実行されますが、特権は付与されません。そのため、ホスト上のプロセス情報の参照や、`chroot /host`の実行に失敗する場合があります。
644+
* 特権が必要な場合は手動でPodを作成するか、`--profile=sysadmin`を使用してください。
644645

645646
デバッグが終わったら、Podの後始末をするのを忘れないでください:
646647

647648
```shell
648649
kubectl delete pod node-debugger-mynode-pdx84
649650
```
651+
652+
## デバッグプロファイルの使用 {#debugging-profiles}
653+
654+
`kubectl debug`でノードやPodをデバッグする場合、デバッグ用のPod、エフェメラルコンテナ、またはコピーされたPodに`--profile`フラグを使用してデバッグプロファイルを適用できます。
655+
デバッグプロファイルを適用することで、[securityContext](/ja/docs/tasks/configure-pod-container/security-context/)など特定のプロパティが設定され、さまざまなシナリオに適応できるようになります。
656+
657+
使用可能なデバッグプロファイルは以下の通りです:
658+
659+
| Profile | Description |
660+
| ------------ | --------------------------------------------------------------- |
661+
| legacy | v1.22と互換性を保つプロパティのセット |
662+
| general | 各デバッグシナリオに対応する汎用的なプロパティのセット |
663+
| baseline | [PodSecurityStandard baseline policy](/ja/docs/concepts/security/pod-security-standards/#ベースライン-デフォルト) に準拠したプロパティのセット |
664+
| restricted | [PodSecurityStandard restricted policy](/ja/docs/concepts/security/pod-security-standards/#制限)に準拠したプロパティのセット |
665+
| netadmin | ネットワーク管理者権限を含むプロパティのセット |
666+
| sysadmin | システム管理者(root)権限を含むプロパティのセット |
667+
668+
669+
{{< note >}}
670+
もし`--profile`を指定しない場合、デフォルトで`legacy`プロファイルが使用されます。
671+
`legacy`プロファイルは将来的に廃止される予定であるため、`general`プロファイルなどの他のプロファイルを使用することを推奨します。
672+
{{< /note >}}
673+
674+
例えば、`myapp`という名前のPodを作成し、デバッグを行います:
675+
676+
```shell
677+
kubectl run myapp --image=busybox:1.28 --restart=Never -- sleep 1d
678+
```
679+
680+
エフェメラルコンテナを使用して、Podをデバッグします。
681+
エフェメラルコンテナに特権が必要な場合は、`sysadmin`プロファイルを使用できます:
682+
683+
```shell
684+
kubectl debug -it myapp --image=busybox:1.28 --target=myapp --profile=sysadmin
685+
```
686+
687+
```
688+
Targeting container "myapp". If you don't see processes from this container it may be because the container runtime doesn't support this feature.
689+
Defaulting debug container name to debugger-6kg4x.
690+
If you don't see a command prompt, try pressing enter.
691+
/ #
692+
```
693+
694+
コンテナで次のコマンドを実行して、エフェメラルコンテナプロセスのケーパビリティを確認します:
695+
696+
```shell
697+
/ # grep Cap /proc/$$/status
698+
```
699+
700+
```
701+
...
702+
CapPrm: 000001ffffffffff
703+
CapEff: 000001ffffffffff
704+
...
705+
```
706+
707+
この結果は、`sysadmin`プロファイルを適用したことで、エフェメラルコンテナプロセスに特権が付与されていることを示しています。
708+
詳細は[コンテナにケーパビリティを設定する](/ja/docs/tasks/configure-pod-container/security-context/#コンテナにケーパビリティを設定する)を参照してください。
709+
710+
エフェメラルコンテナが特権コンテナであることは、次のコマンドからも確認できます:
711+
712+
```shell
713+
kubectl get pod myapp -o jsonpath='{.spec.ephemeralContainers[0].securityContext}'
714+
```
715+
716+
```
717+
{"privileged":true}
718+
```
719+
720+
確認が終わったらPodを削除します:
721+
722+
```shell
723+
kubectl delete pod myapp
724+
```

content/ja/docs/tasks/debug/debug-cluster/kubectl-node-debug.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ kubectl debug node/mynode -it --image=ubuntu
2828
```
2929

3030
```console
31-
ノードmynode上に、コンテナデバッガーを持つデバッグ用Pod、node-debugger-mynode-pdx84を作成します。
31+
mynodeという名前のノード上に、コンテナデバッガーを持つデバッグの用Pod、node-debugger-mynode-pdx84を作成します。
3232
コマンドプロンプトが表示されない場合は、エンターキーを押してみてください。
3333
root@mynode:/#
3434
```
@@ -70,7 +70,8 @@ kubeletをファイルシステムのネームスペースで実行している
7070
これは、一部のプロセス情報の読み取りが失敗する可能性があることを意味します。
7171
その情報へのアクセスはスーパーユーザーに制限されているためです。
7272
例えば、`chroot /host`は失敗します。
73-
特権Podが必要な場合は、手動で作成してください。
73+
特権Podが必要な場合は、手動で作成するか、`--profile=sysadmin`を使用してください。
74+
* デバッグ用のPodに[デバッグプロファイル](/ja/docs/tasks/debug/debug-application/debug-running-pod/#debugging-profiles)を適用することで、[securityContext](/ja/docs/tasks/configure-pod-container/security-context/)などの特定のプロパティを設定できます。
7475

7576
## {{% heading "cleanup" %}}
7677

0 commit comments

Comments
 (0)