Merge branch 'master' into patch-2
This commit is contained in:
@@ -8,11 +8,11 @@ assignees:
|
||||
* TOC
|
||||
{:toc}
|
||||
|
||||
## Using `kubectl` in Reusable Scripts
|
||||
## Using `kubectl` in Reusable Scripts
|
||||
|
||||
If you need stable output in a script, you should:
|
||||
|
||||
* Request one of the machine-oriented output forms, such as `-o name`, `-o json`, `-o yaml`, `-o go-template`, or `-o jsonpath`
|
||||
* Request one of the machine-oriented output forms, such as `-o name`, `-o json`, `-o yaml`, `-o go-template`, or `-o jsonpath`
|
||||
* Specify `--output-version`, since those output forms (other than `-o name`) output the resource using a particular API version
|
||||
* Specify `--generator` to pin to a specific behavior forever, if using generator-based commands (such as `kubectl run` or `kubectl expose`)
|
||||
* Don't rely on context, preferences, or other implicit state
|
||||
@@ -27,8 +27,46 @@ In order for `kubectl run` to satisfy infrastructure as code:
|
||||
* If the image is lightly parameterized, capture the parameters in a checked-in script, or at least use `--record`, to annotate the created objects with the command line.
|
||||
* If the image is heavily parameterized, definitely check in the script.
|
||||
* If features are needed that are not expressible via `kubectl run` flags, switch to configuration files checked into source control.
|
||||
* Pin to a specific generator version, such as `kubectl run --generator=deployment/v1beta1`
|
||||
* Pin to a specific [generator](#generators) version, such as `kubectl run --generator=deployment/v1beta1`
|
||||
|
||||
#### Generators
|
||||
|
||||
`kubectl run` allows you to generate the following resources (using `--generator` flag):
|
||||
|
||||
* Pod - use `run-pod/v1`.
|
||||
* Replication controller - use `run/v1`.
|
||||
* Deployment - use `deployment/v1beta1`.
|
||||
* Job (using `extension/v1beta1` endpoint) - use `job/v1beta1`.
|
||||
* Job - use `job/v1`.
|
||||
* ScheduledJob - use `scheduledjob/v2alpha1`.
|
||||
|
||||
Additionally, if you didn't specify a generator flag, other flags will suggest using
|
||||
a specific generator. Below table shows which flags force using specific generators,
|
||||
depending on your cluster version:
|
||||
|
||||
| Generated Resource | Cluster v1.4 | Cluster v1.3 | Cluster v1.2 | Cluster v1.1 and eariler |
|
||||
|:----------------------:|-----------------------|-----------------------|--------------------------------------------|--------------------------------------------|
|
||||
| Pod | `--restart=Never` | `--restart=Never` | `--generator=run-pod/v1` | `--restart=OnFailure` OR `--restart=Never` |
|
||||
| Replication Controller | `--generator=run/v1` | `--generator=run/v1` | `--generator=run/v1` | `--restart=Always` |
|
||||
| Deployment | `--restart=Always` | `--restart=Always` | `--restart=Always` | N/A |
|
||||
| Job | `--restart=OnFailure` | `--restart=OnFailure` | `--restart=OnFailure` OR `--restart=Never` | N/A |
|
||||
| Scheduled Job | `--schedule=<cron>` | N/A | N/A | N/A |
|
||||
|
||||
Note that these flags will use a default generator only when you have not specified
|
||||
any flag. This also means that combining `--generator` with other flags won't
|
||||
change the generator you specified. For example, in a 1.4 cluster, if you specify
|
||||
`--restart=Always`, a Deployment will be created; if you specify `--restart=Always`
|
||||
and `--generator=run/v1`, a Replication Controller will be created instead.
|
||||
This becomes handy if you want to pin to a specific behavior with the generator,
|
||||
even when the defaulted generator is changed in the future.
|
||||
|
||||
Finally, the order in which flags set the generator is: schedule flag has the highest
|
||||
priority, then restart policy and finally the generator itself.
|
||||
|
||||
If in doubt about the final resource being created, you can always use `--dry-run`
|
||||
flag, which will provide the object to be submitted to the cluster.
|
||||
|
||||
|
||||
### `kubectl apply`
|
||||
|
||||
* To use `kubectl apply` to update resources, always create resources initially with `kubectl apply` or with `--save-config`. See [managing resources with kubectl apply](/docs/user-guide/managing-deployments/#kubectl-apply) for the reason behind it.
|
||||
* To use `kubectl apply` to update resources, always create resources initially with `kubectl apply` or with `--save-config`. See [managing resources with kubectl apply](/docs/user-guide/managing-deployments/#kubectl-apply) for the reason behind it.
|
||||
|
||||
@@ -77,7 +77,7 @@ Operation | Syntax | Description
|
||||
`stop` | `kubectl stop` | Deprecated: Instead, see `kubectl delete`.
|
||||
`version` | `kubectl version [--client] [flags]` | Display the Kubernetes version running on the client and server.
|
||||
|
||||
Remember: For more about command operations, see the [kubectl](/docs/user-guide/kubectl/kubectl) reference documentation.
|
||||
Remember: For more about command operations, see the [kubectl](/docs/user-guide/kubectl) reference documentation.
|
||||
|
||||
## Resource types
|
||||
|
||||
@@ -115,7 +115,7 @@ Resource type | Abbreviated alias
|
||||
|
||||
## Output options
|
||||
|
||||
Use the following sections for information about how you can format or sort the output of certain commands. For details about which commands support the various output options, see the [kubectl](/docs/user-guide/kubectl/kubectl) reference documentation.
|
||||
Use the following sections for information about how you can format or sort the output of certain commands. For details about which commands support the various output options, see the [kubectl](/docs/user-guide/kubectl) reference documentation.
|
||||
|
||||
### Formatting output
|
||||
|
||||
@@ -146,7 +146,7 @@ In this example, the following command outputs the details for a single pod as a
|
||||
|
||||
`$ kubectl get pod web-pod-13je7 -o=yaml`
|
||||
|
||||
Remember: See the [kubectl](/docs/user-guide/kubectl/kubectl) reference documentation for details about which output format is supported by each command.
|
||||
Remember: See the [kubectl](/docs/user-guide/kubectl) reference documentation for details about which output format is supported by each command.
|
||||
|
||||
#### Custom columns
|
||||
|
||||
@@ -281,4 +281,4 @@ $ kubectl logs -f <pod-name>
|
||||
|
||||
## Next steps
|
||||
|
||||
Start using the [kubectl](/docs/user-guide/kubectl/kubectl) commands.
|
||||
Start using the [kubectl](/docs/user-guide/kubectl) commands.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
This purpose of this guide is to help you become familiar with the runtime initialization of [Pet Sets](/docs/user-guide/petset). This guide assumes the same prerequisites, and uses the same terminology as the [Pet Set user document](/docs/user-guide/petset).
|
||||
|
||||
The most common way to initialize the runtime in a containerized environment, is through a custom [entrypoint](https://docs.docker.com/engine/reference/builder/#entrypoint). While this is not necessarily bad, making your application pid 1, and treating containers as processes in general is good for a few reasons outside the scope of this document. Doing so allows you to run docker images from third-party vendors without modification. We will not be writing custom entrypoints for this example, but using a feature called [init containers](http://releases.k8s.io/{{page.githubbranch}}/docs/proposals/container-init.md), to explain 2 common patterns that come up deploying Pet Sets.
|
||||
The most common way to initialize the runtime in a containerized environment, is through a custom [entrypoint](https://docs.docker.com/engine/reference/builder/#entrypoint). While this is not necessarily bad, making your application pid 1, and treating containers as processes in general is good for a few reasons outside the scope of this document. Doing so allows you to run docker images from third-party vendors without modification. We will not be writing custom entrypoints for this example, but using a feature called [init containers](http://kubernetes.io/docs/user-guide/production-pods/#handling-initialization), to explain 2 common patterns that come up deploying Pet Sets.
|
||||
|
||||
1. Transferring state across Pet restart, so that a future Pet is initialized with the computations of its past incarnation
|
||||
2. Initializing the runtime environment of a Pet based on existing conditions, like a list of currently healthy peers
|
||||
|
||||
@@ -284,7 +284,7 @@ For example, you can specify a default mode like this:
|
||||
"image": "redis",
|
||||
"volumeMounts": [{
|
||||
"name": "foo",
|
||||
"mountPath": "/etc/foo",
|
||||
"mountPath": "/etc/foo"
|
||||
}]
|
||||
}],
|
||||
"volumes": [{
|
||||
@@ -322,7 +322,7 @@ permission for different files like this:
|
||||
"image": "redis",
|
||||
"volumeMounts": [{
|
||||
"name": "foo",
|
||||
"mountPath": "/etc/foo",
|
||||
"mountPath": "/etc/foo"
|
||||
}]
|
||||
}],
|
||||
"volumes": [{
|
||||
|
||||
Reference in New Issue
Block a user