kubectl rolling-update
执行指定ReplicationController的滚动更新。
该命令创建了一个新的RC, 然后一次更新一个pod方式逐步使用新的PodTemplate,最终实现Pod滚动更新,new-controller.json需要与之前RC在相同的namespace下。
!http://kubernetes.io/images/docs/kubectl_rollingupdate.svg
语法
$ rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
示例
使用frontend-v2.json中的新RC数据更新frontend-v1的pod。
kubectl rolling-update frontend-v1 -f frontend-v2.json
使用JSON数据更新frontend-v1的pod。
cat frontend-v2.json | kubectl rolling-update frontend-v1 -f -
其他
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 kubectl rolling-update frontend --image=image:v2 kubectl rolling-update frontend-v1 frontend-v2 --rollback
Flags
Name | Shorthand | Default | Usage |
---|---|---|---|
allow-missing-template-keys | true | If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. | |
container | Container name which will have its image upgraded. Only relevant when --image is specified, ignored otherwise. Required when using --image on a multi-container pod | ||
deployment-label-key | deployment | The key to use to differentiate between two different controllers, default 'deployment'. Only relevant when --image is specified, ignored otherwise | |
dry-run | false | If true, only print the object that would be sent, without sending it. | |
filename | f | [] | Filename or URL to file to use to create the new replication controller. |
image | Image to use for upgrading the replication controller. Must be distinct from the existing image (either new image or new image tag). Can not be used with --filename/-f | ||
image-pull-policy | Explicit policy for when to pull container images. Required when --image is same as existing image, ignored otherwise. | ||
include-extended-apis | true | If true, include definitions of new APIs via calls to the API server. [default true] | |
no-headers | false | When using the default or custom-column output format, don't print headers (default print headers). | |
output | o | Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | |
output-version | DEPRECATED: To use a specific API version, fully-qualify the resource, version, and group (for example: 'jobs.v1.batch/myjob'). | ||
poll-interval | 3s | Time delay between polling for replication controller status after the update. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". | |
rollback | false | If true, this is a request to abort an existing rollout that is partially rolled out. It effectively reverses current and next and runs a rollout | |
schema-cache-dir | ~/.kube/schema | If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' | |
show-all | a | false | When printing, show all resources (default hide terminated pods.) |
show-labels | false | When printing, show all labels as the last column (default hide labels column) | |
sort-by | If non-empty, sort list types using this field specification. The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||
template | Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||
timeout | 5m0s | Max time to wait for a replication controller to update before giving up. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". | |
update-period | 1m0s | Time to wait between updating pods. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". | |
validate | true | If true, use a schema to validate the input before sending it |