From 5bc7de4f1d14dcc530172998b55a349950af8408 Mon Sep 17 00:00:00 2001 From: Peter Novotnak Date: Tue, 16 Aug 2016 09:14:22 -0700 Subject: [PATCH 01/27] noted exclusivity of volume claims and namespacing --- docs/user-guide/persistent-volumes/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index e4ef046107..fdfba107e8 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -33,7 +33,7 @@ A cluster administrator will create a number of PVs. They carry the details of t ### Binding -A user creates a `PersistentVolumeClaim` with a specific amount of storage requested and with certain access modes. A control loop in the master watches for new PVCs, finds a matching PV (if possible), and binds them together. The user will always get at least what they asked for, but the volume may be in excess of what was requested. +A user creates a `PersistentVolumeClaim` with a specific amount of storage requested and with certain access modes. A control loop in the master watches for new PVCs, finds a matching PV (if possible), and binds them together. The user will always get at least what they asked for, but the volume may be in excess of what was requested. Once bound, `PersistentVolumeClaim` binds are exclusive, regardless of the mode used to bind them. Claims will remain unbound indefinitely if a matching volume does not exist. Claims will be bound as matching volumes become available. For example, a cluster provisioned with many 50Gi PVs would not match a PVC requesting 100Gi. The PVC can be bound when a 100Gi PV is added to the cluster. @@ -212,3 +212,7 @@ spec: persistentVolumeClaim: claimName: myclaim ``` + +### A Note on Namespaces + +`PersistentVolumes` binds are exclusive, and since `PersistentVolumeClaims` are namespaced objects, mounting claims with "Many" modes (`ROX`, `RWX`) is only possible within one namespace. From 307b31af004f058cc122c3ca757863d39546f2e4 Mon Sep 17 00:00:00 2001 From: Anirudh Date: Wed, 17 Aug 2016 01:03:59 -0700 Subject: [PATCH 02/27] Fix #28688 --- docs/user-guide/compute-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/compute-resources.md b/docs/user-guide/compute-resources.md index 5f89485e6c..da6b299ea2 100644 --- a/docs/user-guide/compute-resources.md +++ b/docs/user-guide/compute-resources.md @@ -13,7 +13,7 @@ container needs. When containers have their resource requests specified, the sc able to make better decisions about which nodes to place pods on; and when containers have their limits specified, contention for resources on a node can be handled in a specified manner. For more details about the difference between requests and limits, please refer to -[Resource QoS](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/proposals/resource-qos.md). +[Resource QoS](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/resource-qos.md). *CPU* and *memory* are each a *resource type*. A resource type has a base unit. CPU is specified in units of cores. Memory is specified in units of bytes. From 6a40352d8622465f89134d6a0e309f300ea3994c Mon Sep 17 00:00:00 2001 From: Martin Westergaard Lassen Date: Tue, 16 Aug 2016 10:02:27 +0100 Subject: [PATCH 03/27] Corrected `INSTANCE_PREFIX` usage `INSTANCE_PREFIX` environment variable is being overwritten by `KUBE_AWS_INSTANCE_PREFIX` environment variable or defaulting to `kubernetes`, see https://github.com/kubernetes/kubernetes/blob/59628744141bb6debd4ac042882ffa6855d846ce/cluster/aws/config-default.sh#L66 ```bash INSTANCE_PREFIX="${KUBE_AWS_INSTANCE_PREFIX:-kubernetes}" ``` --- docs/getting-started-guides/aws.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/aws.md b/docs/getting-started-guides/aws.md index 585c33017e..df4a6cdeb3 100644 --- a/docs/getting-started-guides/aws.md +++ b/docs/getting-started-guides/aws.md @@ -50,7 +50,7 @@ export MASTER_SIZE=m3.medium export NODE_SIZE=m3.medium export AWS_S3_REGION=eu-west-1 export AWS_S3_BUCKET=mycompany-kubernetes-artifacts -export INSTANCE_PREFIX=k8s +export KUBE_AWS_INSTANCE_PREFIX=k8s ... ``` From 5e905842ee900d08b54c6414b676adaabe3c99f6 Mon Sep 17 00:00:00 2001 From: Ricky Pai Date: Fri, 19 Aug 2016 14:12:35 -0700 Subject: [PATCH 04/27] Fix link to docker reference on runtime privilege Fixes the link to point to the right anchor. Also adds white space after period. --- docs/user-guide/containers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/containers.md b/docs/user-guide/containers.md index 4bac4c2a4b..cf05278801 100644 --- a/docs/user-guide/containers.md +++ b/docs/user-guide/containers.md @@ -51,7 +51,7 @@ Here are examples for these rules in table format ## Capabilities -By default, Docker containers are "unprivileged" and cannot, for example, run a Docker daemon inside a Docker container. We can have fine grain control over the capabilities using cap-add and cap-drop.More details [here](https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration). +By default, Docker containers are "unprivileged" and cannot, for example, run a Docker daemon inside a Docker container. We can have fine grain control over the capabilities using cap-add and cap-drop. More details [here](https://docs.docker.com/engine/reference/run/#/runtime-privilege-and-linux-capabilities). The relationship between Docker's capabilities and [Linux capabilities](http://man7.org/linux/man-pages/man7/capabilities.7.html) @@ -93,4 +93,4 @@ The relationship between Docker's capabilities and [Linux capabilities](http://m | LEASE | CAP_LEASE | | SETFCAP | CAP_SETFCAP | | WAKE_ALARM | CAP_WAKE_ALARM | -| BLOCK_SUSPEND | CAP_BLOCK_SUSPEND | \ No newline at end of file +| BLOCK_SUSPEND | CAP_BLOCK_SUSPEND | From 63a2b1563c3525d4b96ae163a5fe8ab72cbde411 Mon Sep 17 00:00:00 2001 From: fbsolo Date: Sat, 20 Aug 2016 16:04:40 -0700 Subject: [PATCH 05/27] For #891 - added two PNG files in a newly created directory; changed logging.md to correctly point to these two PNG files. --- docs/getting-started-guides/logging.md | 4 ++-- images/blog-logging/diagrams/27gf-counter.png | Bin 0 -> 41970 bytes images/blog-logging/diagrams/cloud-logging.png | Bin 0 -> 144101 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 images/blog-logging/diagrams/27gf-counter.png create mode 100644 images/blog-logging/diagrams/cloud-logging.png diff --git a/docs/getting-started-guides/logging.md b/docs/getting-started-guides/logging.md index 47bb5236b9..4e6b21e770 100644 --- a/docs/getting-started-guides/logging.md +++ b/docs/getting-started-guides/logging.md @@ -23,7 +23,7 @@ monitoring-heapster-v1-20ej 0/1 Running 9 32 Here is the same information in a picture which shows how the pods might be placed on specific nodes. -![Cluster](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/examples/blog-logging/diagrams/cloud-logging.png) +![Cluster](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/images/blog-logging/diagrams/cloud-logging.png) This diagram shows four nodes created on a Google Compute Engine cluster with the name of each VM node on a purple background. The internal and public IPs of each node are shown on gray boxes and the pods running in each node are shown in green boxes. Each pod box shows the name of the pod and the namespace it runs in, the IP address of the pod and the images which are run as part of the pod's execution. Here we see that every node is running a fluentd-cloud-logging pod which is collecting the log output of the containers running on the same node and sending them to Google Cloud Logging. A pod which provides the [cluster DNS service](/docs/admin/dns) runs on one of the nodes and a pod which provides monitoring support runs on another node. @@ -52,7 +52,7 @@ This step may take a few minutes to download the ubuntu:14.04 image during which One of the nodes is now running the counter pod: -![Counter Pod](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/examples/blog-logging/diagrams/27gf-counter.png) +![Counter Pod](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/images/blog-logging/diagrams/27gf-counter.png) When the pod status changes to `Running` we can use the kubectl logs command to view the output of this counter pod. diff --git a/images/blog-logging/diagrams/27gf-counter.png b/images/blog-logging/diagrams/27gf-counter.png new file mode 100644 index 0000000000000000000000000000000000000000..7962ec044ccbfa0c13f947088c19624c144ac688 GIT binary patch literal 41970 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 literal 0 HcmV?d00001 diff --git a/images/blog-logging/diagrams/cloud-logging.png b/images/blog-logging/diagrams/cloud-logging.png new file mode 100644 index 0000000000000000000000000000000000000000..9b16af14ee2a5e6bbb9b77ab1888b0f22b1ae9ad GIT binary patch literal 144101 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%0AWG!M8q9Nwo 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 TD3(%Nd_Z?@Y2PeXzW?}tzl`WI literal 0 HcmV?d00001 From 9ba97d8dca60a537ffc6032b70ca0ee952e39753 Mon Sep 17 00:00:00 2001 From: fbsolo Date: Sat, 20 Aug 2016 16:27:37 -0700 Subject: [PATCH 06/27] For #891 - fixed original changes to logging.md because they did not correctly point to the newly added PNG files of the earlier Git push. --- docs/getting-started-guides/logging.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/logging.md b/docs/getting-started-guides/logging.md index 4e6b21e770..8a5f7d9247 100644 --- a/docs/getting-started-guides/logging.md +++ b/docs/getting-started-guides/logging.md @@ -23,7 +23,7 @@ monitoring-heapster-v1-20ej 0/1 Running 9 32 Here is the same information in a picture which shows how the pods might be placed on specific nodes. -![Cluster](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/images/blog-logging/diagrams/cloud-logging.png) +![image](/images/blog-logging/diagrams/cloud-logging.png) This diagram shows four nodes created on a Google Compute Engine cluster with the name of each VM node on a purple background. The internal and public IPs of each node are shown on gray boxes and the pods running in each node are shown in green boxes. Each pod box shows the name of the pod and the namespace it runs in, the IP address of the pod and the images which are run as part of the pod's execution. Here we see that every node is running a fluentd-cloud-logging pod which is collecting the log output of the containers running on the same node and sending them to Google Cloud Logging. A pod which provides the [cluster DNS service](/docs/admin/dns) runs on one of the nodes and a pod which provides monitoring support runs on another node. @@ -52,7 +52,7 @@ This step may take a few minutes to download the ubuntu:14.04 image during which One of the nodes is now running the counter pod: -![Counter Pod](https://raw.githubusercontent.com/kubernetes/kubernetes/{{page.githubbranch}}/images/blog-logging/diagrams/27gf-counter.png) +![image](/images/blog-logging/diagrams/27gf-counter.png) When the pod status changes to `Running` we can use the kubectl logs command to view the output of this counter pod. From 49fcbb7e4a68b2556677970b0f5b28aa2c6e6319 Mon Sep 17 00:00:00 2001 From: a-mccarthy Date: Tue, 23 Aug 2016 10:01:24 -0400 Subject: [PATCH 07/27] Fixed a broken link on accessing-the-api.md Corrected link to Admission Control page. --- docs/admin/accessing-the-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/accessing-the-api.md b/docs/admin/accessing-the-api.md index 57d67a0a5d..6569ac93f8 100644 --- a/docs/admin/accessing-the-api.md +++ b/docs/admin/accessing-the-api.md @@ -116,7 +116,7 @@ rejects, then the request is immediately rejected. In addition to rejecting objects, admission controllers can also set complex defaults for fields. -The available Admission Control Modules are described [here](docs/admin/admission-controllers/). +The available Admission Control Modules are described [here](/docs/admin/admission-controllers/). 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**). From 94140aee7043bc58a828e4fdeb667287058774e1 Mon Sep 17 00:00:00 2001 From: desert-orchid Date: Tue, 23 Aug 2016 09:08:12 -0700 Subject: [PATCH 08/27] Fix typo `it can be disable through` should be `it can be disabled through` --- docs/user-guide/petset.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/petset.md b/docs/user-guide/petset.md index 91796a4316..0a42169ea6 100644 --- a/docs/user-guide/petset.md +++ b/docs/user-guide/petset.md @@ -83,7 +83,7 @@ Example workloads for Pet Set: Before you start deploying applications as Pet Sets, there are a few limitations you should understand. * Pet Set is an *alpha* resource, not available in any Kubernetes release prior to 1.3. -* As with all alpha/beta resources, it can be disable through the `--runtime-config` option passed to the apiserver, and in fact most likely will be disabled on hosted offerings of Kubernetes. +* As with all alpha/beta resources, it can be disabled through the `--runtime-config` option passed to the apiserver, and in fact most likely will be disabled on hosted offerings of Kubernetes. * The only updatable field on a Pet Set is `replicas` * The storage for a given pet must either be provisioned by a [dynamic storage provisioner](http://releases.k8s.io/{{page.githubbranch}}/examples/experimental/persistent-volume-provisioning/README.md) based on the requested `storage class`, or pre-provisioned by an admin. Note that dynamic volume provisioning is also currently in alpha. * Deleting the Pet Set *will not* delete any pets. You will either have to manually scale it down to 0 pets first, or delete the pets yourself. From 1772478d0cc7a219383df28fa699535fb47f80bd Mon Sep 17 00:00:00 2001 From: Jared Date: Tue, 23 Aug 2016 14:17:38 -0700 Subject: [PATCH 09/27] Fix broken links in kubectrl --- docs/user-guide/kubectl/kubectl.md | 68 +++++++++++++++--------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/user-guide/kubectl/kubectl.md b/docs/user-guide/kubectl/kubectl.md index daeff4a144..20033d2aca 100644 --- a/docs/user-guide/kubectl/kubectl.md +++ b/docs/user-guide/kubectl/kubectl.md @@ -46,40 +46,40 @@ kubectl ### SEE ALSO -* [kubectl annotate](kubectl_annotate.md) - Update the annotations on a resource -* [kubectl api-versions](kubectl_api-versions.md) - Print the supported API versions on the server, in the form of "group/version". -* [kubectl apply](kubectl_apply.md) - Apply a configuration to a resource by filename or stdin -* [kubectl attach](kubectl_attach.md) - Attach to a running container. -* [kubectl autoscale](kubectl_autoscale.md) - Auto-scale a Deployment, ReplicaSet, or ReplicationController -* [kubectl cluster-info](kubectl_cluster-info.md) - Display cluster info -* [kubectl completion](kubectl_completion.md) - Output shell completion code for the given shell (bash or zsh) -* [kubectl config](kubectl_config.md) - config modifies kubeconfig files -* [kubectl convert](kubectl_convert.md) - Convert config files between different API versions -* [kubectl cordon](kubectl_cordon.md) - Mark node as unschedulable -* [kubectl create](kubectl_create.md) - Create a resource by filename or stdin -* [kubectl delete](kubectl_delete.md) - Delete resources by filenames, stdin, resources and names, or by resources and label selector. -* [kubectl describe](kubectl_describe.md) - Show details of a specific resource or group of resources -* [kubectl drain](kubectl_drain.md) - Drain node in preparation for maintenance -* [kubectl edit](kubectl_edit.md) - Edit a resource on the server -* [kubectl exec](kubectl_exec.md) - Execute a command in a container. -* [kubectl explain](kubectl_explain.md) - Documentation of resources. -* [kubectl expose](kubectl_expose.md) - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service -* [kubectl get](kubectl_get.md) - Display one or many resources -* [kubectl label](kubectl_label.md) - Update the labels on a resource -* [kubectl logs](kubectl_logs.md) - Print the logs for a container in a pod. -* [kubectl namespace](kubectl_namespace.md) - SUPERSEDED: Set and view the current Kubernetes namespace -* [kubectl patch](kubectl_patch.md) - Update field(s) of a resource using strategic merge patch. -* [kubectl port-forward](kubectl_port-forward.md) - Forward one or more local ports to a pod. -* [kubectl proxy](kubectl_proxy.md) - Run a proxy to the Kubernetes API server -* [kubectl replace](kubectl_replace.md) - Replace a resource by filename or stdin. -* [kubectl rolling-update](kubectl_rolling-update.md) - Perform a rolling update of the given ReplicationController. -* [kubectl rollout](kubectl_rollout.md) - rollout manages a deployment -* [kubectl run](kubectl_run.md) - Run a particular image on the cluster. -* [kubectl scale](kubectl_scale.md) - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job. -* [kubectl set](kubectl_set.md) - Set specific features on objects -* [kubectl taint](kubectl_taint.md) - Update the taints on one or more nodes -* [kubectl uncordon](kubectl_uncordon.md) - Mark node as schedulable -* [kubectl version](kubectl_version.md) - Print the client and server version information. +* [kubectl annotate](../../kubectl_annotate.md) - Update the annotations on a resource +* [kubectl api-versions](../kubectl_api-versions.md) - Print the supported API versions on the server, in the form of "group/version". +* [kubectl apply](../kubectl_apply.md) - Apply a configuration to a resource by filename or stdin +* [kubectl attach](../kubectl_attach.md) - Attach to a running container. +* [kubectl autoscale](../kubectl_autoscale.md) - Auto-scale a Deployment, ReplicaSet, or ReplicationController +* [kubectl cluster-info](../kubectl_cluster-info.md) - Display cluster info +* [kubectl completion](../kubectl_completion.md) - Output shell completion code for the given shell (bash or zsh) +* [kubectl config](../kubectl_config.md) - config modifies kubeconfig files +* [kubectl convert](../kubectl_convert.md) - Convert config files between different API versions +* [kubectl cordon](../kubectl_cordon.md) - Mark node as unschedulable +* [kubectl create](../kubectl_create.md) - Create a resource by filename or stdin +* [kubectl delete](../kubectl_delete.md) - Delete resources by filenames, stdin, resources and names, or by resources and label selector. +* [kubectl describe](../kubectl_describe.md) - Show details of a specific resource or group of resources +* [kubectl drain](../kubectl_drain.md) - Drain node in preparation for maintenance +* [kubectl edit](../kubectl_edit.md) - Edit a resource on the server +* [kubectl exec](../kubectl_exec.md) - Execute a command in a container. +* [kubectl explain](../kubectl_explain.md) - Documentation of resources. +* [kubectl expose](../kubectl_expose.md) - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service +* [kubectl get](../kubectl_get.md) - Display one or many resources +* [kubectl label](../kubectl_label.md) - Update the labels on a resource +* [kubectl logs](../kubectl_logs.md) - Print the logs for a container in a pod. +* [kubectl namespace](../kubectl_namespace.md) - SUPERSEDED: Set and view the current Kubernetes namespace +* [kubectl patch](../kubectl_patch.md) - Update field(s) of a resource using strategic merge patch. +* [kubectl port-forward](../kubectl_port-forward.md) - Forward one or more local ports to a pod. +* [kubectl proxy](../kubectl_proxy.md) - Run a proxy to the Kubernetes API server +* [kubectl replace](../kubectl_replace.md) - Replace a resource by filename or stdin. +* [kubectl rolling-update](../kubectl_rolling-update.md) - Perform a rolling update of the given ReplicationController. +* [kubectl rollout](../kubectl_rollout.md) - rollout manages a deployment +* [kubectl run](../kubectl_run.md) - Run a particular image on the cluster. +* [kubectl scale](../kubectl_scale.md) - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job. +* [kubectl set](../kubectl_set.md) - Set specific features on objects +* [kubectl taint](../kubectl_taint.md) - Update the taints on one or more nodes +* [kubectl uncordon](../kubectl_uncordon.md) - Mark node as schedulable +* [kubectl version](../kubectl_version.md) - Print the client and server version information. ###### Auto generated by spf13/cobra on 12-Aug-2016 From acc2143fa367f4215d4a7c700c79ebe3d7258fdc Mon Sep 17 00:00:00 2001 From: Jared Date: Tue, 23 Aug 2016 14:24:07 -0700 Subject: [PATCH 10/27] Update kubectl.md --- docs/user-guide/kubectl/kubectl.md | 68 +++++++++++++++--------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/user-guide/kubectl/kubectl.md b/docs/user-guide/kubectl/kubectl.md index 20033d2aca..bc9ba1a76f 100644 --- a/docs/user-guide/kubectl/kubectl.md +++ b/docs/user-guide/kubectl/kubectl.md @@ -46,40 +46,40 @@ kubectl ### SEE ALSO -* [kubectl annotate](../../kubectl_annotate.md) - Update the annotations on a resource -* [kubectl api-versions](../kubectl_api-versions.md) - Print the supported API versions on the server, in the form of "group/version". -* [kubectl apply](../kubectl_apply.md) - Apply a configuration to a resource by filename or stdin -* [kubectl attach](../kubectl_attach.md) - Attach to a running container. -* [kubectl autoscale](../kubectl_autoscale.md) - Auto-scale a Deployment, ReplicaSet, or ReplicationController -* [kubectl cluster-info](../kubectl_cluster-info.md) - Display cluster info -* [kubectl completion](../kubectl_completion.md) - Output shell completion code for the given shell (bash or zsh) -* [kubectl config](../kubectl_config.md) - config modifies kubeconfig files -* [kubectl convert](../kubectl_convert.md) - Convert config files between different API versions -* [kubectl cordon](../kubectl_cordon.md) - Mark node as unschedulable -* [kubectl create](../kubectl_create.md) - Create a resource by filename or stdin -* [kubectl delete](../kubectl_delete.md) - Delete resources by filenames, stdin, resources and names, or by resources and label selector. -* [kubectl describe](../kubectl_describe.md) - Show details of a specific resource or group of resources -* [kubectl drain](../kubectl_drain.md) - Drain node in preparation for maintenance -* [kubectl edit](../kubectl_edit.md) - Edit a resource on the server -* [kubectl exec](../kubectl_exec.md) - Execute a command in a container. -* [kubectl explain](../kubectl_explain.md) - Documentation of resources. -* [kubectl expose](../kubectl_expose.md) - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service -* [kubectl get](../kubectl_get.md) - Display one or many resources -* [kubectl label](../kubectl_label.md) - Update the labels on a resource -* [kubectl logs](../kubectl_logs.md) - Print the logs for a container in a pod. -* [kubectl namespace](../kubectl_namespace.md) - SUPERSEDED: Set and view the current Kubernetes namespace -* [kubectl patch](../kubectl_patch.md) - Update field(s) of a resource using strategic merge patch. -* [kubectl port-forward](../kubectl_port-forward.md) - Forward one or more local ports to a pod. -* [kubectl proxy](../kubectl_proxy.md) - Run a proxy to the Kubernetes API server -* [kubectl replace](../kubectl_replace.md) - Replace a resource by filename or stdin. -* [kubectl rolling-update](../kubectl_rolling-update.md) - Perform a rolling update of the given ReplicationController. -* [kubectl rollout](../kubectl_rollout.md) - rollout manages a deployment -* [kubectl run](../kubectl_run.md) - Run a particular image on the cluster. -* [kubectl scale](../kubectl_scale.md) - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job. -* [kubectl set](../kubectl_set.md) - Set specific features on objects -* [kubectl taint](../kubectl_taint.md) - Update the taints on one or more nodes -* [kubectl uncordon](../kubectl_uncordon.md) - Mark node as schedulable -* [kubectl version](../kubectl_version.md) - Print the client and server version information. +* [kubectl annotate](../kubectl_annotate/) - Update the annotations on a resource +* [kubectl api-versions](../kubectl_api-versions/) - Print the supported API versions on the server, in the form of "group/version". +* [kubectl apply](../kubectl_apply/) - Apply a configuration to a resource by filename or stdin +* [kubectl attach](../kubectl_attach/) - Attach to a running container. +* [kubectl autoscale](../kubectl_autoscale/) - Auto-scale a Deployment, ReplicaSet, or ReplicationController +* [kubectl cluster-info](../kubectl_cluster-info/) - Display cluster info +* [kubectl completion](../kubectl_completion/) - Output shell completion code for the given shell (bash or zsh) +* [kubectl config](../kubectl_config/) - config modifies kubeconfig files +* [kubectl convert](../kubectl_convert/) - Convert config files between different API versions +* [kubectl cordon](../kubectl_cordon/) - Mark node as unschedulable +* [kubectl create](../kubectl_create/) - Create a resource by filename or stdin +* [kubectl delete](../kubectl_delete/) - Delete resources by filenames, stdin, resources and names, or by resources and label selector. +* [kubectl describe](../kubectl_describe/) - Show details of a specific resource or group of resources +* [kubectl drain](../kubectl_drain/) - Drain node in preparation for maintenance +* [kubectl edit](../kubectl_edit/) - Edit a resource on the server +* [kubectl exec](../kubectl_exec/) - Execute a command in a container. +* [kubectl explain](../kubectl_explain/) - Documentation of resources. +* [kubectl expose](../kubectl_expose/) - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service +* [kubectl get](../kubectl_get/) - Display one or many resources +* [kubectl label](../kubectl_label/) - Update the labels on a resource +* [kubectl logs](../kubectl_logs/) - Print the logs for a container in a pod. +* [kubectl namespace](../kubectl_namespace/) - SUPERSEDED: Set and view the current Kubernetes namespace +* [kubectl patch](../kubectl_patch/) - Update field(s) of a resource using strategic merge patch. +* [kubectl port-forward](../kubectl_port-forward/) - Forward one or more local ports to a pod. +* [kubectl proxy](../kubectl_proxy/) - Run a proxy to the Kubernetes API server +* [kubectl replace](../kubectl_replace/) - Replace a resource by filename or stdin. +* [kubectl rolling-update](../kubectl_rolling-update/) - Perform a rolling update of the given ReplicationController. +* [kubectl rollout](../kubectl_rollout/) - rollout manages a deployment +* [kubectl run](../kubectl_run/) - Run a particular image on the cluster. +* [kubectl scale](../kubectl_scale/) - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job. +* [kubectl set](../kubectl_set/) - Set specific features on objects +* [kubectl taint](../kubectl_taint/) - Update the taints on one or more nodes +* [kubectl uncordon](../kubectl_uncordon/) - Mark node as schedulable +* [kubectl version](../kubectl_version/) - Print the client and server version information. ###### Auto generated by spf13/cobra on 12-Aug-2016 From c241e7c97b9e6834f50271a2a58f7d243785679e Mon Sep 17 00:00:00 2001 From: Doug Davis Date: Tue, 23 Aug 2016 14:11:54 -0700 Subject: [PATCH 11/27] add IBM to the list of community members Signed-off-by: Doug Davis --- community.html | 1 + images/community_logos/ibm_logo.png | Bin 0 -> 10041 bytes 2 files changed, 1 insertion(+) create mode 100644 images/community_logos/ibm_logo.png diff --git a/community.html b/community.html index 626832f512..a1e0e04d61 100644 --- a/community.html +++ b/community.html @@ -71,6 +71,7 @@ title: Community + diff --git a/images/community_logos/ibm_logo.png b/images/community_logos/ibm_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd0624f0ac8f0804d0572cb21bd21ef4ca932ab GIT binary patch literal 10041 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 f|EmZPW%v Date: Tue, 23 Aug 2016 21:27:18 -0700 Subject: [PATCH 12/27] Resized IBM logo Replaced ridiculously sized IBM logo with something a bit more reasonable. --- images/community_logos/ibm_logo.png | Bin 10041 -> 7502 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/community_logos/ibm_logo.png b/images/community_logos/ibm_logo.png index 8dd0624f0ac8f0804d0572cb21bd21ef4ca932ab..79ccf452539edc98a3a0075e65368f63509b4c88 100644 GIT binary patch literal 7502 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 H_Vs@NE}%3| literal 10041 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 f|EmZPW%v Date: Wed, 24 Aug 2016 10:47:00 -0400 Subject: [PATCH 13/27] Fix tiny grammatical errors in petset user guide --- docs/user-guide/petset.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/petset.md b/docs/user-guide/petset.md index 0a42169ea6..47213c188d 100644 --- a/docs/user-guide/petset.md +++ b/docs/user-guide/petset.md @@ -145,7 +145,7 @@ Cluster Domain | Service (ns/name) | Pet Set (ns/name) | Pet Set Domain | Pet DN Note that Cluster Domain will be set to `cluster.local` unless [otherwise configured](http://releases.k8s.io/{{page.githubbranch}}/build/kube-dns/README.md#how-do-i-configure-it). -Lets verify our assertion with a simple test. +Let's verify our assertion with a simple test. ```shell $ kubectl get svc @@ -154,7 +154,7 @@ nginx None 80/TCP 12m ... ``` -First, the PetSet gives provides a stable hostname: +First, the PetSet provides a stable hostname: ```shell $ for i in 0 1; do kubectl exec web-$i -- sh -c 'hostname'; done @@ -181,7 +181,7 @@ Name: web-1.nginx Address 1: 10.180.0.9 ``` -The containers are running nginx webservers, which by default will look for an index.html file in `/usr/share/nginx/html/index.html`. That directory is backed by a `PersistentVolume` created by the Pet Set. So lets write our hostname there: +The containers are running nginx webservers, which by default will look for an index.html file in `/usr/share/nginx/html/index.html`. That directory is backed by a `PersistentVolume` created by the Pet Set. So let's write our hostname there: ```shell $ for i in 0 1; do From f1fb380d1fcdc30a97a86cf813cdd7f20b430ad9 Mon Sep 17 00:00:00 2001 From: Girish Kalele Date: Fri, 19 Aug 2016 11:19:03 -0700 Subject: [PATCH 14/27] Modify loadbalancer docs for new external source ip preservation annotation --- docs/user-guide/load-balancer.md | 82 +++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/load-balancer.md b/docs/user-guide/load-balancer.md index 7c9c43a63b..c129190248 100644 --- a/docs/user-guide/load-balancer.md +++ b/docs/user-guide/load-balancer.md @@ -8,19 +8,28 @@ ## Overview When creating a service, you have the option of automatically creating a -network load balancer. This provides an +cloud network load balancer. This provides an externally-accessible IP address that sends traffic to the correct port on your -cluster nodes. +cluster nodes _provided your cluster runs in a supported environment and is configured with the correct cloud load balancer provider package_. + +## External Load Balancer Providers + +It is important to note that the datapath for this functionality is provided by a load balancer external to the Kubernetes cluster. + +When the service type is set to `LoadBalancer`, Kubernetes provides functionality equivalent to type=`ClusterIP` to pods within the cluster and extends it by programming the (external to Kubernetes) load balancer with entries for the Kubernetes VMs. The Kubernetes service controller automates the creation of the external load balancer, health checks (if needed), firewall rules (if needed) and retrieves the external IP allocated by the cloud provider and populates it in the service object. ## Configuration file To create an external load balancer, add the following line to your [service configuration file](/docs/user-guide/services/operations/#service-configuration-file): +```json "type": "LoadBalancer" +``` Your configuration file might look like: +```json { "kind": "Service", "apiVersion": "v1", @@ -38,14 +47,17 @@ Your configuration file might look like: "type": "LoadBalancer" } } +``` ## Using kubectl You can alternatively create the service with the `kubectl expose` command and its `--type=LoadBalancer` flag: +```bash $ kubectl expose rc example --port=8765 --target-port=9376 \ --name=example-service --type=LoadBalancer +``` This command creates a new service using the same selectors as the referenced resource (in the case of the example above, a replication controller named @@ -59,6 +71,7 @@ For more information, including optional flags, refer to the You can find the IP address created for your service by getting the service information through `kubectl`: +```bash $ kubectl describe services example-service Name: example-service Selector: app=example @@ -70,5 +83,70 @@ information through `kubectl`: Endpoints: 10.64.0.4:80,10.64.1.5:80,10.64.2.4:80 Session Affinity: None No events. +``` The IP address is listed next to `LoadBalancer Ingress`. + +## Loss of client source IP for external traffic + +Due to the implementation of this feature, the source IP for sessions as seen in the target container will *not be the original source IP* of the client. This is the default behavior as of Kubernetes v1.4. However, starting in v1.4, an optional alpha feature has been added +that will preserve the client Source IP for GCE/GKE environments. This feature will be phased in for other cloud providers in subsequent releases. + +## Annotation to modify the LoadBalancer behavior for preservation of Source IP +In 1.4, an Alpha feature has been added that changes the behavior of the external LoadBalancer feature. + +This feature can be activated by adding the alpha annotation below to the metadata section of the Service Configuration file. + +```json + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "example-service", + "annotations": { + "service.alpha.kubernetes.io/external-traffic": "OnlyLocal" + } + }, + "spec": { + "ports": [{ + "port": 8765, + "targetPort": 9376 + }], + "selector": { + "app": "example" + }, + "type": "LoadBalancer" + } + } +``` + +### Alpha Feature Gate for the 'service.alpha.kubernetes.io/external-traffic' annotation + +Alpha features are not enabled by default, they must be enabled using the release gate command line flags +for kube-controller-manager and kube-proxy. +See [https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/runtimeconfig.md](Runtime feature flags proposal) for more details on feature gate flags. + +If this feature is not enabled in your cluster, this annotation in your service configuration will be rejected. + +### Implementation across different cloudproviders/environments + +Note that this feature is not currently implemented for all cloudproviders/environments. +This feature does not work for nodePorts yet, so environments/cloud providers with proxy-style load-balancers cannot use it yet. + +### Caveats and Limitations when preserving source IPs + +GCE/AWS load balancers do not provide weights for their target pools. This was not an issue with the old LB +kube-proxy rules which would correctly balance across all endpoints. + +With the new functionality, the external traffic will not be equally load balanced across pods, but rather +equally balanced at the node level (because GCE/AWS and other external LB implementations do not have the ability +for specifying the weight per node, they balance equally across all target nodes, disregarding the number of +pods on each node). + +We can, however, state that for NumServicePods << NumNodes or NumServicePods >> NumNodes, a fairly close-to-equal +distribution will be seen, even without weights. + +Once the external load balancers provide weights, this functionality can be added to the LB programming path. +*Future Work: No support for weights is provided for the 1.4 release, but may be added at a future date* + +Internal pod to pod traffic should behave similar to ClusterIP services, with equal probability across all pods. From 1f17f1a45006339b0807375ba5f8f9bf968ac964 Mon Sep 17 00:00:00 2001 From: Jared Date: Wed, 24 Aug 2016 14:43:47 -0700 Subject: [PATCH 15/27] Fixed link to "nodes" --- docs/reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference.md b/docs/reference.md index b8ed937049..c95f21a0c0 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -20,7 +20,7 @@ In the reference section, you can find reference documentation for Kubernetes AP ## Glossary -Explore the glossary of essential Kubernetes concepts. Some good starting points are the entries for [Pods](/docs/user-guide/pods/), [Nodes](/docs/admin/nodes/), [Services](/docs/user-guide/services/), and [Replication Controllers](/docs/user-guide/replication-controller/). +Explore the glossary of essential Kubernetes concepts. Some good starting points are the entries for [Pods](/docs/user-guide/pods/), [Nodes](/docs/admin/node/), [Services](/docs/user-guide/services/), and [Replication Controllers](/docs/user-guide/replication-controller/). ## Design Docs From a6543c31e76994e72d44f7e791936d4c57d0ff89 Mon Sep 17 00:00:00 2001 From: Jared Date: Wed, 24 Aug 2016 14:50:28 -0700 Subject: [PATCH 16/27] Fixed broken link to "addon" --- docs/admin/node-problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/node-problem.md b/docs/admin/node-problem.md index ab09a78dfc..fdb557311c 100644 --- a/docs/admin/node-problem.md +++ b/docs/admin/node-problem.md @@ -36,8 +36,8 @@ it to [support other log format](/docs/admin/node-problem/#support-other-log-for ## Enable/Disable in GCE cluster -Node problem detector is running as a cluster -[addon](docs/admin/cluster-large/#addon-resources) enabled by default in the +Node problem detector is [running as a cluster +addon](/docs/admin/cluster-large/#addon-resources) enabled by default in the gce cluster. You can enable/disable it by setting the environment variable From 91d0988afbafd548bce9e4af5c5cb3d22f326046 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Fri, 19 Aug 2016 15:35:35 -0400 Subject: [PATCH 17/27] Add section on storage classes to PV doc --- docs/user-guide/persistent-volumes/index.md | 116 ++++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index fdfba107e8..53eeacecb8 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -20,6 +20,19 @@ A `PersistentVolume` (PV) is a piece of networked storage in the cluster that ha A `PersistentVolumeClaim` (PVC) is a request for storage by a user. It is similar to a pod. Pods consume node resources and PVCs consume PV resources. Pods can request specific levels of resources (CPU and Memory). Claims can request specific size and access modes (e.g, can be mounted once read/write or many times read-only). +Administrators often need to offer and provision a variety of +`PersistentVolumes` that differ in more ways than just size and access modes, +and users should be able to choose from the offered volumes without having to +understand their technical properties. For these needs there is the +`StorageClass` resource. + +A `StorageClass` provides a way for administrators to describe the "classes" of + storage they offer. Different classes might map to quality-of-service levels, +or to backup policies, or to arbitrary policies determined by the cluster +administrators. Kubernetes itself is unopinionated about what classes +represent. This concept is sometimes called "profiles" in other storage +systems. + Please see the [detailed walkthrough with working examples](/docs/user-guide/persistent-volumes/walkthrough/). @@ -216,3 +229,106 @@ spec: ### A Note on Namespaces `PersistentVolumes` binds are exclusive, and since `PersistentVolumeClaims` are namespaced objects, mounting claims with "Many" modes (`ROX`, `RWX`) is only possible within one namespace. + +## StorageClasses + +Each `StorageClass` contains the fields `provisioner` and `parameters`, which +are used when a `PersistentVolume` belonging to a class needs to be dynamically + provisioned. + +The name of a `StorageClass` object is significant, and is how users can +request a particular class. Administrators set the name and other parameters +of a class, all of which are opaque to users, when first creating +`StorageClass` objects, and the objects cannot be updated once they are +created. + +```yaml +kind: StorageClass +apiVersion: extensions/v1beta1 +metadata: + name: standard +provisioner: kubernetes.io/aws-ebs +parameters: + type: gp2 +``` + +### Provisioner +Storage classes have a provisioner that determines what volume plugin is used +for provisioning PVs. This field must be specified. The available provisioner +types are `kubernetes.io/aws-ebs` and `kubernetes.io/gce-pd`. + +### Parameters +Storage classes have parameters that describe volumes belonging to the storage +class. Different parameters may be accepted depending on the `provisioner`. For + example, the value `io1`, for the parameter `type`, and the parameter +`iopsPerGB` are specific to EBS. When a parameter is omitted, some default is +used. + +#### AWS + +```yaml +kind: StorageClass +apiVersion: extensions/v1beta1 +metadata: + name: slow +provisioner: kubernetes.io/aws-ebs +parameters: + type: io1 + zone: us-east-1d + iopsPerGB: "10" +``` + +* `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. +* `zone`: AWS zone. If not specified, a random zone in the same region as +controller-manager will be chosen. +* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS +volume plugin multiplies this with size of requested volume to compute IOPS of +the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). + +#### GCE + +```yaml +kind: StorageClass +apiVersion: extensions/v1beta1 +metadata: + name: slow +provisionerType: kubernetes.io/gce-pd +provisionerParameters: + type: pd-standard + zone: us-central1-a +``` + +* `type`: `pd-standard` or `pd-ssd`. Default: `pd-ssd` +* `zone`: GCE zone. If not specified, a random zone in the same region as +controller-manager will be chosen. + +## Requesting a StorageClass + +Users request a particular `StorageClass`, i.e. a `PersistentVolume` that +belongs to and has the characteristics described by the `StorageClass`, by +specifying the name of the class in their `PersistentVolumeClaim` using the +annotation `volume.beta.kubernetes.io/storage-class`. Only a PV of the +requested class, one with the same annotation as the PVC, can then be bound to +the PVC. + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: myclaim + annotations: + "volume.beta.kubernetes.io/storage-class": "slow" +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +If a PV of the requested class is not found, a new one will be provisioned +using the `StorageClass`. + +When a PVC specifies a `LabelSelector` in addition to requesting a +`StorageClass`, the requirements are ANDed together: only a PV of the requested + class and with the requested labels may be bound to the PVC. From 0c5b27f2e62c0413dbcb8fcc8f9cb8d22e9a85d1 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Fri, 19 Aug 2016 17:59:45 -0400 Subject: [PATCH 18/27] Intro --- docs/user-guide/persistent-volumes/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 53eeacecb8..5270b0be80 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -20,11 +20,13 @@ A `PersistentVolume` (PV) is a piece of networked storage in the cluster that ha A `PersistentVolumeClaim` (PVC) is a request for storage by a user. It is similar to a pod. Pods consume node resources and PVCs consume PV resources. Pods can request specific levels of resources (CPU and Memory). Claims can request specific size and access modes (e.g, can be mounted once read/write or many times read-only). -Administrators often need to offer and provision a variety of -`PersistentVolumes` that differ in more ways than just size and access modes, -and users should be able to choose from the offered volumes without having to -understand their technical properties. For these needs there is the -`StorageClass` resource. +While `PersistentVolumeClaims` allow a user to consume abstract storage +resources, it is common that users need `PersistentVolumes` with varying +properties, such as performance, for different problems. Cluster administrators +need to be able to offer a variety of `PersistentVolumes` that differ in more +ways than just size and access modes, without exposing users to the details of +how those volumes are implemented. For these needs there is the `StorageClass` +resource. A `StorageClass` provides a way for administrators to describe the "classes" of storage they offer. Different classes might map to quality-of-service levels, @@ -254,8 +256,8 @@ parameters: ### Provisioner Storage classes have a provisioner that determines what volume plugin is used -for provisioning PVs. This field must be specified. The available provisioner -types are `kubernetes.io/aws-ebs` and `kubernetes.io/gce-pd`. +for provisioning PVs. This field must be specified. During beta, the available +provisioner types are `kubernetes.io/aws-ebs` and `kubernetes.io/gce-pd`. ### Parameters Storage classes have parameters that describe volumes belonging to the storage From d70418625edb41586f865d55ab2100e7b5135ed0 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Fri, 19 Aug 2016 19:07:08 -0400 Subject: [PATCH 19/27] default behaviour bit --- docs/user-guide/persistent-volumes/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 5270b0be80..e18eb769b2 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -244,6 +244,22 @@ of a class, all of which are opaque to users, when first creating `StorageClass` objects, and the objects cannot be updated once they are created. +Users don't necessarily have to request a `StorageClass` in their PVC. The +cluster treats PVCs that don't request a `StorageClass` differently depending +on whether the +[`SimpleDefaultStorageClassForPVC` admission controller](docs/admin/admission-controllers/#simpledefaultstorageclassforpvc) is turned on. +* If the admission controller is turned on, the administrator may specify a +default `StorageClass`. All PVCs that don't request a `StorageClass` will be +bound only to PVs of that default. Specifying a default `StorageClass` is done +by setting the annotation `storageclass.beta.kubernetes.io/is-default-class` +equal to "true" in a `StorageClass` object. If the administrator does not +specify a default, the cluster will respond to PVC creation as if the admission +controller were turned off. If more than one default is specified, the +admission controller will forbid the creation of all PVCs. +* If the admission controller is turned off, the claim may be bound to any +volume that does not belong to a `StorageClass` or that has a blank `""` value +for its `volume.beta.kubernetes.io/storage-class` annotation. + ```yaml kind: StorageClass apiVersion: extensions/v1beta1 From 676a4f1577320a7f075e3dd4767827b3f1597b52 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Mon, 22 Aug 2016 23:34:32 -0400 Subject: [PATCH 20/27] add class sections --- docs/user-guide/persistent-volumes/index.md | 98 +++++++++++---------- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index e18eb769b2..c97869aac2 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -93,6 +93,8 @@ Each PV contains a spec and status, which is the specification and status of the kind: PersistentVolume metadata: name: pv0003 + annotations: + volume.beta.kubernetes.io/storage-class: "slow" spec: capacity: storage: 5Gi @@ -145,6 +147,16 @@ In the CLI, the access modes are abbreviated to: | RDB | x | x | - | | VsphereVolume | x | - | - | +### Class + +A PV can have a class, which is specified by setting the +"volume.beta.kubernetes.io/storage-class" annotation to the name of a +`StorageClass`. A PV of a particular class can only be bound to PVCs requesting +that class. A PV with no annotation or its class annotation set to `""` has no +class and can only be bound to PVCs that request no particular class. + +In the future after beta, the `volume.beta.kubernetes.io/storage-class` +annotation will become an attribute. ### Recycling Policy @@ -176,6 +188,8 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: myclaim + annotations: + volume.beta.kubernetes.io/storage-class: "slow" spec: accessModes: - ReadWriteOnce @@ -206,6 +220,36 @@ Claims can specify a [label selector](/docs/user-guide/labels/#label-selectors) All of the requirements, from both `matchLabels` and `matchExpressions` are ANDed together – they must all be satisfied in order to match. +### Class + +A claim can request a particular class by specifying the name of a +`StorageClass`using the annotation `volume.beta.kubernetes.io/storage-class`. +Only PVs of the requested class, ones with the same annotation as the PVC, can +be bound to the PVC. + +PVCs don't necessarily have to request a class, they can omit the annotation or +set it to `""`. The cluster treats PVCs that don't request a class differently +depending on whether the +[`SimpleDefaultStorageClassForPVC` admission controller](docs/admin/admission-controllers/#simpledefaultstorageclassforpvc) +is turned on. + +* If the admission controller is turned on, the administrator may specify a +default `StorageClass`. All PVCs that don't request a `StorageClass` can be +bound only to PVs of that default. This means that the PVs those PVCs would +normally be bound to, the PVs that have no class (no annotation or annotation +equal to `""`), cannot be bound to any PVC. Specifying a default `StorageClass` +is done by setting the annotation +`storageclass.beta.kubernetes.io/is-default-class` equal to "true" in a +`StorageClass` object. If the administrator does not specify a default, the +cluster will respond to PVC creation as if the admission controller were turned +off. If more than one default is specified, the admission controller will forbid +the creation of all PVCs. +* If the admission controller is turned off, the claim may be bound to volumes +that have no class + +In the future after beta, the `volume.beta.kubernetes.io/storage-class` +annotation will become an attribute. + ## Claims As Volumes Pods access storage by using the claim as a volume. Claims must exist in the same namespace as the pod using the claim. The cluster finds the claim in the pod's namespace and uses it to get the `PersistentVolume` backing the claim. The volume is then mounted to the host and into the pod. @@ -244,21 +288,10 @@ of a class, all of which are opaque to users, when first creating `StorageClass` objects, and the objects cannot be updated once they are created. -Users don't necessarily have to request a `StorageClass` in their PVC. The -cluster treats PVCs that don't request a `StorageClass` differently depending -on whether the -[`SimpleDefaultStorageClassForPVC` admission controller](docs/admin/admission-controllers/#simpledefaultstorageclassforpvc) is turned on. -* If the admission controller is turned on, the administrator may specify a -default `StorageClass`. All PVCs that don't request a `StorageClass` will be -bound only to PVs of that default. Specifying a default `StorageClass` is done -by setting the annotation `storageclass.beta.kubernetes.io/is-default-class` -equal to "true" in a `StorageClass` object. If the administrator does not -specify a default, the cluster will respond to PVC creation as if the admission -controller were turned off. If more than one default is specified, the -admission controller will forbid the creation of all PVCs. -* If the admission controller is turned off, the claim may be bound to any -volume that does not belong to a `StorageClass` or that has a blank `""` value -for its `volume.beta.kubernetes.io/storage-class` annotation. +Administrators can specify a default `StorageClass` just for PVCs that don't +request any particular class to bind to: see the +[`PersistentVolumeClaim` section](docs/user-guide/persistent-volumes/index/#class-1) +for details. ```yaml kind: StorageClass @@ -297,8 +330,8 @@ parameters: ``` * `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. -* `zone`: AWS zone. If not specified, a random zone in the same region as -controller-manager will be chosen. +* `zone`: AWS zone. If not specified, a random zone where the cluster has a node +is chosen * `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). @@ -319,34 +352,3 @@ provisionerParameters: * `type`: `pd-standard` or `pd-ssd`. Default: `pd-ssd` * `zone`: GCE zone. If not specified, a random zone in the same region as controller-manager will be chosen. - -## Requesting a StorageClass - -Users request a particular `StorageClass`, i.e. a `PersistentVolume` that -belongs to and has the characteristics described by the `StorageClass`, by -specifying the name of the class in their `PersistentVolumeClaim` using the -annotation `volume.beta.kubernetes.io/storage-class`. Only a PV of the -requested class, one with the same annotation as the PVC, can then be bound to -the PVC. - -```yaml -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: myclaim - annotations: - "volume.beta.kubernetes.io/storage-class": "slow" -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi -``` - -If a PV of the requested class is not found, a new one will be provisioned -using the `StorageClass`. - -When a PVC specifies a `LabelSelector` in addition to requesting a -`StorageClass`, the requirements are ANDed together: only a PV of the requested - class and with the requested labels may be bound to the PVC. From 12c3921fc951a05f417bfcf54a3285b1907b2c07 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 00:01:16 -0400 Subject: [PATCH 21/27] if ac turned off description --- docs/user-guide/persistent-volumes/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index c97869aac2..959cabf0ab 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -244,8 +244,9 @@ is done by setting the annotation cluster will respond to PVC creation as if the admission controller were turned off. If more than one default is specified, the admission controller will forbid the creation of all PVCs. -* If the admission controller is turned off, the claim may be bound to volumes -that have no class +* If the admission controller is turned off, there is no notion of a default +`StorageClass`. All PVCs that don't request a `StorageClass` can be bound only +to PVs that have no class. In the future after beta, the `volume.beta.kubernetes.io/storage-class` annotation will become an attribute. From edbac93ea81637ba9924ce9cf015dd5dfaccaa83 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 00:19:02 -0400 Subject: [PATCH 22/27] make admission controller bit clearer --- docs/user-guide/persistent-volumes/index.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 959cabf0ab..974274325c 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -150,7 +150,7 @@ In the CLI, the access modes are abbreviated to: ### Class A PV can have a class, which is specified by setting the -"volume.beta.kubernetes.io/storage-class" annotation to the name of a +`volume.beta.kubernetes.io/storage-class` annotation to the name of a `StorageClass`. A PV of a particular class can only be bound to PVCs requesting that class. A PV with no annotation or its class annotation set to `""` has no class and can only be bound to PVCs that request no particular class. @@ -235,15 +235,15 @@ is turned on. * If the admission controller is turned on, the administrator may specify a default `StorageClass`. All PVCs that don't request a `StorageClass` can be -bound only to PVs of that default. This means that the PVs those PVCs would -normally be bound to, the PVs that have no class (no annotation or annotation -equal to `""`), cannot be bound to any PVC. Specifying a default `StorageClass` -is done by setting the annotation +bound only to PVs of that default. A consequence of this is that the PVs those +PVCs would normally be bound to, the PVs that have no class (no annotation or annotation +equal to `""`), are unable to be bound to any PVC. Specifying a default +`StorageClass` is done by setting the annotation `storageclass.beta.kubernetes.io/is-default-class` equal to "true" in a `StorageClass` object. If the administrator does not specify a default, the -cluster will respond to PVC creation as if the admission controller were turned -off. If more than one default is specified, the admission controller will forbid -the creation of all PVCs. +cluster responds to PVC creation as if the admission controller were turned off. +If more than one default is specified, the admission controller forbids the +creation of all PVCs. * If the admission controller is turned off, there is no notion of a default `StorageClass`. All PVCs that don't request a `StorageClass` can be bound only to PVs that have no class. From 4e486e97b6eaa0cbcdd2c136166f916b55d0e71b Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 07:41:32 -0400 Subject: [PATCH 23/27] fix admission controller bit --- docs/user-guide/persistent-volumes/index.md | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 974274325c..1c34490a92 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -227,26 +227,26 @@ A claim can request a particular class by specifying the name of a Only PVs of the requested class, ones with the same annotation as the PVC, can be bound to the PVC. -PVCs don't necessarily have to request a class, they can omit the annotation or -set it to `""`. The cluster treats PVCs that don't request a class differently -depending on whether the +PVCs don't necessarily have to request a class. A PVC with its annotation set +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 +`""`). A PVC with no annotation is not quite the same and is treated differently +by the cluster depending on whether the [`SimpleDefaultStorageClassForPVC` admission controller](docs/admin/admission-controllers/#simpledefaultstorageclassforpvc) is turned on. * If the admission controller is turned on, the administrator may specify a -default `StorageClass`. All PVCs that don't request a `StorageClass` can be -bound only to PVs of that default. A consequence of this is that the PVs those -PVCs would normally be bound to, the PVs that have no class (no annotation or annotation -equal to `""`), are unable to be bound to any PVC. Specifying a default -`StorageClass` is done by setting the annotation -`storageclass.beta.kubernetes.io/is-default-class` equal to "true" in a -`StorageClass` object. If the administrator does not specify a default, the +default `StorageClass`. All PVCs that have no annotation can be bound only to +PVs of that default. Specifying a default `StorageClass` is done by setting the +annotation `storageclass.beta.kubernetes.io/is-default-class` equal to "true" in +a `StorageClass` object. If the administrator does not specify a default, the cluster responds to PVC creation as if the admission controller were turned off. If more than one default is specified, the admission controller forbids the creation of all PVCs. * If the admission controller is turned off, there is no notion of a default -`StorageClass`. All PVCs that don't request a `StorageClass` can be bound only -to PVs that have no class. +`StorageClass`. All PVCs that have no annotation can be bound only to PVs that +have no class. In this case the PVCs that have no annotation are treated the +same way as PVCs that have their annotation set to `""`. In the future after beta, the `volume.beta.kubernetes.io/storage-class` annotation will become an attribute. From 3e0e58bf16c61acab8fae3c8f335e3e1aa2165c3 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 19:07:14 -0400 Subject: [PATCH 24/27] dynamic provisioning in lifecycle section --- docs/user-guide/persistent-volumes/index.md | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 1c34490a92..a2b8076212 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -44,11 +44,21 @@ PVs are resources in the cluster. PVCs are requests for those resources and als ### Provisioning -A cluster administrator will create a number of PVs. They carry the details of the real storage which is available for use by cluster users. They exist in the Kubernetes API and are available for consumption. +There are two ways PVs may be provisioned: statically or dynamically. + +#### Static +A cluster administrator creates a number of PVs. They carry the details of the real storage which is available for use by cluster users. They exist in the Kubernetes API and are available for consumption. + +#### Dynamic +A cluster administrator creates a number of `StorageClasses`. They describe "classes" of PVs that cluster users may request. They contain the information that the cluster needs in order to dynamically create PVs in response to user requests. + +A user creates a `PersistentVolumeClaim` that requests one of the `StorageClasses` the administrator created. A PV that exactly matches the requests of the PVC is automatically created specially for the user's PVC using the information contained in the requested `StorageClass`. + +Claims that request the class `""` effectively disable dynamic provisioning for themselves. ### Binding -A user creates a `PersistentVolumeClaim` with a specific amount of storage requested and with certain access modes. A control loop in the master watches for new PVCs, finds a matching PV (if possible), and binds them together. The user will always get at least what they asked for, but the volume may be in excess of what was requested. Once bound, `PersistentVolumeClaim` binds are exclusive, regardless of the mode used to bind them. +A user creates, or has already created in the case of dynamic provisioning, a `PersistentVolumeClaim` with a specific amount of storage requested and with certain access modes. A control loop in the master watches for new PVCs, finds a matching PV (if possible), and binds them together. If a PV was dynamically provisioned for a new PVC, the loop will always bind that PV to the PVC. Otherwise, the user will always get at least what they asked for, but the volume may be in excess of what was requested. Once bound, `PersistentVolumeClaim` binds are exclusive, regardless of the mode used to bind them. Claims will remain unbound indefinitely if a matching volume does not exist. Claims will be bound as matching volumes become available. For example, a cluster provisioned with many 50Gi PVs would not match a PVC requesting 100Gi. The PVC can be bound when a 100Gi PV is added to the cluster. @@ -248,6 +258,10 @@ creation of all PVCs. have no class. In this case the PVCs that have no annotation are treated the same way as PVCs that have their annotation set to `""`. +When a PVC specifies a `selector` in addition to requesting a `StorageClass`, +the requirements are ANDed together: only a PV of the requested class and with +the requested labels may be bound to the PVC. + In the future after beta, the `volume.beta.kubernetes.io/storage-class` annotation will become an attribute. @@ -280,8 +294,8 @@ spec: ## StorageClasses Each `StorageClass` contains the fields `provisioner` and `parameters`, which -are used when a `PersistentVolume` belonging to a class needs to be dynamically - provisioned. +are used when a `PersistentVolume` belonging to the class needs to be +dynamically provisioned. The name of a `StorageClass` object is significant, and is how users can request a particular class. Administrators set the name and other parameters From 8593aa43f8fea0e52920bc8ddeacfff50e726f41 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 19:16:22 -0400 Subject: [PATCH 25/27] trailing whitespace --- docs/user-guide/persistent-volumes/index.md | 42 ++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index a2b8076212..6f3e5c1ff2 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -29,10 +29,10 @@ how those volumes are implemented. For these needs there is the `StorageClass` resource. A `StorageClass` provides a way for administrators to describe the "classes" of - storage they offer. Different classes might map to quality-of-service levels, -or to backup policies, or to arbitrary policies determined by the cluster -administrators. Kubernetes itself is unopinionated about what classes -represent. This concept is sometimes called "profiles" in other storage +storage they offer. Different classes might map to quality-of-service levels, +or to backup policies, or to arbitrary policies determined by the cluster +administrators. Kubernetes itself is unopinionated about what classes +represent. This concept is sometimes called "profiles" in other storage systems. Please see the [detailed walkthrough with working examples](/docs/user-guide/persistent-volumes/walkthrough/). @@ -44,7 +44,7 @@ PVs are resources in the cluster. PVCs are requests for those resources and als ### Provisioning -There are two ways PVs may be provisioned: statically or dynamically. +There are two ways PVs may be provisioned: statically or dynamically. #### Static A cluster administrator creates a number of PVs. They carry the details of the real storage which is available for use by cluster users. They exist in the Kubernetes API and are available for consumption. @@ -165,7 +165,7 @@ A PV can have a class, which is specified by setting the that class. A PV with no annotation or its class annotation set to `""` has no class and can only be bound to PVCs that request no particular class. -In the future after beta, the `volume.beta.kubernetes.io/storage-class` +In the future after beta, the `volume.beta.kubernetes.io/storage-class` annotation will become an attribute. ### Recycling Policy @@ -262,7 +262,7 @@ When a PVC specifies a `selector` in addition to requesting a `StorageClass`, the requirements are ANDed together: only a PV of the requested class and with the requested labels may be bound to the PVC. -In the future after beta, the `volume.beta.kubernetes.io/storage-class` +In the future after beta, the `volume.beta.kubernetes.io/storage-class` annotation will become an attribute. ## Claims As Volumes @@ -293,19 +293,19 @@ spec: ## StorageClasses -Each `StorageClass` contains the fields `provisioner` and `parameters`, which +Each `StorageClass` contains the fields `provisioner` and `parameters`, which are used when a `PersistentVolume` belonging to the class needs to be dynamically provisioned. -The name of a `StorageClass` object is significant, and is how users can -request a particular class. Administrators set the name and other parameters -of a class, all of which are opaque to users, when first creating -`StorageClass` objects, and the objects cannot be updated once they are +The name of a `StorageClass` object is significant, and is how users can +request a particular class. Administrators set the name and other parameters +of a class, all of which are opaque to users, when first creating +`StorageClass` objects, and the objects cannot be updated once they are created. Administrators can specify a default `StorageClass` just for PVCs that don't request any particular class to bind to: see the -[`PersistentVolumeClaim` section](docs/user-guide/persistent-volumes/index/#class-1) +[`PersistentVolumeClaim` section](docs/user-guide/persistent-volumes/#class-1) for details. ```yaml @@ -319,15 +319,15 @@ parameters: ``` ### Provisioner -Storage classes have a provisioner that determines what volume plugin is used +Storage classes have a provisioner that determines what volume plugin is used for provisioning PVs. This field must be specified. During beta, the available provisioner types are `kubernetes.io/aws-ebs` and `kubernetes.io/gce-pd`. ### Parameters -Storage classes have parameters that describe volumes belonging to the storage +Storage classes have parameters that describe volumes belonging to the storage class. Different parameters may be accepted depending on the `provisioner`. For - example, the value `io1`, for the parameter `type`, and the parameter -`iopsPerGB` are specific to EBS. When a parameter is omitted, some default is + example, the value `io1`, for the parameter `type`, and the parameter +`iopsPerGB` are specific to EBS. When a parameter is omitted, some default is used. #### AWS @@ -344,11 +344,11 @@ parameters: iopsPerGB: "10" ``` -* `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. +* `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. * `zone`: AWS zone. If not specified, a random zone where the cluster has a node is chosen -* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS -volume plugin multiplies this with size of requested volume to compute IOPS of +* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS +volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). #### GCE @@ -365,5 +365,5 @@ provisionerParameters: ``` * `type`: `pd-standard` or `pd-ssd`. Default: `pd-ssd` -* `zone`: GCE zone. If not specified, a random zone in the same region as +* `zone`: GCE zone. If not specified, a random zone in the same region as controller-manager will be chosen. From 1c8bc666ab08c4d6b06b7bb4d6a671dceca5290c Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 23 Aug 2016 19:39:13 -0400 Subject: [PATCH 26/27] copy latest paremeters section from examples readme --- docs/user-guide/persistent-volumes/index.md | 54 +++++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 6f3e5c1ff2..ab5ebb1c8e 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -345,11 +345,10 @@ parameters: ``` * `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. -* `zone`: AWS zone. If not specified, a random zone where the cluster has a node -is chosen -* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS -volume plugin multiplies this with size of requested volume to compute IOPS of -the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). +* `zone`: AWS zone. If not specified, a random zone from those where Kubernetes cluster has a node is chosen. +* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). +* `encrypted`: denotes whether the EBS volume should be encrypted or not. Valid values are `true` or `false`. +* `kmsKeyId`: optional. The full Amazon Resource Name of the key to use when encrypting the volume. If none is supplied but `encrypted` is true, a key is generated by AWS. See AWS docs for valid ARN value. #### GCE @@ -358,12 +357,49 @@ kind: StorageClass apiVersion: extensions/v1beta1 metadata: name: slow -provisionerType: kubernetes.io/gce-pd -provisionerParameters: +provisioner: kubernetes.io/gce-pd +parameters: type: pd-standard zone: us-central1-a ``` * `type`: `pd-standard` or `pd-ssd`. Default: `pd-ssd` -* `zone`: GCE zone. If not specified, a random zone in the same region as -controller-manager will be chosen. +* `zone`: GCE zone. If not specified, a random zone in the same region as controller-manager will be chosen. + +#### GLUSTERFS + +```yaml +apiVersion: extensions/v1beta1 +kind: StorageClass +metadata: + name: slow +provisioner: kubernetes.io/glusterfs +parameters: + endpoint: "glusterfs-cluster" + resturl: "http://127.0.0.1:8081" + restauthenabled: "true" + restuser: "admin" + restuserkey: "password" +``` + +* `endpoint`: `glusterfs-cluster` is the endpoint/service name which includes GlusterFS trusted pool IP addresses and this parameter is mandatory. +* `resturl` : Gluster REST service url which provision gluster volumes on demand. The format should be `IPaddress:Port` and this is a mandatory parameter for GlusterFS dynamic provisioner. +* `restauthenabled` : Gluster REST service authentication boolean is required if the authentication is enabled on the REST server. If this value is 'true', 'restuser' and 'restuserkey' have to be filled. +* `restuser` : Gluster REST service user who has access to create volumes in the Gluster Trusted Pool. +* `restuserkey` : Gluster REST service user's password which will be used for authentication to the REST server. + +#### OpenStack Cinder + +```yaml +kind: StorageClass +apiVersion: extensions/v1beta1 +metadata: + name: gold +provisioner: kubernetes.io/cinder +parameters: + type: fast + availability: nova +``` + +* `type`: [VolumeType](http://docs.openstack.org/admin-guide/dashboard-manage-volumes.html) created in Cinder. Default is empty. +* `availability`: Availability Zone. Default is empty. From 8ecd91b349bda20b577348752dc8e2e39a866073 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Thu, 25 Aug 2016 13:30:09 -0400 Subject: [PATCH 27/27] more feedback --- docs/user-guide/persistent-volumes/index.md | 26 +++++++++------------ 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index ab5ebb1c8e..32ac8fbd00 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -50,11 +50,7 @@ There are two ways PVs may be provisioned: statically or dynamically. A cluster administrator creates a number of PVs. They carry the details of the real storage which is available for use by cluster users. They exist in the Kubernetes API and are available for consumption. #### Dynamic -A cluster administrator creates a number of `StorageClasses`. They describe "classes" of PVs that cluster users may request. They contain the information that the cluster needs in order to dynamically create PVs in response to user requests. - -A user creates a `PersistentVolumeClaim` that requests one of the `StorageClasses` the administrator created. A PV that exactly matches the requests of the PVC is automatically created specially for the user's PVC using the information contained in the requested `StorageClass`. - -Claims that request the class `""` effectively disable dynamic provisioning for themselves. +When none of the static PVs the administrator created matches a user's `PersistentVolumeClaim`, the cluster may try to dynamically provision a volume specially for the PVC. This provisioning is based on `StorageClasses`: the PVC must request a class and the administrator must have created and configured that class in order for dynamic provisioning to occur. Claims that request the class `""` effectively disable dynamic provisioning for themselves. ### Binding @@ -74,7 +70,7 @@ When a user is done with their volume, they can delete the PVC objects from the ### Reclaiming -The reclaim policy for a `PersistentVolume` tells the cluster what to do with the volume after it has been released of its claim. Currently, volumes can either be Retained, Recycled or Deleted. Retention allows for manual reclamation of the resource. For those volume plugins that support it, deletion removes both the `PersistentVolume` object from Kubernetes as well as deletes associated storage asset in external infrastructure such as AWS EBS, GCE PD or Cinder volume. If supported by appropriate volume plugin, recycling performs a basic scrub (`rm -rf /thevolume/*`) on the volume and makes it available again for a new claim. +The reclaim policy for a `PersistentVolume` tells the cluster what to do with the volume after it has been released of its claim. Currently, volumes can either be Retained, Recycled or Deleted. Retention allows for manual reclamation of the resource. For those volume plugins that support it, deletion removes both the `PersistentVolume` object from Kubernetes as well as deletes associated storage asset in external infrastructure such as AWS EBS, GCE PD or Cinder volume. Volumes that were dynamically provisioned are always deleted. If supported by appropriate volume plugin, recycling performs a basic scrub (`rm -rf /thevolume/*`) on the volume and makes it available again for a new claim. ## Types of Persistent Volumes @@ -242,18 +238,18 @@ 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 `""`). A PVC with no annotation is not quite the same and is treated differently by the cluster depending on whether the -[`SimpleDefaultStorageClassForPVC` admission controller](docs/admin/admission-controllers/#simpledefaultstorageclassforpvc) +[`DefaultStorageClass` admission plugin](docs/admin/admission-controllers/#defaultstorageclass) is turned on. -* If the admission controller is turned on, the administrator may specify a +* If the admission plugin is turned on, the administrator may specify a default `StorageClass`. All PVCs that have no annotation can be bound only to PVs of that default. Specifying a default `StorageClass` is done by setting the annotation `storageclass.beta.kubernetes.io/is-default-class` equal to "true" in a `StorageClass` object. If the administrator does not specify a default, the -cluster responds to PVC creation as if the admission controller were turned off. -If more than one default is specified, the admission controller forbids the -creation of all PVCs. -* If the admission controller is turned off, there is no notion of a default +cluster responds to PVC creation as if the admission plugin were turned off. If +more than one default is specified, the admission plugin forbids the creation of +all PVCs. +* If the admission plugin is turned off, there is no notion of a default `StorageClass`. All PVCs that have no annotation can be bound only to PVs that have no class. In this case the PVCs that have no annotation are treated the same way as PVCs that have their annotation set to `""`. @@ -344,10 +340,10 @@ parameters: iopsPerGB: "10" ``` -* `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details. Default: `gp2`. +* `type`: `io1`, `gp2`, `sc1`, `st1`. See [AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) for details. Default: `gp2`. * `zone`: AWS zone. If not specified, a random zone from those where Kubernetes cluster has a node is chosen. -* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs). -* `encrypted`: denotes whether the EBS volume should be encrypted or not. Valid values are `true` or `false`. +* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see [AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). A string is expected here, i.e. `"10"`, not `10`. +* `encrypted`: denotes whether the EBS volume should be encrypted or not. Valid values are `"true"` or `"false"`. A string is expected here, i.e. `"true"`, not `true`. * `kmsKeyId`: optional. The full Amazon Resource Name of the key to use when encrypting the volume. If none is supplied but `encrypted` is true, a key is generated by AWS. See AWS docs for valid ARN value. #### GCE