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 | kubectl command |
---|---|
Pod | |
Replication controller | |
Deployment | |
-for an endpoint (default) | |
Deployment | |
-for an endpoint (recommended) | |
Job | |
CronJob | |
-for an endpoint (default) | |
CronJob | |
-for an endpoint (deprecated) |
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. However, to update a resource you should have created the resource by using kubectl apply
or kubectl create --save-config
. For more information about using kubectl apply to update resources, see Managing Resources.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.