Skip to content

Commit 409e77d

Browse files
Bradamant3steveperry-53
authored andcommitted
Merge 1.10 to master for release (#7861)
* 1.10 update (#7151) * Fix partition value expected behaviour explanation (#7123) Fixes issue #7057 * Correct "On-Premise" to "On-Premises" * Updates the Calico installation page (#7094) * All files for Haufe Groups case study (#7051) * Fix typo (#7127) * fix typo of device-plugins.md (#7106) * fix broken links (#7136) * Updated configure-service-account (#7147) Error from server resolved by escaping kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}' JSON string by '\' * Remove docs related to 'require-kubeconfig' (#7138) With kubernetes/kubernetes#58367 merged, v1.10 will not use the "require-kubeconfig" flag. The flag has become a no-op solely to ensure existing deployments won't break. * Added Verification Scenario for a Pod that Uses a PVC in Terminating State (#7164) The below PR: kubernetes/kubernetes#55873 modified scheduler in such a way that scheduling of a pod that uses a PVC in Terminating state fails. That's why verification of such scenario was added to documentation. * fix LimitPodHardAntiAffinityTopology name (#7221) * Document the removal of the KubeletConfigFile feature gate (#7140) With kubernetes/kubernetes#58978 merged, the said feature gate is removed. This PR removes texts related to the gate and revises the Feature Gates reference to reflect this change. * deprecate three admission controller (#7363) * Document the removal of Accelerators feature gate (#7389) The `Accelerators` feature gate will be removed in 1.11. 1.10 will be its last mile. References: kubernetes/kubernetes#57384 * Update local storage docs for beta (#7473) * Document that HugePages feature gate is Beta (#7387) The `HugePages` feature gate has graduated to Beta in v1.10. This PR documents this fact. * Add HyperVContainer feature gates (#7502) * Remove the beta reference from Taints and Tolerations doc (#7493) * Kms provider doc (#7479) * Kms provider doc * issue# 7399, Create KMS-provider.md and update encrypt-data.md * address review comments * Document that Device Plugin feature is Beta (1.10) (#7512) * Add docs for CRD features for 1.10 (#7439) * Add docs for CRD features for 1.10 * Add CustomResourcesSubresources to list of feature gates * Add latest changes to custom resources doc * Add crds as abbreviated alias (#7437) * Bring PVC Protection Feature to Beta (#7165) * Bring PVC Protection Feature to Beta The PR: kubernetes/kubernetes#59052 brought PVC Protection feature to beta. That's why the documentation is updated accordingly. * The PVC Protection feature was renamed to Storage Protection. That's why the documentation is updated. * promote PodNodeSelector to stable; document detailed behavior (#7134) * promote PodNodeSelector to stable; document detailed behavior * respond to feedback * Update CPU manager feature enabling (#7390) With `CPUManager` feature graduating to beta. No explicit enabling is required starting v1.10. References: kubernetes/kubernetes#55977 * Adding block volumeMode documentation for local volumes. (#7531) Code review comments. Changed property to field. Address tech review comment. * remove description kubectl --show-all (#7574) --show-all has been deprecated and set to true by default. kubernetes/kubernetes#60210 * fix description about contribute style guide (#7592) * fix description about KUBECONFIG (#7589) s/envrionment/environment * fix description about cni (#7588) s/simultanously/simultaneously/ * fix description about MutatingAdmissionWebhook and ValidatingAdmissionWebhook (#7587) * fix description about persistent volume binding (#7590) s/slighty/slightly/ * Doc change for configurable pod resolv.conf Beta (#7611) * fix description about out of resource handling (#7597) s/threshhold/threshold * fix description about zookeeper (#7598) s/achive/achieve * fix description about kubeadm (#7594) s/compatability/compatibility/ * fix description about kubeadm (#7593) * fix description about kubeadm implementation details (#7595) * fix description about api concepts (#7596) * Storage Protection was renamed to Storage Object in Use Protection (#7576) * Storage Protection was renamed to Storage Object in Use Protection The K8s PR: kubernetes/kubernetes#59901 renamed Storage Protection to Storage Object in Use Protection. That's why the same is also renamed in the documentation. * Moved Storage Object in Use Protection admission plugin description down according to alphabetic order. * Use PSP from policy API group. (#7562) * update kubeletconfig docs for v1.10, beta (#7561) * Update port-forwarding docs (#7575) * add pv protection description (#7620) * fix description about client library (#7634) * Add docs on configuring NodePort IP (#7631) * Document that LocalStorageCapacityIsolation is beta (#7635) A follow-up to the kubernetes/kubernetes#60159 change which has promoted the `LocalStorageCapacityIsolation` feature gate to Beta. * Update CoreDNS docs for beta (#7638) * Update CoreDNS docs for beta * Review comments * Fix typo (#7640) * Update feature gates move to beta (#7662) * Added the inability to use colon ':' character as environment variable names and described workaround (#7657) * merge master to 1.10, with fixes (#7682) * Flag names changed (s/admission-control/enable-admission-plugins); disable-admissions-plugin entry added; removed reference to admission controller/plugins requiring set order (for v1.10), redundant example enabling specific plugin, and redundant version-specific info (#7449) * Documentation for MountPropagation beta (#7655) * Remove job's scale-related operations (#7684) * authentication: document client-go exec plugins (#7648) * authentication: document client-go exec plugins * Update authentication.md * Update local ephemeral storage feature to beta (#7685) Update local ephemeral storage feature to beta * Update docs for windows container resources (#7653) * add server-side print docs (#7671) * Create a task describing Pod process namespace sharing (#7489) * Add external metrics to HPA docs (#7664) * Add external metrics to HPA docs * Update horizontal-pod-autoscale-walkthrough.md * Apply review comments to HPA walkthrough * remove description about "scale jobs" (#7712) * CSI Docs for K8s v1.10 (#7698) * Add a warning about increased memory consumption for audit logging feature. (#7725) Signed-off-by: Mik Vyatskov <vmik@google.com> * Update Audit Logging documentation for 1.10 (#7679) Signed-off-by: Mik Vyatskov <vmik@google.com> * Fix stage names in audit logging documentation (#7746) Signed-off-by: Mik Vyatskov <vmik@google.com> * Feature gate update for release 1.10 (#7742) * State in the docs that the value of default Node labels are not reliable. (#7794) * Kill the reference to --admission-control option (#7755) The `--admission-control` option has been replaced by two new options in v1.10. This PR kills the last appearance of the old option in the doc. * Pvcprotection toc (#7807) * Refreshing installation instructions (#7495) * Refreshing installation instructions Added conjure-up. Updated displays and juju versions to current versions. * Updated anchors * Fixed image value version typo (#7768) Was inconsistent with other values * Update flocker reference to the github repo (#7784) * Fix typo in federation document (#7779) * an user -> a user (#7778) * Events are namespaced (#7767) * fix 'monitoring' link lose efficacy problem' (#7764) * docs/concepts/policy/pod-security-policy.md: minor fix. (#7659) * Update downward-api-volume-expose-pod-information.md (#7771) * Update downward-api-volume-expose-pod-information.md The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact. * Update downward-api-volume-expose-pod-information.md One more spot needed fixing. * Update downward-api-volume-expose-pod-information.md Yet another fix, in the container example. * Add Amadeus Case Study (#7783) * Add Amadeus Case Study * add Amadeus logo * Fixed Cyrillic с in 'kube-proxy-cm' (#7787) There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c. * install-kubectl: choose one installation method (#7705) The previous text layout suggested that all installations had to be done, one after another. * Update install-kubeadm.md (#7781) Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc. * repair failure link (#7788) * repair failure link * repair failure link * do change as required * Update k8s201.md (#7777) * Update k8s201.md Change instructions to download yams files directly from the website (as used in other pages.) Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step. * Update k8s201.md Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...) * Gramatical fix to kompose introduction (#7792) The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link. * update amadeus.html (#7800) * Fix a missing word in endpoint reconciler section (#7804) * add toc entry for pvcprotection downgrade issue doc * Pvcprotection toc (#7809) * Refreshing installation instructions (#7495) * Refreshing installation instructions Added conjure-up. Updated displays and juju versions to current versions. * Updated anchors * Fixed image value version typo (#7768) Was inconsistent with other values * Update flocker reference to the github repo (#7784) * Fix typo in federation document (#7779) * an user -> a user (#7778) * Events are namespaced (#7767) * fix 'monitoring' link lose efficacy problem' (#7764) * docs/concepts/policy/pod-security-policy.md: minor fix. (#7659) * Update downward-api-volume-expose-pod-information.md (#7771) * Update downward-api-volume-expose-pod-information.md The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact. * Update downward-api-volume-expose-pod-information.md One more spot needed fixing. * Update downward-api-volume-expose-pod-information.md Yet another fix, in the container example. * Add Amadeus Case Study (#7783) * Add Amadeus Case Study * add Amadeus logo * Fixed Cyrillic с in 'kube-proxy-cm' (#7787) There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c. * install-kubectl: choose one installation method (#7705) The previous text layout suggested that all installations had to be done, one after another. * Update install-kubeadm.md (#7781) Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc. * repair failure link (#7788) * repair failure link * repair failure link * do change as required * Update k8s201.md (#7777) * Update k8s201.md Change instructions to download yams files directly from the website (as used in other pages.) Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step. * Update k8s201.md Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...) * Gramatical fix to kompose introduction (#7792) The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link. * update amadeus.html (#7800) * Fix a missing word in endpoint reconciler section (#7804) * add toc entry for pvcprotection downgrade issue doc * revert TOC change * Release 1.10 (#7818) * Refreshing installation instructions (#7495) * Refreshing installation instructions Added conjure-up. Updated displays and juju versions to current versions. * Updated anchors * Fixed image value version typo (#7768) Was inconsistent with other values * Update flocker reference to the github repo (#7784) * Fix typo in federation document (#7779) * an user -> a user (#7778) * Events are namespaced (#7767) * fix 'monitoring' link lose efficacy problem' (#7764) * docs/concepts/policy/pod-security-policy.md: minor fix. (#7659) * Update downward-api-volume-expose-pod-information.md (#7771) * Update downward-api-volume-expose-pod-information.md The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact. * Update downward-api-volume-expose-pod-information.md One more spot needed fixing. * Update downward-api-volume-expose-pod-information.md Yet another fix, in the container example. * Add Amadeus Case Study (#7783) * Add Amadeus Case Study * add Amadeus logo * Fixed Cyrillic с in 'kube-proxy-cm' (#7787) There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c. * install-kubectl: choose one installation method (#7705) The previous text layout suggested that all installations had to be done, one after another. * Update install-kubeadm.md (#7781) Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc. * repair failure link (#7788) * repair failure link * repair failure link * do change as required * Update k8s201.md (#7777) * Update k8s201.md Change instructions to download yams files directly from the website (as used in other pages.) Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step. * Update k8s201.md Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...) * Gramatical fix to kompose introduction (#7792) The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link. * update amadeus.html (#7800) * Fix a missing word in endpoint reconciler section (#7804) * Partners page updates (#7802) * Partners page updates * Update to ZTE link * Make using sysctls a task instead of a concept (#6808) Closes: #4505 * add a note when mount a configmap to pod (#7745) * adjust a note format (#7812) * Update docker-cli-to-kubectl.md (#7748) * Update docker-cli-to-kubectl.md Edited the document for adherence to the style guide and word usage. * Update docker-cli-to-kubectl.md * Incorporated the changes suggested. * Mount propagation update to include docker config (#7854) * update overridden config for 1.10 (#7847) * update overridden config for 1.10 * fix config file per comments * Update Extended Resource doc wrt cluster-level resources (#7759)
1 parent 770440d commit 409e77d

File tree

69 files changed

+2043
-400
lines changed

Some content is hidden

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

69 files changed

+2043
-400
lines changed

OWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ reviewers:
22
- tengqm
33
- zhangxiaoyu-zidif
44
- xiangpengzhao
5+
- bradtopol
56
approvers:
67
- heckj
78
- bradamant3

_config.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,27 @@ incremental: true
1313
safe: false
1414
lsi: false
1515

16-
latest: "v1.9"
16+
latest: "v1.10"
1717
defaults:
1818
-
1919
scope:
2020
path: ""
2121
values:
22-
fullversion: "v1.9.0"
23-
version: "v1.9"
22+
fullversion: "v1.10.0"
23+
version: "v1.10"
2424
githubbranch: "master"
2525
docsbranch: "master"
2626
versions:
27+
- fullversion: "v1.10.0"
28+
version: "v1.10"
29+
githubbranch: "v1.10.0"
30+
docsbranch: "release-1.10"
31+
url: https://kubernetes.io
2732
- fullversion: "v1.9.0"
2833
version: "v1.9"
2934
githubbranch: "v1.9.0"
3035
docsbranch: "release-1.9"
31-
url: https://kubernetes.io
36+
url: https://v1-9.docs.kubernetes.io
3237
- fullversion: "v1.8.4"
3338
version: "v1.8"
3439
githubbranch: "v1.8.4"
@@ -44,11 +49,6 @@ defaults:
4449
githubbranch: "v1.6.8"
4550
docsbranch: "release-1.6"
4651
url: https://v1-6.docs.kubernetes.io
47-
- fullversion: "v1.5.7"
48-
version: "v1.5"
49-
githubbranch: "v1.5.7"
50-
docsbranch: "release-1.5"
51-
url: https://v1-5.docs.kubernetes.io
5252
deprecated: false
5353
currentUrl: https://kubernetes.io/docs/home/
5454
nextUrl: http://kubernetes-io-vnext-staging.netlify.com/

_data/reference.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ toc:
3232
- docs/reference/workloads-18-19.md
3333

3434
- title: API Reference
35-
landing_page: /docs/api-reference/v1.8/
35+
landing_page: /docs/api-reference/v1.10/
3636
section:
37-
- title: v1.9
38-
path: /docs/reference/generated/kubernetes-api/v1.9/
37+
- title: v1.10
38+
path: /docs/reference/generated/kubernetes-api/v1.10/
3939
- docs/reference/labels-annotations-taints.md
4040
- title: OpenAPI and Swagger
4141
section:

_data/setup.yml

+5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ toc:
1111
- docs/imported/release/notes.md
1212
- docs/setup/building-from-source.md
1313

14+
- title: Version 1.10 Troubleshooting
15+
landing page: /docs/reference/pvc-finalizer-downgrade-issue/
16+
section:
17+
- docs/reference/pvc-finalizer-downgrade-issue.md
18+
1419
- title: Independent Solutions
1520
landing_page: /docs/getting-started-guides/minikube/
1621
section:

_data/tasks.yml

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ toc:
3232
- docs/tasks/configure-pod-container/configure-pod-initialization.md
3333
- docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md
3434
- docs/tasks/configure-pod-container/configure-pod-configmap.md
35+
- docs/tasks/configure-pod-container/share-process-namespace.md
3536
- docs/tools/kompose/user-guide.md
3637

3738
- title: Inject Data Into Applications
@@ -163,6 +164,7 @@ toc:
163164
- docs/tasks/administer-cluster/reserve-compute-resources.md
164165
- docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md
165166
- docs/tasks/administer-cluster/declare-network-policy.md
167+
- docs/tasks/administer-cluster/kms-provider.md
166168
- title: Install Network Policy Provider
167169
section:
168170
- docs/tasks/administer-cluster/calico-network-policy.md
@@ -184,6 +186,7 @@ toc:
184186
- docs/tasks/administer-cluster/dns-custom-nameservers.md
185187
- docs/tasks/administer-cluster/dns-debugging-resolution.md
186188
- docs/tasks/administer-cluster/pvc-protection.md
189+
- docs/tasks/administer-cluster/storage-object-in-use-protection.md
187190

188191
- title: Federation - Run an App on Multiple Clusters
189192
landing_page: /docs/tasks/federation/set-up-cluster-federation-kubefed/

cn/docs/admin/kubelet-authentication-authorization.md

+2-6
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,9 @@ To enable X509 client certificate authentication to the kubelet's HTTPS endpoint
3333
To enable API bearer tokens (including service account tokens) to be used to authenticate to the kubelet's HTTPS endpoint:
3434

3535
* ensure the `authentication.k8s.io/v1beta1` API group is enabled in the API server
36-
* start the kubelet with the `--authentication-token-webhook`, `--kubeconfig`, and `--require-kubeconfig` flags
36+
* start the kubelet with the `--authentication-token-webhook` and the `--kubeconfig` flags
3737
* the kubelet calls the `TokenReview` API on the configured API server to determine user information from bearer tokens
3838

39-
**Note:** The flag `--require-kubeconfig` is deprecated as of Kubernetes 1.8, this will be removed in a future version. You no longer need to use `--require-kubeconfig` in Kubernetes 1.8.
40-
4139
## Kubelet authorization
4240

4341
Any request that is successfully authenticated (including an anonymous request) is then authorized. The default authorization mode is `AlwaysAllow`, which allows all requests.
@@ -51,11 +49,9 @@ There are many possible reasons to subdivide access to the kubelet API:
5149
To subdivide access to the kubelet API, delegate authorization to the API server:
5250

5351
* ensure the `authorization.k8s.io/v1beta1` API group is enabled in the API server
54-
* start the kubelet with the `--authorization-mode=Webhook`, `--kubeconfig`, and `--require-kubeconfig` flags
52+
* start the kubelet with the `--authorization-mode=Webhook` and the `--kubeconfig` flags
5553
* the kubelet calls the `SubjectAccessReview` API on the configured API server to determine whether each request is authorized
5654

57-
**Note:** The flag `--require-kubeconfig` is deprecated as of Kubernetes 1.8, this will be removed in a future version. You no longer need to use `--require-kubeconfig` in Kubernetes 1.8.
58-
5955
The kubelet authorizes API requests using the same [request attributes](/docs/admin/authorization/#request-attributes) approach as the apiserver.
6056

6157
The verb is determined from the incoming request's HTTP verb:

cn/docs/admin/kubelet-tls-bootstrapping.md

-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ When starting the kubelet, if the file specified by `--kubeconfig` does not exis
190190
**Note:** The following flags are required to enable this bootstrapping when starting the kubelet:
191191

192192
```
193-
--require-kubeconfig
194193
--bootstrap-kubeconfig="/path/to/bootstrap/kubeconfig"
195194
```
196195

cn/docs/tasks/administer-cluster/kubelet-config-file.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ title: 通过配置文件设置 Kubelet 参数
4545
## 启动通过配置文件配置的 Kubelet 进程
4646

4747

48-
启动 Kubelet,需要打开 `KubeletConfigFile` 特性开关(feature gate)并将其 `--init-config-dir` 标志设置为包含 `kubelet` 文件的文件夹路径。Kubelet 将从 `kubelet` 文件中读取由 `KubeletConfiguration` 定义的参数,而不是从参数相关的命令行标志中读取。
48+
启动 Kubelet 需要将其 `--init-config-dir` 标志设置为包含 `kubelet` 文件的文件夹路径。Kubelet 将从 `kubelet` 文件中读取由 `KubeletConfiguration` 定义的参数,而不是从参数相关的命令行标志中读取。
4949

5050
{% endcapture %}
5151

cn/docs/user-guide/kubectl-overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Operation | Syntax | Description
9393
`configmaps` |`cm`
9494
`controllerrevisions` |
9595
`cronjobs` |
96-
`customresourcedefinition` |`crd`
96+
`customresourcedefinition` |`crd`, `crds`
9797
`daemonsets` |`ds`
9898
`deployments` |`deploy`
9999
`endpoints` |`ep`

docs/admin/admission-controllers.md

+44-32
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ controllers may modify the objects they admit; validating controllers may not.
3131
The admission control process proceeds in two phases. In the first phase,
3232
mutating admission controllers are run. In the second phase, validating
3333
admission controllers are run. Note again that some of the controllers are
34-
both. In both phases, the controllers are run in the order specified by the
35-
`--admission-control` flag of `kube-apiserver`.
34+
both.
3635

3736
If any of the controllers in either phase reject the request, the entire
3837
request is rejected immediately and an error is returned to the end-user.
@@ -54,13 +53,12 @@ support all the features you expect.
5453

5554
## How do I turn on an admission controller?
5655

57-
The Kubernetes API server supports a flag, `admission-control` that takes a comma-delimited,
58-
ordered list of admission control choices to invoke prior to modifying objects in the cluster.
59-
For example, the following command line turns on the `NamespaceLifecycle` and the `LimitRanger`
60-
admission controller:
56+
The Kubernetes API server flag `enable-admission-plugins` takes a comma-delimited list of admission control plugins to invoke prior to modifying objects in the cluster.
57+
For example, the following command line enables the `NamespaceLifecycle` and the `LimitRanger`
58+
admission control plugins:
6159

6260
```shell
63-
kube-apiserver --admission-control=NamespaceLifecyle,LimitRanger ...
61+
kube-apiserver --enable-admission-plugins=NamespaceLifecyle,LimitRanger ...
6462
```
6563

6664
**Note**: Depending on the way your Kubernetes cluster is deployed and how the
@@ -70,11 +68,19 @@ deployed as a systemd service, you may modify the manifest file for the API
7068
server if Kubernetes is deployed in a self-hosted way.
7169
{: .note}
7270

71+
## How do I turn off an admission controller?
72+
73+
The Kubernetes API server flag `disable-admission-plugins` takes a comma-delimited list of admission control plugins to be disabled, even if they are in the list of plugins enabled by default.
74+
75+
```shell
76+
kube-apiserver --disable-admission-plugins=PodNodeSelector,AlwaysDeny ...
77+
```
78+
7379
## What does each admission controller do?
7480

75-
### AlwaysAdmit
81+
### AlwaysAdmit (DEPRECATED)
7682

77-
Use this admission controller by itself to pass-through all requests.
83+
Use this admission controller by itself to pass-through all requests. AlwaysAdmit is DEPRECATED as no real meaning.
7884

7985
### AlwaysPullImages
8086

@@ -86,9 +92,9 @@ scheduled onto the right node), without any authorization check against the imag
8692
is enabled, images are always pulled prior to starting containers, which means valid credentials are
8793
required.
8894

89-
### AlwaysDeny
95+
### AlwaysDeny (DEPRECATED)
9096

91-
Rejects all requests. Used for testing.
97+
Rejects all requests. AlwaysDeny is DEPRECATED as no real meaning.
9298

9399
### DefaultStorageClass
94100

@@ -134,7 +140,7 @@ enabling this admission controller.
134140

135141
### EventRateLimit (alpha)
136142

137-
This admission controller is introduced in v1.9 to mitigate the problem where the API server gets flooded by
143+
This admission controller mitigates the problem where the API server gets flooded by
138144
event requests. The cluster admin can specify event rate limits by:
139145

140146
* Ensuring that `eventratelimit.admission.k8s.io/v1alpha1=true` is included in the
@@ -180,19 +186,15 @@ for more details.
180186
181187
### ExtendedResourceToleration
182188
183-
This plug-in is introduced in v1.9 to facilitate creation of dedicated nodes with extended resources.
189+
This plug-in facilitates creation of dedicated nodes with extended resources.
184190
If operators want to create dedicated nodes with extended resources (like GPUs, FPGAs etc.), they are expected to
185191
taint the node with the extended resource name as the key. This admission controller, if enabled, automatically
186192
adds tolerations for such taints to pods requesting extended resources, so users don't have to manually
187193
add these tolerations.
188194
189195
### ImagePolicyWebhook
190196
191-
The ImagePolicyWebhook admission controller allows a backend webhook to make admission decisions. You enable this admission controller by setting the admission-control option as follows:
192-
193-
```shell
194-
--admission-control=ImagePolicyWebhook
195-
```
197+
The ImagePolicyWebhook admission controller allows a backend webhook to make admission decisions.
196198
197199
#### Configuration File Format
198200
@@ -314,7 +316,6 @@ In any case, the annotations are provided by the user and are not validated by K
314316

315317
### Initializers (alpha)
316318

317-
This admission controller is introduced in v1.7.
318319
The admission controller determines the initializers of a resource based on the existing
319320
`InitializerConfiguration`s. It sets the pending initializers by modifying the
320321
metadata of the resource to be created.
@@ -331,7 +332,7 @@ The annotations added contain the information on what compute resources were aut
331332

332333
See the [InitialResources proposal](https://git.k8s.io/community/contributors/design-proposals/autoscaling/initial-resources.md) for more details.
333334

334-
### LimitPodHardAntiAffinity
335+
### LimitPodHardAntiAffinityTopology
335336

336337
This admission controller denies any pod that defines `AntiAffinity` topology key other than
337338
`kubernetes.io/hostname` in `requiredDuringSchedulingRequiredDuringExecution`.
@@ -414,27 +415,23 @@ This admission controller also protects the access to `metadata.ownerReferences[
414415
of an object, so that only users with "update" permission to the `finalizers`
415416
subresource of the referenced *owner* can change it.
416417

417-
### Persistent Volume Claim Protection (alpha)
418-
{% assign for_k8s_version="v1.9" %}{% include feature-state-alpha.md %}
419-
The `PVCProtection` plugin adds the `kubernetes.io/pvc-protection` finalizer to newly created Persistent Volume Claims (PVCs). In case a user deletes a PVC the PVC is not removed until the finalizer is removed from the PVC by PVC Protection Controller. Refer to the [PVC Protection](/docs/concepts/storage/persistent-volumes/#persistent-volume-claim-protection) for more detailed information.
420-
421-
### PersistentVolumeLabel
418+
### PersistentVolumeLabel (DEPRECATED)
422419

423420
This admission controller automatically attaches region or zone labels to PersistentVolumes
424421
as defined by the cloud provider (for example, GCE or AWS).
425422
It helps ensure the Pods and the PersistentVolumes mounted are in the same
426423
region and/or zone.
427424
If the admission controller doesn't support automatic labelling your PersistentVolumes, you
428425
may need to add the labels manually to prevent pods from mounting volumes from
429-
a different zone.
426+
a different zone. PersistentVolumeLabel is DEPRECATED and labeling persistent volumes has been taken over by [cloud controller manager](/docs/tasks/administer-cluster/running-cloud-controller/).
430427

431428
### PodNodeSelector
432429

433430
This admission controller defaults and limits what node selectors may be used within a namespace by reading a namespace annotation and a global configuration.
434431

435432
#### Configuration File Format
436433

437-
PodNodeSelector uses a configuration file to set options for the behavior of the backend.
434+
`PodNodeSelector` uses a configuration file to set options for the behavior of the backend.
438435
Note that the configuration file format will move to a versioned file in a future release.
439436
This file may be json or yaml and has the following format:
440437

@@ -445,7 +442,7 @@ podNodeSelectorPluginConfig:
445442
namespace2: <node-selectors-labels>
446443
```
447444

448-
Reference the PodNodeSelector configuration file from the file provided to the API server's command line flag `--admission-control-config-file`:
445+
Reference the `PodNodeSelector` configuration file from the file provided to the API server's command line flag `--admission-control-config-file`:
449446

450447
```yaml
451448
kind: AdmissionConfiguration
@@ -457,7 +454,7 @@ plugins:
457454
```
458455

459456
#### Configuration Annotation Format
460-
PodNodeSelector uses the annotation key `scheduler.alpha.kubernetes.io/node-selector` to assign node selectors to namespaces.
457+
`PodNodeSelector` uses the annotation key `scheduler.kubernetes.io/node-selector` to assign node selectors to namespaces.
461458

462459
```yaml
463460
apiVersion: v1
@@ -468,6 +465,19 @@ metadata:
468465
name: namespace3
469466
```
470467

468+
#### Internal Behavior
469+
This admission controller has the following behavior:
470+
1. If the `Namespace` has an annotation with a key `scheduler.kubernetes.io/nodeSelector`, use its value as the
471+
node selector.
472+
1. If the namespace lacks such an annotation, use the `clusterDefaultNodeSelector` defined in the `PodNodeSelector`
473+
plugin configuration file as the node selector.
474+
1. Evaluate the pod's node selector against the namespace node selector for conflicts. Conflicts result in rejection.
475+
1. Evaluate the pod's node selector against the namespace-specific whitelist defined the plugin configuration file.
476+
Conflicts result in rejection.
477+
478+
**Note:** `PodTolerationRestriction` is more versatile and powerful than `PodNodeSelector` and can encompass the scenarios supported by `PodNodeSelector`.
479+
{: .note}
480+
471481
### PersistentVolumeClaimResize
472482

473483
This admission controller implements additional validations for checking incoming `PersistentVolumeClaim` resize requests.
@@ -545,8 +555,6 @@ objects in your Kubernetes deployment, you MUST use this admission controller to
545555

546556
See the [resourceQuota design doc](https://git.k8s.io/community/contributors/design-proposals/resource-management/admission_control_resource_quota.md) and the [example of Resource Quota](/docs/concepts/policy/resource-quotas/) for more details.
547557

548-
It is strongly encouraged that this admission controller is configured last in the sequence of admission controllers. This is
549-
so that quota is not prematurely incremented only for the request to be rejected later in admission control.
550558

551559
### SecurityContextDeny
552560

@@ -557,6 +565,10 @@ This admission controller will deny any pod that attempts to set certain escalat
557565
This admission controller implements automation for [serviceAccounts](/docs/user-guide/service-accounts).
558566
We strongly recommend using this admission controller if you intend to make use of Kubernetes `ServiceAccount` objects.
559567

568+
### Storage Object in Use Protection (beta)
569+
{% assign for_k8s_version="v1.10" %}{% include feature-state-beta.md %}
570+
The `StorageObjectInUseProtection` plugin adds the `kubernetes.io/pvc-protection` or `kubernetes.io/pv-protection` finalizers to newly created Persistent Volume Claims (PVCs) or Persistent Volumes (PV). In case a user deletes a PVC or PV the PVC or PV is not removed until the finalizer is removed from the PVC or PV by PVC or PV Protection Controller. Refer to the [Storage Object in Use Protection](/docs/concepts/storage/persistent-volumes/#storage-object-in-use-protection) for more detailed information.
571+
560572
### ValidatingAdmissionWebhook (alpha in 1.8; beta in 1.9)
561573

562574
This admission controller calls any validating webhooks which match the request. Matching
@@ -577,7 +589,7 @@ versions >= 1.9).
577589
## Is there a recommended set of admission controllers to use?
578590

579591
Yes.
580-
For Kubernetes >= 1.9.0, we strongly recommend running the following set of admission controllers (order matters):
592+
For Kubernetes >= 1.9.0, we strongly recommend running the following set of admission controllers (order matters for 1.9 but not >1.10):
581593

582594
```shell
583595
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota

0 commit comments

Comments
 (0)