Skip to content

Commit 27b7b45

Browse files
jimangelk8s-ci-robot
authored andcommitted
Official 1.13 Release Docs (#11401)
* Update metadata.generation behaviour for custom resources (#10705) * update docs promoting plugins to beta (#10796) * docs update to promote TaintBasedEvictions to beta (#10765) * First Korean l10n work for dev-1.13 (#10719) * Update outdated l10n(ko) contents (#10689) fixes #10686 * Translate concepts/overview/what-is-kubernetes in Korean (#10690) * Translate concepts/overview/what-is-kubernetes in Korean * Feedback from ClaudiaJKang * Translate concepts/overview/components in Korean (#10882) * Translate concepts/overview/components in Korean #10717 * Translate concepts/overview/components in Korean * Translate concepts/overview/components in Korean * Apply Korean glossary: 서비스 어카운트 * Translate concepts/overview/kubernetes-api in Korean (#10773) * Translate concepts/overview/kubernetes-api in Korean * Applied feedback from ianychoi * kubeadm: update the configuration docs to v1beta1 (#10959) * kubeadm: add small v1beta1 related updates (#10988) * ADD content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md (#11031) * ADD content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md * ADD content/zh/docs/reference/setup-tools/kubeadm/generated/kubeadm_init.md * Update content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md Accepted Co-Authored-By: YouthLab <[email protected]> * do not change 'master' or 'worker' nodes to '主从' * Doc updates for volume scheduling GA (#10743) * Doc updates for volume scheduling GA * Make trivial change to kick build * Document nodelease feature (#10699) * advanced audit doc for ModeBlockingStrict (#10203) * Rename EncryptionConfig to EncryptionConfiguration (#11080) EncryptionConfig was renamed to EncryptedConfiguration and added to the `apiserver.config.k8s.io` API group in Kubernetes 1.13. The feature was previously in alpha and was not handling versions properly, which lead to an originally unnoticed `v1` in the docs. * content/zh/docs/reference/setup-tools/kubeadm/kubeadm-init.md * trsanlate create-cluster-kubeadm.md to chinese (#11041) * trsanlate create-cluster-kubeadm.md to chinese * Update create-cluster-kubeadm.md * update the feature stage in v1.13 (#11307) * update new feature gates to document (#11295) * refresh controller role list on rbac description page (#11290) * node labeling restriction docs (#10944) * Update 1.13 docs for CSI GA (#10893) * dynamic audit documentation (#9947) * adds dynamic audit documentation * Copyedit for clarity See also inline question/s * Fix feature state shortcode * Update feature state * changes wording for dynamic audit flag behavior * Minor copyedit * fix dynamic audit yaml * adds api enablement command to dynamic audit docs * change ordering dynamic audit appears in * add references to dynamic audit in webhook backend * reword dynamic audit reference * updates stages field for audit sink object * changes audit sink api definition; rewords policy * kubeadm: remove kube-proxy workaround (#11162) * zh-trans content/en/docs/setup/independent/install-kubeadm.md (#11338) * zh-trans content/en/docs/setup/independent/install-kubeadm.md * Update install-kubeadm.md * Update dry run feature to beta (#11140) * vSphere volume raw block support doc update (#10932) * Add docs for Windows DNS configurations (#10036) * Update docs for fields allowed at root of CRD schema (#9973) * Add docs for Windows DNS configurations * add device monitoring documentation (#9945) * kubeadm: adds upgrade instructions for 1.13 (#11138) * kubeadm: adds upgrade instructions for 1.13 Signed-off-by: Chuck Ha <[email protected]> * add minor copyedits Addressed a couple of copyedit comments a bit more cleanly. * kubeadm: add improvements to HA docs (#11094) * kubeadm: add information and diagrams for HA topologies * kubeadm: update HA doc with simplified steps * kubeadm: update HA doc with simplified steps * edit ha, add new topology topic, reorder by weight * troubleshoot markdown * fix more markdown, fix links * more markdown * more markdown * more markdown * changes after reviewer comments * add steps about Weave * update note about stacked topology * kubeadm external etcd HA upgrade 1.13 (#11364) * kubeadm external etcd HA upgrade 1.13 Signed-off-by: Ruben Orduz <[email protected]> * Update stacked controlplane steps * kubeadm cert documentation (#11093) * kubeadm certificate API and CSR documentation * copyedits * fix typo * PR for diff docs (#10789) * Empty commit against dev-1.13 for diff documentation * Complete Declarative maangement with diff commands * Second Korean l10n work for dev-1.13. (#11030) * Update outdated l10n(ko) contents (#10915) * Translate main menu for l10n(ko) docs (#10916) * Translate tasks/run-application/horizontal-pod-autoscale-walkthrough (#10980) * Translate content/ko/docs/concepts/overview/working-with-objects/kubernetes-object in Korean #11104 (#11332) * Pick-right-solution page translates into Korean. (#11340) * ko-trans: add jd/..., sap/..., ebay/..., homeoffice/... (#11336) * Translate concept/workloads/pods/pod-overview.md (#11092) Co-authored-by: June Yi <[email protected]> Co-authored-by: Jesang Myung <[email protected]> Co-authored-by: zerobig <[email protected]> Co-authored-by: Claudia J.Kang <[email protected]> Co-authored-by: lIuDuI <[email protected]> Co-authored-by: Woojin Na(Eddie) <[email protected]> * Rename encryption-at-rest related objects (#11059) EncryptionConfig was renamed to EncryptedConfiguration and added to the `apiserver.config.k8s.io` API group in Kubernetes 1.13. The feature was previously in alpha and was not handling versions properly, which lead to an originally unnoticed `v1` in the docs. Also, the `--experimental-encryption-provider-config` flag is now called just `--encryption-provider-config`. * Documenting FlexVolume Resize alpha feature. (#10097) * CR webhook conversion documentation (#10986) * CR Conversion * Addressing comments * Addressing more comments * Addressing even more comments * Addressing even^2 more comments * Remove references to etcd2 in v1.13 since support has been removed (#11414) * Remove etcd2 references as etcd2 is deprecated Link back to the v1.12 version of the etcd3 doc for the etcd2->etcd3 migration instructions. I updated the kube-apiserver reference manually, unsure if that is auto-generated somehow. The federation-apiserver can still potentially support etcd2 so I didn't touch that. * Remove outdated {master,node}.yaml files There are master/node yaml files that reference etcd2.service that are likely highly out of date. I couldn't find any docs that actually reference these templates so I removed them * Address review comments * Final Korean l10n work for dev-1.13 (#11440) * Update outdated l10n(ko) contents (#11425) fixes #11424 * Remove references to etcd2 in content/ko (#11416) * Resolve conflicts against master for /ko contents (#11438) * Fix unopened caution shortcode * kubeadm: update the reference docs for 1.13 (#10960) * docs update to promote TaintBasedEvictions to beta (#10765) * First Korean l10n work for dev-1.13 (#10719) * Update outdated l10n(ko) contents (#10689) fixes #10686 * Translate concepts/overview/what-is-kubernetes in Korean (#10690) * Translate concepts/overview/what-is-kubernetes in Korean * Feedback from ClaudiaJKang * Translate concepts/overview/components in Korean (#10882) * Translate concepts/overview/components in Korean #10717 * Translate concepts/overview/components in Korean * Translate concepts/overview/components in Korean * Apply Korean glossary: 서비스 어카운트 * Translate concepts/overview/kubernetes-api in Korean (#10773) * Translate concepts/overview/kubernetes-api in Korean * Applied feedback from ianychoi * kubeadm: update the configuration docs to v1beta1 (#10959) * kubeadm: add small v1beta1 related updates (#10988) * update new feature gates to document (#11295) * Update dry run feature to beta (#11140) * kubeadm: add improvements to HA docs (#11094) * kubeadm: add information and diagrams for HA topologies * kubeadm: update HA doc with simplified steps * kubeadm: update HA doc with simplified steps * edit ha, add new topology topic, reorder by weight * troubleshoot markdown * fix more markdown, fix links * more markdown * more markdown * more markdown * changes after reviewer comments * add steps about Weave * update note about stacked topology * kubeadm: update reference docs - add section about working with phases under kubeadm-init.md - update GA / beta status of features - kubeadm alpha phase was moved to kubeadm init phase - new commands were added under kubeadm alpha - included new CoreDNS usage examples * Generate components and tools reference * Add generated federation API Reference (#11491) * Add generated federation API Reference * Add front matter to federation reference * Remove whitespace from federation front matter * Remove more whitespace from federation front matter * Remove superfluous kubefed reference * Add frontmatter to generated kubefed reference * Fix kubefed reference page frontmatter * Generate kubectl reference docs 1.13 (#11487) * Generate kubectl reference docs 1.13 * Fix links in kubectl reference * Add 1.13 API reference (#11489) * Update config.toml (#11486) * Update config.toml Preparing for 1.13 release, updating the config.toml and dropping the 1.8 docs reference. * update dot releases and docsbranch typo * adding .Site. to Params.currentUrl (#11503) see #11502 for context * Add 1.13 Release notes (#11499)
1 parent b1dde55 commit 27b7b45

File tree

347 files changed

+69278
-4475
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

347 files changed

+69278
-4475
lines changed

config.toml

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ time_format_blog = "Monday, January 02, 2006"
6363
description = "Production-Grade Container Orchestration"
6464
showedit = true
6565

66-
latest = "v1.12"
66+
latest = "v1.13"
6767

68-
fullversion = "v1.12.0"
69-
version = "v1.12"
68+
fullversion = "v1.13.0"
69+
version = "v1.13"
7070
githubbranch = "master"
7171
docsbranch = "master"
7272
deprecated = false
@@ -76,10 +76,10 @@ githubWebsiteRepo = "github.com/kubernetes/website"
7676
githubWebsiteRaw = "raw.githubusercontent.com/kubernetes/website"
7777

7878
[[params.versions]]
79-
fullversion = "v1.12.0"
80-
version = "v1.12"
81-
githubbranch = "v1.12.0"
82-
docsbranch = "release-1.12"
79+
fullversion = "v1.13.0"
80+
version = "v1.13"
81+
githubbranch = "v1.13.0"
82+
docsbranch = "release-1.13"
8383
url = "https://kubernetes.io"
8484

8585
[params.pushAssets]
@@ -94,34 +94,33 @@ js = [
9494
]
9595

9696
[[params.versions]]
97-
fullversion = "v1.11.3"
97+
fullversion = "v1.12.3"
98+
version = "v1.12"
99+
githubbranch = "v1.12.3"
100+
docsbranch = "release-1.12"
101+
url = "https://v1-12.docs.kubernetes.io"
102+
103+
[[params.versions]]
104+
fullversion = "v1.11.5"
98105
version = "v1.11"
99-
githubbranch = "v1.11.3"
106+
githubbranch = "v1.11.5"
100107
docsbranch = "release-1.11"
101108
url = "https://v1-11.docs.kubernetes.io"
102109

103110
[[params.versions]]
104-
fullversion = "v1.10.3"
111+
fullversion = "v1.10.11"
105112
version = "v1.10"
106-
githubbranch = "v1.10.3"
113+
githubbranch = "v1.10.11"
107114
docsbranch = "release-1.10"
108115
url = "https://v1-10.docs.kubernetes.io"
109116

110117
[[params.versions]]
111-
fullversion = "v1.9.7"
118+
fullversion = "v1.9.11"
112119
version = "v1.9"
113-
githubbranch = "v1.9.7"
120+
githubbranch = "v1.9.11"
114121
docsbranch = "release-1.9"
115122
url = "https://v1-9.docs.kubernetes.io"
116123

117-
[[params.versions]]
118-
fullversion = "v1.8.4"
119-
version = "v1.8"
120-
githubbranch = "v1.8.4"
121-
docsbranch = "release-1.8"
122-
url = "https://v1-8.docs.kubernetes.io"
123-
124-
125124
# Language definitions.
126125

127126
[languages]

content/en/docs/concepts/architecture/nodes.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,20 @@ to be unreachable. (The default timeouts are 40s to start reporting
158158
ConditionUnknown and 5m after that to start evicting pods.) The node controller
159159
checks the state of each node every `--node-monitor-period` seconds.
160160

161+
In versions of Kubernetes prior to 1.13, NodeStatus is the heartbeat from the
162+
node. Starting from Kubernetes 1.13, node lease feature is introduced as an
163+
alpha feature (feature gate `NodeLease`,
164+
[KEP-0009](https://github.com/kubernetes/community/blob/master/keps/sig-node/0009-node-heartbeat.md)).
165+
When node lease feature is enabled, each node has an associated `Lease` object in
166+
`kube-node-lease` namespace that is renewed by the node periodically, and both
167+
NodeStatus and node lease are treated as heartbeats from the node. Node leases
168+
are renewed frequently while NodeStatus is reported from node to master only
169+
when there is some change or enough time has passed (default is 1 minute, which
170+
is longer than the default timeout of 40 seconds for unreachable nodes). Since
171+
node lease is much more lightweight than NodeStatus, this feature makes node
172+
heartbeat significantly cheaper from both scalability and performance
173+
perspectives.
174+
161175
In Kubernetes 1.4, we updated the logic of the node controller to better handle
162176
cases when a large number of nodes have problems with reaching the master
163177
(e.g. because the master has networking problem). Starting with 1.4, the node
@@ -212,11 +226,12 @@ For self-registration, the kubelet is started with the following options:
212226
- `--register-node` - Automatically register with the API server.
213227
- `--register-with-taints` - Register the node with the given list of taints (comma separated `<key>=<value>:<effect>`). No-op if `register-node` is false.
214228
- `--node-ip` - IP address of the node.
215-
- `--node-labels` - Labels to add when registering the node in the cluster.
229+
- `--node-labels` - Labels to add when registering the node in the cluster (see label restrictions enforced by the [NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) in 1.13+).
216230
- `--node-status-update-frequency` - Specifies how often kubelet posts node status to master.
217231

218-
Currently, any kubelet is authorized to create/modify any node resource, but in practice it only creates/modifies
219-
its own. (In the future, we plan to only allow a kubelet to modify its own node resource.)
232+
When the [Node authorization mode](/docs/reference/access-authn-authz/node/) and
233+
[NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) are enabled,
234+
kubelets are only authorized to create/modify their own Node resource.
220235

221236
#### Manual Node Administration
222237

content/en/docs/concepts/cluster-administration/cloud-providers.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,32 @@ kubeadm has configuration options to specify configuration information for cloud
1717
in-tree cloud provider can be configured using kubeadm as shown below:
1818

1919
```yaml
20-
apiVersion: kubeadm.k8s.io/v1alpha3
20+
apiVersion: kubeadm.k8s.io/v1beta1
2121
kind: InitConfiguration
2222
nodeRegistration:
2323
kubeletExtraArgs:
2424
cloud-provider: "openstack"
2525
cloud-config: "/etc/kubernetes/cloud.conf"
2626
---
27+
apiVersion: kubeadm.k8s.io/v1beta1
2728
kind: ClusterConfiguration
28-
apiVersion: kubeadm.k8s.io/v1alpha3
29-
kubernetesVersion: v1.12.0
30-
apiServerExtraArgs:
31-
cloud-provider: "openstack"
32-
cloud-config: "/etc/kubernetes/cloud.conf"
33-
apiServerExtraVolumes:
34-
- name: cloud
35-
hostPath: "/etc/kubernetes/cloud.conf"
36-
mountPath: "/etc/kubernetes/cloud.conf"
37-
controllerManagerExtraArgs:
38-
cloud-provider: "openstack"
39-
cloud-config: "/etc/kubernetes/cloud.conf"
40-
controllerManagerExtraVolumes:
41-
- name: cloud
42-
hostPath: "/etc/kubernetes/cloud.conf"
43-
mountPath: "/etc/kubernetes/cloud.conf"
29+
kubernetesVersion: v1.13.0
30+
apiServer:
31+
extraArgs:
32+
cloud-provider: "openstack"
33+
cloud-config: "/etc/kubernetes/cloud.conf"
34+
extraVolumes:
35+
- name: cloud
36+
hostPath: "/etc/kubernetes/cloud.conf"
37+
mountPath: "/etc/kubernetes/cloud.conf"
38+
controllerManager:
39+
extraArgs:
40+
cloud-provider: "openstack"
41+
cloud-config: "/etc/kubernetes/cloud.conf"
42+
extraVolumes:
43+
- name: cloud
44+
hostPath: "/etc/kubernetes/cloud.conf"
45+
mountPath: "/etc/kubernetes/cloud.conf"
4446
```
4547
4648
The in-tree cloud providers typically need both `--cloud-provider` and `--cloud-config` specified in the command lines

content/en/docs/concepts/configuration/assign-pod-node.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,21 @@ For example, the value of `kubernetes.io/hostname` may be the same as the Node n
9292
and a different value in other environments.
9393
{{< /note >}}
9494

95+
## Node isolation/restriction
96+
97+
Adding labels to Node objects allows targeting pods to specific nodes or groups of nodes.
98+
This can be used to ensure specific pods only run on nodes with certain isolation, security, or regulatory properties.
99+
When using labels for this purpose, choosing label keys that cannot be modified by the kubelet process on the node is strongly recommended.
100+
This prevents a compromised node from using its kubelet credential to set those labels on its own Node object,
101+
and influencing the scheduler to schedule workloads to the compromised node.
102+
103+
The `NodeRestriction` admission plugin prevents kubelets from setting or modifying labels with a `node-restriction.kubernetes.io/` prefix.
104+
To make use of that label prefix for node isolation:
105+
106+
1. Ensure you are using the [Node authorizer](/docs/reference/access-authn-authz/node/) and have enabled the [NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction).
107+
2. Add labels under the `node-restriction.kubernetes.io/` prefix to your Node objects, and use those labels in your node selectors.
108+
For example, `example.com.node-restriction.kubernetes.io/fips=true` or `example.com.node-restriction.kubernetes.io/pci-dss=true`.
109+
95110
## Affinity and anti-affinity
96111

97112
`nodeSelector` provides a very simple way to constrain pods to nodes with particular labels. The affinity/anti-affinity

content/en/docs/concepts/configuration/taint-and-toleration.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,7 @@ certain condition is true. The following taints are built in:
223223
as unusable. After a controller from the cloud-controller-manager initializes
224224
this node, the kubelet removes this taint.
225225

226-
When the `TaintBasedEvictions` alpha feature is enabled (you can do this by
227-
including `TaintBasedEvictions=true` in `--feature-gates` for Kubernetes controller manager,
228-
such as `--feature-gates=FooBar=true,TaintBasedEvictions=true`), the taints are automatically
226+
In version 1.13, the `TaintBasedEvictions` feature is promoted to beta and enabled by default, hence the taints are automatically
229227
added by the NodeController (or kubelet) and the normal logic for evicting pods from nodes
230228
based on the Ready NodeCondition is disabled.
231229

@@ -236,7 +234,7 @@ in a rate-limited way. This prevents massive pod evictions in scenarios such
236234
as the master becoming partitioned from the nodes.
237235
{{< /note >}}
238236

239-
This alpha feature, in combination with `tolerationSeconds`, allows a pod
237+
This beta feature, in combination with `tolerationSeconds`, allows a pod
240238
to specify how long it should stay bound to a node that has one or both of these problems.
241239

242240
For example, an application with a lot of local state might want to stay
@@ -246,7 +244,7 @@ The toleration the pod would use in that case would look like
246244

247245
```yaml
248246
tolerations:
249-
- key: "node.alpha.kubernetes.io/unreachable"
247+
- key: "node.kubernetes.io/unreachable"
250248
operator: "Exists"
251249
effect: "NoExecute"
252250
tolerationSeconds: 6000
@@ -257,9 +255,9 @@ Note that Kubernetes automatically adds a toleration for
257255
unless the pod configuration provided
258256
by the user already has a toleration for `node.kubernetes.io/not-ready`.
259257
Likewise it adds a toleration for
260-
`node.alpha.kubernetes.io/unreachable` with `tolerationSeconds=300`
258+
`node.kubernetes.io/unreachable` with `tolerationSeconds=300`
261259
unless the pod configuration provided
262-
by the user already has a toleration for `node.alpha.kubernetes.io/unreachable`.
260+
by the user already has a toleration for `node.kubernetes.io/unreachable`.
263261

264262
These automatically-added tolerations ensure that
265263
the default pod behavior of remaining bound for 5 minutes after one of these
@@ -270,7 +268,7 @@ admission controller](https://git.k8s.io/kubernetes/plugin/pkg/admission/default
270268
[DaemonSet](/docs/concepts/workloads/controllers/daemonset/) pods are created with
271269
`NoExecute` tolerations for the following taints with no `tolerationSeconds`:
272270

273-
* `node.alpha.kubernetes.io/unreachable`
271+
* `node.kubernetes.io/unreachable`
274272
* `node.kubernetes.io/not-ready`
275273

276274
This ensures that DaemonSet pods are never evicted due to these problems,

content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,36 @@ a Kubernetes release with a newer device plugin API version, upgrade your device
136136
to support both versions before upgrading these nodes to
137137
ensure the continuous functioning of the device allocations during the upgrade.
138138

139+
## Monitoring Device Plugin Resources
140+
141+
In order to monitor resources provided by device plugins, monitoring agents need to be able to
142+
discover the set of devices that are in-use on the node and obtain metadata to describe which
143+
container the metric should be associated with. Prometheus metrics exposed by device monitoring
144+
agents should follow the
145+
[Kubernetes Instrumentation Guidelines](https://github.com/kubernetes/community/blob/master/contributors/devel/instrumentation.md),
146+
which requires identifying containers using `pod`, `namespace`, and `container` prometheus labels.
147+
The kubelet provides a gRPC service to enable discovery of in-use devices, and to provide metadata
148+
for these devices:
149+
150+
```gRPC
151+
// PodResources is a service provided by the kubelet that provides information about the
152+
// node resources consumed by pods and containers on the node
153+
service PodResources {
154+
rpc List(ListPodResourcesRequest) returns (ListPodResourcesResponse) {}
155+
}
156+
```
157+
158+
The gRPC service is served over a unix socket at `/var/lib/kubelet/pod-resources/kubelet.sock`.
159+
Monitoring agents for device plugin resources can be deployed as a daemon, or as a DaemonSet.
160+
The cannonical directory `/var/lib/kubelet/pod-resources` requires privileged access, so monitoring
161+
agents must run in a privileged security context. If a device monitoring agent is running as a
162+
DaemonSet, `/var/lib/kubelet/pod-resources` must be mounted as a
163+
[Volume](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#volume-v1-core)
164+
in the plugin's
165+
[PodSpec](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core).
166+
167+
Support for the "PodResources service" is still in alpha.
168+
139169
## Examples
140170

141171
For examples of device plugin implementations, see:

content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ Kubernetes objects can be created, updated, and deleted by storing multiple
99
object configuration files in a directory and using `kubectl apply` to
1010
recursively create and update those objects as needed. This method
1111
retains writes made to live objects without merging the changes
12-
back into the object configuration files.
12+
back into the object configuration files. `kubectl diff` also gives you a
13+
preview of what changes `apply` will make.
1314
{{% /capture %}}
1415

1516
{{% capture body %}}
@@ -67,6 +68,14 @@ Here's an example of an object configuration file:
6768

6869
{{< codenew file="application/simple_deployment.yaml" >}}
6970

71+
Run `kubectl diff` to print the object that will be created:
72+
```shell
73+
kubectl diff -f https://k8s.io/examples/application/simple_deployment.yaml
74+
```
75+
{{< note >}}
76+
**Note:** `diff` uses [server-side dry-run](/docs/reference/using-api/api-concepts/#dry-run), which needs to be enabled on `kube-apiserver`.
77+
{{< /note >}}
78+
7079
Create the object using `kubectl apply`:
7180

7281
```shell
@@ -130,6 +139,7 @@ if those objects already exist. This approach accomplishes the following:
130139
2. Clears fields removed from the configuration file in the live configuration.
131140

132141
```shell
142+
kubectl diff -f <directory>/
133143
kubectl apply -f <directory>/
134144
```
135145

@@ -262,6 +272,7 @@ Update the `simple_deployment.yaml` configuration file to change the image from
262272
Apply the changes made to the configuration file:
263273

264274
```shell
275+
kubectl diff -f https://k8s.io/examples/application/update_deployment.yaml
265276
kubectl apply -f https://k8s.io/examples/application/update_deployment.yaml
266277
```
267278

@@ -977,5 +988,3 @@ template:
977988
- [Kubectl Command Reference](/docs/reference/generated/kubectl/kubectl/)
978989
- [Kubernetes API Reference](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
979990
{{% /capture %}}
980-
981-

content/en/docs/concepts/overview/object-management-kubectl/overview.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,19 @@ API operation to replace the entire object configuration.
144144

145145
### Examples
146146

147-
Process all object configuration files in the `configs` directory, and
148-
create or patch the live objects:
147+
Process all object configuration files in the `configs` directory, and create or
148+
patch the live objects. You can first `diff` to see what changes are going to be
149+
made, and then apply:
149150

150151
```sh
152+
kubectl diff -f configs/
151153
kubectl apply -f configs/
152154
```
153155

154156
Recursively process directories:
155157

156158
```sh
159+
kubectl diff -R -f configs/
157160
kubectl apply -R -f configs/
158161
```
159162

@@ -181,5 +184,3 @@ Disadvantages compared to imperative object configuration:
181184
{{< comment >}}
182185
{{< /comment >}}
183186
{{% /capture %}}
184-
185-

content/en/docs/concepts/storage/persistent-volumes.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ the following types of volumes:
192192
* Azure File
193193
* Azure Disk
194194
* Portworx
195+
* FlexVolumes
195196

196197
You can only expand a PVC if its storage class's `allowVolumeExpansion` field is set to true.
197198

@@ -227,16 +228,25 @@ kubectl describe pvc <pvc_name>
227228

228229
If the `PersistentVolumeClaim` has the status `FileSystemResizePending`, it is safe to recreate the pod using the PersistentVolumeClaim.
229230

230-
#### Resizing an in-use PersistentVolumeClaim
231+
FlexVolumes allow resize if the driver is set with the `RequiresFSResize` capability to true.
232+
The FlexVolume can be resized on pod restart.
231233

232234
{{< feature-state for_k8s_version="v1.11" state="alpha" >}}
233235

236+
#### Resizing an in-use PersistentVolumeClaim
237+
234238
Expanding in-use PVCs is an alpha feature. To use it, enable the `ExpandInUsePersistentVolumes` feature gate.
235239
In this case, you don't need to delete and recreate a Pod or deployment that is using an existing PVC.
236240
Any in-use PVC automatically becomes available to its Pod as soon as its file system has been expanded.
237241
This feature has no effect on PVCs that are not in use by a Pod or deployment. You must create a Pod which
238242
uses the PVC before the expansion can complete.
239243

244+
Expanding in-use PVCs for FlexVolumes is added in release 1.13. To enable this feature use `ExpandInUsePersistentVolumes` and `ExpandPersistentVolumes` feature gates. The `ExpandPersistentVolumes` feature gate is already enabled by default. If the `ExpandInUsePersistentVolumes` is set, FlexVolume can be resized online without pod restart.
245+
246+
{{< note >}}
247+
**Note:** FlexVolume resize is possible only when the underlying driver supports resize.
248+
{{< /note >}}
249+
240250
{{< note >}}
241251
Expanding EBS volumes is a time consuming operation. Also, there is a per-volume quota of one modification every 6 hours.
242252
{{< /note >}}
@@ -553,6 +563,7 @@ applicable.
553563
* iSCSI
554564
* Local volume
555565
* RBD (Ceph Block Device)
566+
* VsphereVolume (alpha)
556567

557568
{{< note >}}
558569
Only FC and iSCSI volumes supported raw block volumes in Kubernetes 1.9.

0 commit comments

Comments
 (0)