Recommended usage conventions for kubectl
.
kubectl
in Reusable ScriptsFor a stable output in a script:
-o name
, -o json
, -o yaml
, -o go-template
, or -o jsonpath
.jobs.v1.batch/myjob
. This will ensure that kubectl does not use its default version that can change over time.kubectl run
For kubectl run
to satisfy infrastructure as code:
:v1234
, v1.2.3
, r03062016-1-4
, rather than :latest
(For more information, see Best Practices for Configuration).--record
to annotate the created objects with the command line for an image that is lightly parameterized.kubectl run
flags.Resource | api group | kubectl command |
---|---|---|
Pod | v1 | |
Replication controller (deprecated) | v1 | |
Deployment (deprecated) | extensions/v1beta1 | |
Deployment (deprecated) | apps/v1beta1 | |
Job (deprecated) | batch/v1 | |
CronJob (deprecated) | batch/v1beta1 | |
CronJob (deprecated) | batch/v2alpha1 |
Generated Resource | Cluster v1.4 and later | Cluster v1.3 | Cluster v1.2 | Cluster v1.1 and earlier |
---|---|---|---|---|
Pod | --restart=Never |
--restart=Never |
--restart=OnFailure OR --restart=Never |
|
Replication Controller | --restart=Always |
|||
Deployment | --restart=Always |
--restart=Always |
--restart=Always |
N/A |
Job | --restart=OnFailure |
--restart=OnFailure |
--restart=OnFailure OR --restart=Never |
N/A |
Cron Job | --schedule=<cron> |
N/A | N/A | N/A |
--restart=Always
, a Deployment is created; if you later specify--restart=Always
To check the final resource that was created, use the --dry-run
flag, which provides the object to be submitted to the cluster.
kubectl apply
kubectl apply
to create or update resources. For more information about using kubectl apply to update resources, see Kubectl Book.Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.