@@ -649,12 +649,16 @@ root@ek8s:/#
649
649
kubectl delete pod node-debugger-mynode-pdx84
650
650
```
651
651
652
- ## デバッグプロファイルの使用 {#debugging-profiles}
652
+ ## デバッグプロファイルを使用したPodやNodeのデバッグ {#debugging-profiles}
653
+ ` kubectl debug ` でノードやPodをデバッグする場合、デバッグ用のPod、エフェメラルコンテナ、またはコピーされたPodにデバッグプロファイルを適用できます。
654
+ デバッグプロファイルを適用することで、[ securityContext] ( /ja/docs/tasks/configure-pod-container/security-context/ ) など特定のプロパティが設定され、
655
+ さまざまなシナリオに適応できるようになります。
656
+ デバッグプロファイルにはスタティックプロファイルとカスタムプロファイルの2種類があります。
653
657
654
- ` kubectl debug ` でノードやPodをデバッグする場合、デバッグ用のPod、エフェメラルコンテナ、またはコピーされたPodに` --profile ` フラグを使用してデバッグプロファイルを適用できます。
655
- デバッグプロファイルを適用することで、[ securityContext] ( /ja/docs/tasks/configure-pod-container/security-context/ ) など特定のプロパティが設定され、さまざまなシナリオに適応できるようになります。
658
+ ### スタティックプロファイルの適用 {#static-profiles}
659
+ スタティックプロファイルは事前に定義されたプロパティの組み合わせで構成され、` --profile ` フラグを使用して適用できます。
660
+ 使用可能なスタティックプロファイルは以下の通りです:
656
661
657
- 使用可能なデバッグプロファイルは以下の通りです:
658
662
659
663
| Profile | Description |
660
664
| ------------ | --------------------------------------------------------------- |
@@ -719,6 +723,71 @@ kubectl get pod myapp -o jsonpath='{.spec.ephemeralContainers[0].securityContext
719
723
720
724
確認が終わったらPodを削除します:
721
725
726
+ ``` shell
727
+ kubectl delete pod myapp
728
+ ```
729
+
730
+ ### カスタムプロファイルの適用 {#custom-profiles}
731
+
732
+ {{< feature-state for_k8s_version="v1.31" state="beta" >}}
733
+
734
+ デバッグに使用するコンテナのspecをYAMLまたはJSON形式でカスタムプロファイルとして定義し、` --custom ` フラグを使用して適用できます。
735
+
736
+ {{< note >}}
737
+ カスタムプロファイルはコンテナのspecの変更のみをサポートしていますが、` name ` , ` image ` , ` command ` , ` lifecycle `
738
+ および ` volumeDevices ` フィールドの変更は許可されません。
739
+ また、Podのspecの変更もサポートされていません。
740
+ {{< /note >}}
741
+
742
+ 例えば、` myapp ` という名前のPodを作成します:
743
+
744
+ ``` shell
745
+ kubectl run myapp --image=busybox:1.28 --restart=Never -- sleep 1d
746
+ ```
747
+
748
+ YAMLまたはJSON形式でカスタムプロファイルを作成します。
749
+ ここでは、` custom-profile.yaml ` という名前のYAML形式のファイルを作成します:
750
+
751
+ ``` yaml
752
+ env :
753
+ - name : ENV_VAR_1
754
+ value : value_1
755
+ - name : ENV_VAR_2
756
+ value : value_2
757
+ securityContext :
758
+ capabilities :
759
+ add :
760
+ - NET_ADMIN
761
+ - SYS_TIME
762
+
763
+ ```
764
+
765
+ 次のコマンドを実行することで、エフェメラルコンテナにカスタムプロファイルを適用し、Podをデバッグします:
766
+
767
+ ``` shell
768
+ kubectl debug -it myapp --image=busybox:1.28 --target=myapp --profile=general --custom=custom-profile.yaml
769
+ ```
770
+
771
+ Podにカスタムプロファイルが適用された状態のエフェメラルコンテナが追加されたことを確認できます:
772
+
773
+ ``` shell
774
+ kubectl get pod myapp -o jsonpath=' {.spec.ephemeralContainers[0].env}'
775
+ ```
776
+
777
+ ```
778
+ [{"name":"ENV_VAR_1","value":"value_1"},{"name":"ENV_VAR_2","value":"value_2"}]
779
+ ```
780
+
781
+ ``` shell
782
+ kubectl get pod myapp -o jsonpath=' {.spec.ephemeralContainers[0].securityContext}'
783
+ ```
784
+
785
+ ```
786
+ {"capabilities":{"add":["NET_ADMIN","SYS_TIME"]}}
787
+ ```
788
+
789
+ 確認が終わったらPodを削除します:
790
+
722
791
``` shell
723
792
kubectl delete pod myapp
724
793
```
0 commit comments