Update admission controller links (#9386)
* update admission-controller links (cherry picked from commit 37043991a61e5e6f4ac1c463b14c65430b192553) * updated links found using greedier regex (cherry picked from commit 45c6d4cf7430245a3b4e81eae245000beea88841) * correct link in cn/docs/admin/authorization/_index.md * fix incorrect changes introduced in eac3619 * undo update of cn content * fix link * fix admission webhook link
This commit is contained in:
@@ -205,7 +205,7 @@ Reference [here](http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_pod
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
In case you are running containers with elevated privileges (--privileged) you should consider using the “DenyEscalatingExec” admission control. This control denies exec and attach commands to pods that run with escalated privileges that allow host access. This includes pods that run as privileged, have access to the host IPC namespace, and have access to the host PID namespace. For more details on admission controls, see the Kubernetes [documentation](http://kubernetes.io/docs/admin/admission-controllers/).
|
In case you are running containers with elevated privileges (--privileged) you should consider using the “DenyEscalatingExec” admission control. This control denies exec and attach commands to pods that run with escalated privileges that allow host access. This includes pods that run as privileged, have access to the host IPC namespace, and have access to the host PID namespace. For more details on admission controls, see the Kubernetes [documentation](http://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ The admission stage of API server processing is one of the most powerful tools f
|
|||||||
|
|
||||||
|
|
||||||
## What is Admission?
|
## What is Admission?
|
||||||
[Admission](https://kubernetes.io/docs/admin/admission-controllers/#what-are-they) is the phase of [handling an API server request](https://blog.openshift.com/kubernetes-deep-dive-api-server-part-1/) that happens before a resource is persisted, but after authorization. Admission gets access to the same information as authorization (user, URL, etc) and the complete body of an API request (for most requests).
|
[Admission](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#what-are-they) is the phase of [handling an API server request](https://blog.openshift.com/kubernetes-deep-dive-api-server-part-1/) that happens before a resource is persisted, but after authorization. Admission gets access to the same information as authorization (user, URL, etc) and the complete body of an API request (for most requests).
|
||||||
|
|
||||||
[](http://2.bp.blogspot.com/-p8WGg2BATsY/WlfywbD_tAI/AAAAAAAAAJw/mDqZV0dB4_Y0gXXQp_1tQ7CtMRSd6lHVwCK4BGAYYCw/s1600/Screen%2BShot%2B2018-01-11%2Bat%2B3.22.07%2BPM.png)
|
[](http://2.bp.blogspot.com/-p8WGg2BATsY/WlfywbD_tAI/AAAAAAAAAJw/mDqZV0dB4_Y0gXXQp_1tQ7CtMRSd6lHVwCK4BGAYYCw/s1600/Screen%2BShot%2B2018-01-11%2Bat%2B3.22.07%2BPM.png)
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Note: Not all distros are actively maintained. Choose distros which have been te
|
|||||||
|
|
||||||
* [Authorization](/docs/reference/access-authn-authz/authorization/) is separate from authentication, and controls how HTTP calls are handled.
|
* [Authorization](/docs/reference/access-authn-authz/authorization/) is separate from authentication, and controls how HTTP calls are handled.
|
||||||
|
|
||||||
* [Using Admission Controllers](/docs/admin/admission-controllers/) explains plug-ins which intercepts requests to the Kubernetes API server after authentication and authorization.
|
* [Using Admission Controllers](/docs/reference/access-authn-authz/admission-controllers/) explains plug-ins which intercepts requests to the Kubernetes API server after authentication and authorization.
|
||||||
|
|
||||||
* [Using Sysctls in a Kubernetes Cluster](/docs/concepts/cluster-administration/sysctl-cluster/) describes to an administrator how to use the `sysctl` command-line tool to set kernel parameters .
|
* [Using Sysctls in a Kubernetes Cluster](/docs/concepts/cluster-administration/sysctl-cluster/) describes to an administrator how to use the `sysctl` command-line tool to set kernel parameters .
|
||||||
|
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ pods that shouldn't be running. A few of the use cases are
|
|||||||
a particular set of users, you can add a taint to those nodes (say,
|
a particular set of users, you can add a taint to those nodes (say,
|
||||||
`kubectl taint nodes nodename dedicated=groupName:NoSchedule`) and then add a corresponding
|
`kubectl taint nodes nodename dedicated=groupName:NoSchedule`) and then add a corresponding
|
||||||
toleration to their pods (this would be done most easily by writing a custom
|
toleration to their pods (this would be done most easily by writing a custom
|
||||||
[admission controller](/docs/admin/admission-controllers/)).
|
[admission controller](/docs/reference/access-authn-authz/admission-controllers/)).
|
||||||
The pods with the tolerations will then be allowed to use the tainted (dedicated) nodes as
|
The pods with the tolerations will then be allowed to use the tainted (dedicated) nodes as
|
||||||
well as any other nodes in the cluster. If you want to dedicate the nodes to them *and*
|
well as any other nodes in the cluster. If you want to dedicate the nodes to them *and*
|
||||||
ensure they *only* use the dedicated nodes, then you should additionally add a label similar
|
ensure they *only* use the dedicated nodes, then you should additionally add a label similar
|
||||||
@@ -176,12 +176,12 @@ hardware (e.g. `kubectl taint nodes nodename special=true:NoSchedule` or
|
|||||||
`kubectl taint nodes nodename special=true:PreferNoSchedule`) and adding a corresponding
|
`kubectl taint nodes nodename special=true:PreferNoSchedule`) and adding a corresponding
|
||||||
toleration to pods that use the special hardware. As in the dedicated nodes use case,
|
toleration to pods that use the special hardware. As in the dedicated nodes use case,
|
||||||
it is probably easiest to apply the tolerations using a custom
|
it is probably easiest to apply the tolerations using a custom
|
||||||
[admission controller](/docs/admin/admission-controllers/)).
|
[admission controller](/docs/reference/access-authn-authz/admission-controllers/).
|
||||||
For example, it is recommended to use [Extended
|
For example, it is recommended to use [Extended
|
||||||
Resources](/docs/concepts/configuration/manage-compute-resources-container/#extended-resources)
|
Resources](/docs/concepts/configuration/manage-compute-resources-container/#extended-resources)
|
||||||
to represent the special hardware, taint your special hardware nodes with the
|
to represent the special hardware, taint your special hardware nodes with the
|
||||||
extended resource name and run the
|
extended resource name and run the
|
||||||
[ExtendedResourceToleration](/docs/admin/admission-controllers/#extendedresourcetoleration)
|
[ExtendedResourceToleration](/docs/reference/access-authn-authz/admission-controllers/#extendedresourcetoleration)
|
||||||
admission controller. Now, because the nodes are tainted, no pods without the
|
admission controller. Now, because the nodes are tainted, no pods without the
|
||||||
toleration will schedule on them. But when you submit a pod that requests the
|
toleration will schedule on them. But when you submit a pod that requests the
|
||||||
extended resource, the `ExtendedResourceToleration` admission controller will
|
extended resource, the `ExtendedResourceToleration` admission controller will
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ you can do one of the following:
|
|||||||
|
|
||||||
- set the `imagePullPolicy` of the container to `Always`;
|
- set the `imagePullPolicy` of the container to `Always`;
|
||||||
- use `:latest` as the tag for the image to use;
|
- use `:latest` as the tag for the image to use;
|
||||||
- enable the [AlwaysPullImages](/docs/admin/admission-controllers/#alwayspullimages) admission controller.
|
- enable the [AlwaysPullImages](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) admission controller.
|
||||||
|
|
||||||
If you did not specify tag of your image, it will be assumed as `:latest`, with
|
If you did not specify tag of your image, it will be assumed as `:latest`, with
|
||||||
pull image policy of `Always` correspondingly.
|
pull image policy of `Always` correspondingly.
|
||||||
@@ -315,10 +315,10 @@ common use cases and suggested solutions.
|
|||||||
- It will work better with cluster autoscaling than manual node configuration.
|
- It will work better with cluster autoscaling than manual node configuration.
|
||||||
- Or, on a cluster where changing the node configuration is inconvenient, use `imagePullSecrets`.
|
- Or, on a cluster where changing the node configuration is inconvenient, use `imagePullSecrets`.
|
||||||
1. Cluster with a proprietary images, a few of which require stricter access control.
|
1. Cluster with a proprietary images, a few of which require stricter access control.
|
||||||
- Ensure [AlwaysPullImages admission controller](/docs/admin/admission-controllers/#alwayspullimages) is active. Otherwise, all Pods potentially have access to all images.
|
- Ensure [AlwaysPullImages admission controller](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) is active. Otherwise, all Pods potentially have access to all images.
|
||||||
- Move sensitive data into a "Secret" resource, instead of packaging it in an image.
|
- Move sensitive data into a "Secret" resource, instead of packaging it in an image.
|
||||||
1. A multi-tenant cluster where each tenant needs own private registry.
|
1. A multi-tenant cluster where each tenant needs own private registry.
|
||||||
- Ensure [AlwaysPullImages admission controller](/docs/admin/admission-controllers/#alwayspullimages) is active. Otherwise, all Pods of all tenants potentially have access to all images.
|
- Ensure [AlwaysPullImages admission controller](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) is active. Otherwise, all Pods of all tenants potentially have access to all images.
|
||||||
- Run a private registry with authorization required.
|
- Run a private registry with authorization required.
|
||||||
- Generate registry credential for each tenant, put into secret, and populate secret to each tenant namespace.
|
- Generate registry credential for each tenant, put into secret, and populate secret to each tenant namespace.
|
||||||
- The tenant adds that secret to imagePullSecrets of each namespace.
|
- The tenant adds that secret to imagePullSecrets of each namespace.
|
||||||
|
|||||||
@@ -152,9 +152,9 @@ Kubernetes provides several built-in authentication methods, and an [Authenticat
|
|||||||
|
|
||||||
### Dynamic Admission Control
|
### Dynamic Admission Control
|
||||||
|
|
||||||
After a request is authorized, if it is a write operation, it also goes through [Admission Control](/docs/admin/admission-controllers/) steps. In addition to the built-in steps, there are several extensions:
|
After a request is authorized, if it is a write operation, it also goes through [Admission Control](/docs/reference/access-authn-authz/admission-controllers/) steps. In addition to the built-in steps, there are several extensions:
|
||||||
|
|
||||||
* The [Image Policy webhook](/docs/admin/admission-controllers/#imagepolicywebhook) restricts what images can be run in containers.
|
* The [Image Policy webhook](/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook) restricts what images can be run in containers.
|
||||||
* To make arbitrary admission control decisions, a general [Admission webhook](/docs/reference/access-authn-authz/extensible-admission-controllers/#admission-webhooks) can be used. Admission Webhooks can reject creations or updates.
|
* To make arbitrary admission control decisions, a general [Admission webhook](/docs/reference/access-authn-authz/extensible-admission-controllers/#admission-webhooks) can be used. Admission Webhooks can reject creations or updates.
|
||||||
* [Initializers](/docs/reference/access-authn-authz/extensible-admission-controllers/#initializers) are controllers that can modify objects before they are created. Initializers can modify initial object creations but cannot affect updates to objects. Initializers can also reject objects.
|
* [Initializers](/docs/reference/access-authn-authz/extensible-admission-controllers/#initializers) are controllers that can modify objects before they are created. Initializers can modify initial object creations but cannot affect updates to objects. Initializers can also reject objects.
|
||||||
|
|
||||||
|
|||||||
@@ -51,9 +51,9 @@ administrator to control the following:
|
|||||||
|
|
||||||
Pod security policy control is implemented as an optional (but recommended)
|
Pod security policy control is implemented as an optional (but recommended)
|
||||||
[admission
|
[admission
|
||||||
controller](/docs/admin/admission-controllers/#podsecuritypolicy). PodSecurityPolicies
|
controller](/docs/reference/access-authn-authz/admission-controllers/#podsecuritypolicy). PodSecurityPolicies
|
||||||
are enforced by [enabling the admission
|
are enforced by [enabling the admission
|
||||||
controller](/docs/admin/admission-controllers/#how-do-i-turn-on-an-admission-control-plug-in),
|
controller](/docs/reference/access-authn-authz/admission-controllers/#how-do-i-turn-on-an-admission-control-plug-in),
|
||||||
but doing so without authorizing any policies **will prevent any pods from being
|
but doing so without authorizing any policies **will prevent any pods from being
|
||||||
created** in the cluster.
|
created** in the cluster.
|
||||||
|
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ The following types are supported:
|
|||||||
| `persistentvolumeclaims` | The total number of [persistent volume claims](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) that can exist in the namespace. |
|
| `persistentvolumeclaims` | The total number of [persistent volume claims](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) that can exist in the namespace. |
|
||||||
| `pods` | The total number of pods in a non-terminal state that can exist in the namespace. A pod is in a terminal state if `.status.phase in (Failed, Succeeded)` is true. |
|
| `pods` | The total number of pods in a non-terminal state that can exist in the namespace. A pod is in a terminal state if `.status.phase in (Failed, Succeeded)` is true. |
|
||||||
| `replicationcontrollers` | The total number of replication controllers that can exist in the namespace. |
|
| `replicationcontrollers` | The total number of replication controllers that can exist in the namespace. |
|
||||||
| `resourcequotas` | The total number of [resource quotas](/docs/admin/admission-controllers/#resourcequota) that can exist in the namespace. |
|
| `resourcequotas` | The total number of [resource quotas](/docs/reference/access-authn-authz/admission-controllers/#resourcequota) that can exist in the namespace. |
|
||||||
| `services` | The total number of services that can exist in the namespace. |
|
| `services` | The total number of services that can exist in the namespace. |
|
||||||
| `services.loadbalancers` | The total number of services of type load balancer that can exist in the namespace. |
|
| `services.loadbalancers` | The total number of services of type load balancer that can exist in the namespace. |
|
||||||
| `services.nodeports` | The total number of services of type node port that can exist in the namespace. |
|
| `services.nodeports` | The total number of services of type node port that can exist in the namespace. |
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ dynamically provisioned if no storage class is specified. A cluster administrato
|
|||||||
can enable this behavior by:
|
can enable this behavior by:
|
||||||
|
|
||||||
- Marking one `StorageClass` object as *default*;
|
- Marking one `StorageClass` object as *default*;
|
||||||
- Making sure that the [`DefaultStorageClass` admission controller](/docs/admin/admission-controllers/#defaultstorageclass)
|
- Making sure that the [`DefaultStorageClass` admission controller](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
|
||||||
is enabled on the API server.
|
is enabled on the API server.
|
||||||
|
|
||||||
An administrator can mark a specific `StorageClass` as default by adding the
|
An administrator can mark a specific `StorageClass` as default by adding the
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ provisioning to occur. Claims that request the class `""` effectively disable
|
|||||||
dynamic provisioning for themselves.
|
dynamic provisioning for themselves.
|
||||||
|
|
||||||
To enable dynamic storage provisioning based on storage class, the cluster administrator
|
To enable dynamic storage provisioning based on storage class, the cluster administrator
|
||||||
needs to enable the `DefaultStorageClass` [admission controller](/docs/admin/admission-controllers/#defaultstorageclass)
|
needs to enable the `DefaultStorageClass` [admission controller](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
|
||||||
on the API server. This can be done, for example, by ensuring that `DefaultStorageClass` is
|
on the API server. This can be done, for example, by ensuring that `DefaultStorageClass` is
|
||||||
among the comma-delimited, ordered list of values for the `--enable-admission-plugins` flag of
|
among the comma-delimited, ordered list of values for the `--enable-admission-plugins` flag of
|
||||||
the API server component. For more information on API server command line flags,
|
the API server component. For more information on API server command line flags,
|
||||||
@@ -466,7 +466,7 @@ equal to `""` is always interpreted to be requesting a PV with no class, so it
|
|||||||
can only be bound to PVs with no class (no annotation or one set equal to
|
can only be bound to PVs with no class (no annotation or one set equal to
|
||||||
`""`). A PVC with no `storageClassName` is not quite the same and is treated differently
|
`""`). A PVC with no `storageClassName` is not quite the same and is treated differently
|
||||||
by the cluster depending on whether the
|
by the cluster depending on whether the
|
||||||
[`DefaultStorageClass` admission plugin](/docs/admin/admission-controllers/#defaultstorageclass)
|
[`DefaultStorageClass` admission plugin](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
|
||||||
is turned on.
|
is turned on.
|
||||||
|
|
||||||
* If the admission plugin is turned on, the administrator may specify a
|
* If the admission plugin is turned on, the administrator may specify a
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ the owner object.
|
|||||||
|
|
||||||
Note that in the "foregroundDeletion", only dependents with
|
Note that in the "foregroundDeletion", only dependents with
|
||||||
`ownerReference.blockOwnerDeletion` block the deletion of the owner object.
|
`ownerReference.blockOwnerDeletion` block the deletion of the owner object.
|
||||||
Kubernetes version 1.7 added an [admission controller](/docs/admin/admission-controllers/#ownerreferencespermissionenforcement) that controls user access to set
|
Kubernetes version 1.7 added an [admission controller](/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement) that controls user access to set
|
||||||
`blockOwnerDeletion` to true based on delete permissions on the owner object, so that
|
`blockOwnerDeletion` to true based on delete permissions on the owner object, so that
|
||||||
unauthorized dependents cannot delay deletion of an owner object.
|
unauthorized dependents cannot delay deletion of an owner object.
|
||||||
|
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ If unspecified, the API server's TLS private key will be used.
|
|||||||
|
|
||||||
Service accounts are usually created automatically by the API server and
|
Service accounts are usually created automatically by the API server and
|
||||||
associated with pods running in the cluster through the `ServiceAccount`
|
associated with pods running in the cluster through the `ServiceAccount`
|
||||||
[Admission Controller](/docs/admin/admission-controllers/). Bearer tokens are
|
[Admission Controller](/docs/reference/access-authn-authz/admission-controllers/). Bearer tokens are
|
||||||
mounted into pods at well-known locations, and allow in-cluster processes to
|
mounted into pods at well-known locations, and allow in-cluster processes to
|
||||||
talk to the API server. Accounts may be explicitly associated with pods using the
|
talk to the API server. Accounts may be explicitly associated with pods using the
|
||||||
`serviceAccountName` field of a `PodSpec`.
|
`serviceAccountName` field of a `PodSpec`.
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ rejects, then the request is immediately rejected.
|
|||||||
In addition to rejecting objects, admission controllers can also set complex defaults for
|
In addition to rejecting objects, admission controllers can also set complex defaults for
|
||||||
fields.
|
fields.
|
||||||
|
|
||||||
The available Admission Control Modules are described [here](/docs/admin/admission-controllers/).
|
The available Admission Control Modules are described [here](/docs/reference/access-authn-authz/admission-controllers/).
|
||||||
|
|
||||||
Once a request passes all admission controllers, it is validated using the validation routines
|
Once a request passes all admission controllers, it is validated using the validation routines
|
||||||
for the corresponding API object, and then written to the object store (shown as step **4**).
|
for the corresponding API object, and then written to the object store (shown as step **4**).
|
||||||
|
|||||||
@@ -556,7 +556,8 @@ The permissions required by individual control loops are contained in the <a hre
|
|||||||
<td><b>system:node</b></td>
|
<td><b>system:node</b></td>
|
||||||
<td>None in 1.8+</td>
|
<td>None in 1.8+</td>
|
||||||
<td>Allows access to resources required by the kubelet component, <b>including read access to all secrets, and write access to all pod status objects</b>.
|
<td>Allows access to resources required by the kubelet component, <b>including read access to all secrets, and write access to all pod status objects</b>.
|
||||||
As of 1.7, use of the <a href="/docs/reference/access-authn-authz/node/">Node authorizer</a> and <a href="/docs/admin/admission-controllers/#noderestriction">NodeRestriction admission plugin</a> is recommended instead of this role, and allow granting API access to kubelets based on the pods scheduled to run on them.
|
|
||||||
|
As of 1.7, use of the <a href="/docs/reference/access-authn-authz/node/">Node authorizer</a> and <a href="/docs/reference/access-authn-authz/admission-controllers/#noderestriction">NodeRestriction admission plugin</a> is recommended instead of this role, and allow granting API access to kubelets based on the pods scheduled to run on them.
|
||||||
Prior to 1.7, this role was automatically bound to the `system:nodes` group.
|
Prior to 1.7, this role was automatically bound to the `system:nodes` group.
|
||||||
In 1.7, this role was automatically bound to the `system:nodes` group if the `Node` authorization mode is not enabled.
|
In 1.7, this role was automatically bound to the `system:nodes` group if the `Node` authorization mode is not enabled.
|
||||||
In 1.8+, no binding is automatically created.
|
In 1.8+, no binding is automatically created.
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
|
|||||||
- `HugePages`: Enable the allocation and consumption of pre-allocated [huge pages](/docs/tasks/manage-hugepages/scheduling-hugepages/).
|
- `HugePages`: Enable the allocation and consumption of pre-allocated [huge pages](/docs/tasks/manage-hugepages/scheduling-hugepages/).
|
||||||
- `HyperVContainer`: Enable [Hyper-V isolation](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container) for Windows containers.
|
- `HyperVContainer`: Enable [Hyper-V isolation](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container) for Windows containers.
|
||||||
- `Intializers`: Enable the [dynamic admission control](/docs/reference/access-authn-authz/extensible-admission-controllers/)
|
- `Intializers`: Enable the [dynamic admission control](/docs/reference/access-authn-authz/extensible-admission-controllers/)
|
||||||
as an extension to the built-in [admission controllers](/docs/admin/admission-controllers/).
|
as an extension to the built-in [admission controllers](/docs/reference/access-authn-authz/admission-controllers/).
|
||||||
When the `Initializers` admission controller is enabled, this feature is automatically enabled.
|
When the `Initializers` admission controller is enabled, this feature is automatically enabled.
|
||||||
- `KubeletConfigFile`: Enable loading kubelet configuration from a file specified using a config file.
|
- `KubeletConfigFile`: Enable loading kubelet configuration from a file specified using a config file.
|
||||||
See [setting kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/) for more details.
|
See [setting kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/) for more details.
|
||||||
|
|||||||
@@ -239,17 +239,17 @@ Other API server flags that are set unconditionally are:
|
|||||||
- `--allow-privileged` to `true` (required e.g. by kube proxy)
|
- `--allow-privileged` to `true` (required e.g. by kube proxy)
|
||||||
- `--requestheader-client-ca-file` to `front-proxy-ca.crt`
|
- `--requestheader-client-ca-file` to `front-proxy-ca.crt`
|
||||||
- `--enable-admission-plugins` to:
|
- `--enable-admission-plugins` to:
|
||||||
- [`Initializers`](/docs/admin/admission-controllers/#initializers-alpha) to enable [Dynamic Admission Control](/docs/reference/access-authn-authz/extensible-admission-controllers/).
|
- [`Initializers`](/docs/reference/access-authn-authz/admission-controllers/#initializers-alpha) to enable [Dynamic Admission Control](/docs/reference/access-authn-authz/extensible-admission-controllers/).
|
||||||
- [`NamespaceLifecycle`](/docs/admin/admission-controllers/#namespacelifecycle) e.g. to avoid deletion of
|
- [`NamespaceLifecycle`](/docs/reference/access-authn-authz/admission-controllers/#namespacelifecycle) e.g. to avoid deletion of
|
||||||
system reserved namespaces
|
system reserved namespaces
|
||||||
- [`LimitRanger`](/docs/admin/admission-controllers/#limitranger) and [`ResourceQuota`](/docs/admin/admission-controllers/#resourcequota) to enforce limits on namespaces
|
- [`LimitRanger`](/docs/reference/access-authn-authz/admission-controllers/#limitranger) and [`ResourceQuota`](/docs/reference/access-authn-authz/admission-controllers/#resourcequota) to enforce limits on namespaces
|
||||||
- [`ServiceAccount`](/docs/admin/admission-controllers/#serviceaccount) to enforce service account automation
|
- [`ServiceAccount`](/docs/reference/access-authn-authz/admission-controllers/#serviceaccount) to enforce service account automation
|
||||||
- [`PersistentVolumeLabel`](/docs/admin/admission-controllers/#persistentvolumelabel) attaches region or zone labels to
|
- [`PersistentVolumeLabel`](/docs/reference/access-authn-authz/admission-controllers/#persistentvolumelabel) attaches region or zone labels to
|
||||||
PersistentVolumes as defined by the cloud provider (This admission controller is deprecated and will be removed in a future version.
|
PersistentVolumes as defined by the cloud provider (This admission controller is deprecated and will be removed in a future version.
|
||||||
It is not deployed by kubeadm by default with v1.9 onwards when not explicitly opting into using `gce` or `aws` as cloud providers)
|
It is not deployed by kubeadm by default with v1.9 onwards when not explicitly opting into using `gce` or `aws` as cloud providers)
|
||||||
- [`DefaultStorageClass`](/docs/admin/admission-controllers/#defaultstorageclass) to enforce default storage class on `PersistentVolumeClaim` objects
|
- [`DefaultStorageClass`](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass) to enforce default storage class on `PersistentVolumeClaim` objects
|
||||||
- [`DefaultTolerationSeconds`](/docs/admin/admission-controllers/#defaulttolerationseconds)
|
- [`DefaultTolerationSeconds`](/docs/reference/access-authn-authz/admission-controllers/#defaulttolerationseconds)
|
||||||
- [`NodeRestriction`](/docs/admin/admission-controllers/#noderestriction) to limit what a kubelet can modify
|
- [`NodeRestriction`](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) to limit what a kubelet can modify
|
||||||
(e.g. only pods on this node)
|
(e.g. only pods on this node)
|
||||||
- `--kubelet-preferred-address-types` to `InternalIP,ExternalIP,Hostname;` this makes `kubectl logs` and other API server-kubelet
|
- `--kubelet-preferred-address-types` to `InternalIP,ExternalIP,Hostname;` this makes `kubectl logs` and other API server-kubelet
|
||||||
communication work in environments where the hostnames of the nodes aren't resolvable
|
communication work in environments where the hostnames of the nodes aren't resolvable
|
||||||
|
|||||||
@@ -608,7 +608,7 @@ Here are some apiserver flags you may need to set:
|
|||||||
- `--tls-cert-file=/srv/kubernetes/server.cert`
|
- `--tls-cert-file=/srv/kubernetes/server.cert`
|
||||||
- `--tls-private-key-file=/srv/kubernetes/server.key`
|
- `--tls-private-key-file=/srv/kubernetes/server.key`
|
||||||
- `--enable-admission-plugins=$RECOMMENDED_LIST`
|
- `--enable-admission-plugins=$RECOMMENDED_LIST`
|
||||||
- See [admission controllers](/docs/admin/admission-controllers/) for recommended arguments.
|
- See [admission controllers](/docs/reference/access-authn-authz/admission-controllers/) for recommended arguments.
|
||||||
- `--allow-privileged=true`, only if you trust your cluster user to run pods as root.
|
- `--allow-privileged=true`, only if you trust your cluster user to run pods as root.
|
||||||
|
|
||||||
If you are following the firewall-only security approach, then use these arguments:
|
If you are following the firewall-only security approach, then use these arguments:
|
||||||
|
|||||||
@@ -55,9 +55,8 @@ an integrated [Role-Based Access Control (RBAC)](/docs/reference/access-authn-au
|
|||||||
set of permissions bundled into roles. These permissions combine verbs (get, create, delete) with
|
set of permissions bundled into roles. These permissions combine verbs (get, create, delete) with
|
||||||
resources (pods, services, nodes) and can be namespace or cluster scoped. A set of out of the box
|
resources (pods, services, nodes) and can be namespace or cluster scoped. A set of out of the box
|
||||||
roles are provided that offer reasonable default separation of responsibility depending on what
|
roles are provided that offer reasonable default separation of responsibility depending on what
|
||||||
actions a client might want to perform. It is recommended that you use the [Node](/docs/reference/access-authn-authz/node/)
|
actions a client might want to perform. It is recommended that you use the [Node](/docs/reference/access-authn-authz/node/) and [RBAC](/docs/reference/access-authn-authz/rbac/) authorizers together, in combination with the
|
||||||
and [RBAC](/docs/reference/access-authn-authz/rbac/) authorizers together, in combination with the
|
[NodeRestriction](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin.
|
||||||
[NodeRestriction](/docs/admin/admission-controllers/#noderestriction) admission plugin.
|
|
||||||
|
|
||||||
As with authentication, simple and broad roles may be appropriate for smaller clusters, but as
|
As with authentication, simple and broad roles may be appropriate for smaller clusters, but as
|
||||||
more users interact with the cluster, it may become necessary to separate teams into separate
|
more users interact with the cluster, it may become necessary to separate teams into separate
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ In Kubernetes, you configure access control:
|
|||||||
|
|
||||||
* [Controlling Access to the Kubernetes API](/docs/reference/access-authn-authz/controlling-access/)
|
* [Controlling Access to the Kubernetes API](/docs/reference/access-authn-authz/controlling-access/)
|
||||||
* [Authenticating](/docs/reference/access-authn-authz/authentication/)
|
* [Authenticating](/docs/reference/access-authn-authz/authentication/)
|
||||||
* [Using Admission Controllers](/docs/admin/admission-controllers/)
|
* [Using Admission Controllers](/docs/reference/access-authn-authz/admission-controllers/)
|
||||||
|
|
||||||
You also configure authorization. That is, you determine not just how users and services authenticate to the API server, or whether they have access, but also what resources they have access to. Role-based access control (RBAC) is the recommended mechanism for controlling authorization to Kubernetes resources. Other authorization modes are available for more specific use cases.
|
You also configure authorization. That is, you determine not just how users and services authenticate to the API server, or whether they have access, but also what resources they have access to. Role-based access control (RBAC) is the recommended mechanism for controlling authorization to Kubernetes resources. Other authorization modes are available for more specific use cases.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user