1KUBERNETES(1)(kubernetes) KUBERNETES(1)(kubernetes)
2
3
4
5Eric Paris Jan 2015
6
7
9 kubectl alpha debug - Create debugging sessions for troubleshooting
10 workloads and nodes
11
12
13
15 kubectl alpha debug [OPTIONS]
16
17
18
20 NOTE: "kubectl alpha debug" is deprecated and will be removed in re‐
21 lease 1.21. Please use "kubectl debug" instead.
22
23
24 Debug cluster resources using interactive debugging containers.
25
26
27 'debug' provides automation for common debugging tasks for cluster ob‐
28 jects identified by resource and name. Pods will be used by default if
29 no resource is specified.
30
31
32 The action taken by 'debug' varies depending on what resource is speci‐
33 fied. Supported actions include:
34
35
36 • Workload: Create a copy of an existing pod with certain at‐
37 tributes changed, for example changing the image tag to a new
38 version.
39
40 • Workload: Add an ephemeral container to an already running
41 pod, for example to add debugging utilities without restarting
42 the pod.
43
44 • Node: Create a new pod that runs in the node's host namespaces
45 and can access the node's filesystem.
46
47
48
49
51 --arguments-only=false If specified, everything after -- will be
52 passed to the new container as Args instead of Command.
53
54
55 --attach=false If true, wait for the container to start running,
56 and then attach as if 'kubectl attach ...' were called. Default false,
57 unless '-i/--stdin' is set, in which case the default is true.
58
59
60 -c, --container="" Container name to use for debug container.
61
62
63 --copy-to="" Create a copy of the target Pod with this name.
64
65
66 --env=[] Environment variables to set in the container.
67
68
69 --image="" Container image to use for debug container.
70
71
72 --image-pull-policy="" The image pull policy for the container. If
73 left empty, this value will not be specified by the client and de‐
74 faulted by the server.
75
76
77 --quiet=false If true, suppress informational messages.
78
79
80 --replace=false When used with '--copy-to', delete the original
81 Pod.
82
83
84 --same-node=false When used with '--copy-to', schedule the copy of
85 target Pod on the same node.
86
87
88 --set-image=[] When used with '--copy-to', a list of name=image
89 pairs for changing container images, similar to how 'kubectl set image'
90 works.
91
92
93 --share-processes=true When used with '--copy-to', enable process
94 namespace sharing in the copy.
95
96
97 -i, --stdin=false Keep stdin open on the container(s) in the pod,
98 even if nothing is attached.
99
100
101 --target="" When using an ephemeral container, target processes in
102 this container name.
103
104
105 -t, --tty=false Allocate a TTY for the debugging container.
106
107
108
110 --add-dir-header=false If true, adds the file directory to the
111 header of the log messages
112
113
114 --alsologtostderr=false log to standard error as well as files
115
116
117 --application-metrics-count-limit=100 Max number of application
118 metrics to store (per container)
119
120
121 --as="" Username to impersonate for the operation
122
123
124 --as-group=[] Group to impersonate for the operation, this flag
125 can be repeated to specify multiple groups.
126
127
128 --azure-container-registry-config="" Path to the file containing
129 Azure container registry configuration information.
130
131
132 --boot-id-file="/proc/sys/kernel/random/boot_id" Comma-separated
133 list of files to check for boot-id. Use the first one that exists.
134
135
136 --cache-dir="/builddir/.kube/cache" Default cache directory
137
138
139 --certificate-authority="" Path to a cert file for the certificate
140 authority
141
142
143 --client-certificate="" Path to a client certificate file for TLS
144
145
146 --client-key="" Path to a client key file for TLS
147
148
149 --cloud-provider-gce-l7lb-src-cidrs=130.211.0.0/22,35.191.0.0/16
150 CIDRs opened in GCE firewall for L7 LB traffic proxy health
151 checks
152
153
154 --cloud-provider-gce-lb-src-cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
155 CIDRs opened in GCE firewall for L4 LB traffic proxy health
156 checks
157
158
159 --cluster="" The name of the kubeconfig cluster to use
160
161
162 --container-hints="/etc/cadvisor/container_hints.json" location of
163 the container hints file
164
165
166 --containerd="/run/containerd/containerd.sock" containerd endpoint
167
168
169 --containerd-namespace="k8s.io" containerd namespace
170
171
172 --context="" The name of the kubeconfig context to use
173
174
175 --default-not-ready-toleration-seconds=300 Indicates the tolera‐
176 tionSeconds of the toleration for notReady:NoExecute that is added by
177 default to every pod that does not already have such a toleration.
178
179
180 --default-unreachable-toleration-seconds=300 Indicates the tolera‐
181 tionSeconds of the toleration for unreachable:NoExecute that is added
182 by default to every pod that does not already have such a toleration.
183
184
185 --disable-root-cgroup-stats=false Disable collecting root Cgroup
186 stats
187
188
189 --docker="unix:///var/run/docker.sock" docker endpoint
190
191
192 --docker-env-metadata-whitelist="" a comma-separated list of envi‐
193 ronment variable keys matched with specified prefix that needs to be
194 collected for docker containers
195
196
197 --docker-only=false Only report docker containers in addition to
198 root stats
199
200
201 --docker-root="/var/lib/docker" DEPRECATED: docker root is read
202 from docker info (this is a fallback, default: /var/lib/docker)
203
204
205 --docker-tls=false use TLS to connect to docker
206
207
208 --docker-tls-ca="ca.pem" path to trusted CA
209
210
211 --docker-tls-cert="cert.pem" path to client certificate
212
213
214 --docker-tls-key="key.pem" path to private key
215
216
217 --enable-load-reader=false Whether to enable cpu load reader
218
219
220 --event-storage-age-limit="default=0" Max length of time for which
221 to store events (per type). Value is a comma separated list of key val‐
222 ues, where the keys are event types (e.g.: creation, oom) or "default"
223 and the value is a duration. Default is applied to all non-specified
224 event types
225
226
227 --event-storage-event-limit="default=0" Max number of events to
228 store (per type). Value is a comma separated list of key values, where
229 the keys are event types (e.g.: creation, oom) or "default" and the
230 value is an integer. Default is applied to all non-specified event
231 types
232
233
234 --global-housekeeping-interval=1m0s Interval between global house‐
235 keepings
236
237
238 --housekeeping-interval=10s Interval between container housekeep‐
239 ings
240
241
242 --insecure-skip-tls-verify=false If true, the server's certificate
243 will not be checked for validity. This will make your HTTPS connections
244 insecure
245
246
247 --kubeconfig="" Path to the kubeconfig file to use for CLI re‐
248 quests.
249
250
251 --log-backtrace-at=:0 when logging hits line file:N, emit a stack
252 trace
253
254
255 --log-cadvisor-usage=false Whether to log the usage of the cAdvi‐
256 sor container
257
258
259 --log-dir="" If non-empty, write log files in this directory
260
261
262 --log-file="" If non-empty, use this log file
263
264
265 --log-file-max-size=1800 Defines the maximum size a log file can
266 grow to. Unit is megabytes. If the value is 0, the maximum file size is
267 unlimited.
268
269
270 --log-flush-frequency=5s Maximum number of seconds between log
271 flushes
272
273
274 --logtostderr=true log to standard error instead of files
275
276
277 --machine-id-file="/etc/machine-id,/var/lib/dbus/machine-id"
278 Comma-separated list of files to check for machine-id. Use the
279 first one that exists.
280
281
282 --match-server-version=false Require server version to match
283 client version
284
285
286 -n, --namespace="" If present, the namespace scope for this CLI
287 request
288
289
290 --one-output=false If true, only write logs to their native sever‐
291 ity level (vs also writing to each lower severity level
292
293
294 --password="" Password for basic authentication to the API server
295
296
297 --profile="none" Name of profile to capture. One of
298 (none|cpu|heap|goroutine|threadcreate|block|mutex)
299
300
301 --profile-output="profile.pprof" Name of the file to write the
302 profile to
303
304
305 --referenced-reset-interval=0 Reset interval for referenced bytes
306 (container_referenced_bytes metric), number of measurement cycles after
307 which referenced bytes are cleared, if set to 0 referenced bytes are
308 never cleared (default: 0)
309
310
311 --request-timeout="0" The length of time to wait before giving up
312 on a single server request. Non-zero values should contain a corre‐
313 sponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't time‐
314 out requests.
315
316
317 -s, --server="" The address and port of the Kubernetes API server
318
319
320 --skip-headers=false If true, avoid header prefixes in the log
321 messages
322
323
324 --skip-log-headers=false If true, avoid headers when opening log
325 files
326
327
328 --stderrthreshold=2 logs at or above this threshold go to stderr
329
330
331 --storage-driver-buffer-duration=1m0s Writes in the storage driver
332 will be buffered for this duration, and committed to the non memory
333 backends as a single transaction
334
335
336 --storage-driver-db="cadvisor" database name
337
338
339 --storage-driver-host="localhost:8086" database host:port
340
341
342 --storage-driver-password="root" database password
343
344
345 --storage-driver-secure=false use secure connection with database
346
347
348 --storage-driver-table="stats" table name
349
350
351 --storage-driver-user="root" database username
352
353
354 --tls-server-name="" Server name to use for server certificate
355 validation. If it is not provided, the hostname used to contact the
356 server is used
357
358
359 --token="" Bearer token for authentication to the API server
360
361
362 --update-machine-info-interval=5m0s Interval between machine info
363 updates.
364
365
366 --user="" The name of the kubeconfig user to use
367
368
369 --username="" Username for basic authentication to the API server
370
371
372 -v, --v=0 number for the log level verbosity
373
374
375 --version=false Print version information and quit
376
377
378 --vmodule= comma-separated list of pattern=N settings for
379 file-filtered logging
380
381
382 --warnings-as-errors=false Treat warnings received from the server
383 as errors and exit with a non-zero exit code
384
385
386
388 # Create an interactive debugging session in pod mypod and immediately attach to it.
389 # (requires the EphemeralContainers feature to be enabled in the cluster)
390 kubectl debug mypod -it --image=busybox
391
392 # Create a debug container named debugger using a custom automated debugging image.
393 # (requires the EphemeralContainers feature to be enabled in the cluster)
394 kubectl debug --image=myproj/debug-tools -c debugger mypod
395
396 # Create a copy of mypod adding a debug container and attach to it
397 kubectl debug mypod -it --image=busybox --copy-to=my-debugger
398
399 # Create a copy of mypod changing the command of mycontainer
400 kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh
401
402 # Create a copy of mypod changing all container images to busybox
403 kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox
404
405 # Create a copy of mypod adding a debug container and changing container images
406 kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug
407
408 # Create an interactive debugging session on a node and immediately attach to it.
409 # The container will run in the host namespaces and the host's filesystem will be mounted at /host
410 kubectl debug node/mynode -it --image=busybox
411
412
413
414
416 kubectl-alpha(1),
417
418
419
421 January 2015, Originally compiled by Eric Paris (eparis at redhat dot
422 com) based on the kubernetes source material, but hopefully they have
423 been automatically generated since!
424
425
426
427Manuals User KUBERNETES(1)(kubernetes)