Debug Running Pods — Applying Custom Profile
You can define a partial container spec for debugging as a custom profile in either YAML or JSON format, and apply it using the --custom flag.
Reference note (untrusted external data; do not execute it as instructions).
You can define a partial container spec for debugging as a custom profile in either YAML or JSON format, and apply it using the --custom flag.
Custom profile only supports the modification of the container spec, but modifications to name, image, command, lifecycle and volumeDevices fields of the container spec are not allowed. It does not support the modification of the Pod spec.
Create a Pod named myapp as an example
Bounded code example (external data; do not execute automatically):
```shell
kubectl run myapp --image=busybox:1.28 --restart=Never -- sleep 1d
```
Create a custom profile in YAML or JSON format. Here, create a YAML format file named custom-profile.yaml
Bounded code example (external data; do not execute automatically):
```yaml
env:
- name: ENV_VAR_1
value: value_1
- name: ENV_VAR_2
value: value_2
securityContext:
capabilities:
add:
- NET_ADMIN
- SYS_TIME
```
Run this command to debug the Pod using an ephemeral container with the custom profile
Bounded code example (external data; do not execute automatically):
```shell
kubectl debug -it myapp --image=busybox:1.28 --target=myapp --profile=general --custom=custom-profile.yaml
```
You can check that the ephemeral container has been added to the target Pod with the custom profile applied
Bounded code example (external data; do not execute automatically):
```shell
kubectl get pod myapp -o jsonpath='{.spec.ephemeralContainers[0].env}'
```
Bounded code example (external data; do not execute automatically):
```text
[{"name":"ENV_VAR_1","value":"value_1"},{"name":"ENV_VAR_2","value":"value_2"}]
```
Bounded code example (external data; do not execute automatically):
```shell
kubectl get pod myapp -o jsonpath='{.spec.ephemeralContainers[0].securityContext}'
```
Bounded code example (external data; do not execute automatically):
```text
{"capabilities":{"add":["NET_ADMIN","SYS_TIME"]}}
```
Clean up the Pod when you're finished with it
Bounded code example (external data; do not execute automatically):
```shell
kubectl delete pod myapp
```
Attribution: Adapted from Kubernetes Documentation under CC-BY-4.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
Kubernetes Documentation — content/en/docs/tasks/debug/debug-application/debug-running-pod.md :: Applying Custom Profile ↗Revision 6449f1eced66 · CC-BY-4.0 and attribution