From f0a308efda7a48799a082a21cd8e23dd6e5c2f29 Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Wed, 11 Apr 2018 14:26:55 -0700 Subject: [PATCH] adding CSI blog post (#8047) * adding CSI blog post * update images * fixing images * link changes * fixing images * Quick fixes --- ...-04-10-container-storage-interface-beta.md | 223 ++++++++++++++++++ .../csi-kubernetes.png | Bin 0 -> 29305 bytes .../csi-logo.png | Bin 0 -> 30101 bytes 3 files changed, 223 insertions(+) create mode 100644 blog/_posts/2018-04-10-container-storage-interface-beta.md create mode 100644 images/blog-logging/2018-04-10-container-storage-interface-beta/csi-kubernetes.png create mode 100644 images/blog-logging/2018-04-10-container-storage-interface-beta/csi-logo.png diff --git a/blog/_posts/2018-04-10-container-storage-interface-beta.md b/blog/_posts/2018-04-10-container-storage-interface-beta.md new file mode 100644 index 0000000000..39e9dfdd3d --- /dev/null +++ b/blog/_posts/2018-04-10-container-storage-interface-beta.md @@ -0,0 +1,223 @@ +--- +layout: blog +title: Container Storage Interface (CSI) for Kubernetes Goes Beta +date: Tuesday, April 10, 2018 +--- + +![Kubernetes Logo](/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-kubernetes.png) +![CSI Logo](/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-logo.png) + +The Kubernetes implementation of the Container Storage Interface (CSI) is now beta in Kubernetes v1.10. CSI was [introduced as alpha](http://blog.kubernetes.io/2018/01/introducing-container-storage-interface.html) in Kubernetes v1.9. + +Kubernetes features are generally introduced as alpha and moved to beta (and eventually to stable/GA) over subsequent Kubernetes releases. This process allows Kubernetes developers to get feedback, discover and fix issues, iterate on the designs, and deliver high quality, production grade features. + +## Why introduce Container Storage Interface in Kubernetes? + +Although Kubernetes already provides a powerful volume plugin system that makes it easy to consume different types of block and file storage, adding support for new volume plugins has been challenging. Because volume plugins are currently “in-tree”—volume plugins are part of the core Kubernetes code and shipped with the core Kubernetes binaries—vendors wanting to add support for their storage system to Kubernetes (or even fix a bug in an existing volume plugin) must align themselves with the Kubernetes release process. + +With the adoption of the Container Storage Interface, the Kubernetes volume layer becomes truly extensible. Third party storage developers can now write and deploy volume plugins exposing new storage systems in Kubernetes without ever having to touch the core Kubernetes code. This will result in even more options for the storage that backs Kubernetes users’ stateful containerized workloads. + +## What’s new in Beta? + +With the promotion to beta CSI is now enabled by default on standard Kubernetes deployments instead of being opt-in. + +The move of the Kubernetes implementation of CSI to beta also means: +* Kubernetes is compatible with [v0.2](https://github.com/container-storage-interface/spec/releases/tag/v0.2.0) of the CSI spec (instead of [v0.1](https://github.com/container-storage-interface/spec/releases/tag/v0.1.0)) + * There were breaking changes between the CSI spec v0.1 and v0.2, so existing CSI drivers must be updated to be 0.2 compatible before use with Kubernetes 1.10.0+. +* [Mount propagation](https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation), a feature that allows bidirectional mounts between containers and host (a requirement for containerized CSI drivers), has also moved to beta. +* The Kubernetes `VolumeAttachment` object, introduced in v1.9 in the storage v1alpha1 group, has been added to the storage v1beta1 group. +* The Kubernetes `CSIPersistentVolumeSource` object has been promoted to beta. +A `VolumeAttributes` field was added to Kubernetes `CSIPersistentVolumeSource` object (in alpha this was passed around via annotations). +* Node authorizer has been updated to limit access to `VolumeAttachment` objects from kubelet. +* The Kubernetes `CSIPersistentVolumeSource` object and the CSI external-provisioner have been modified to allow passing of secrets to the CSI volume plugin. +* The Kubernetes `CSIPersistentVolumeSource` has been modified to allow passing in filesystem type (previously always assumed to be `ext4`). +* A new optional call, `NodeStageVolume`, has been added to the CSI spec, and the Kubernetes CSI volume plugin has been modified to call `NodeStageVolume` during `MountDevice` (in alpha this step was a no-op). + +## How do I deploy a CSI driver on a Kubernetes Cluster? + +CSI plugin authors must provide their own instructions for deploying their plugin on Kubernetes. + +The Kubernetes-CSI implementation team created a [sample hostpath CSI driver](https://kubernetes-csi.github.io/docs/Example.html). The sample provides a rough idea of what the deployment process for a CSI driver looks like. Production drivers, however, would deploy node components via a DaemonSet and controller components via a StatefulSet rather than a single pod (for example, see the deployment files for the [GCE PD driver](https://github.com/GoogleCloudPlatform/compute-persistent-disk-csi-driver/blob/master/deploy/kubernetes/README.md)). + +## How do I use a CSI Volume in my Kubernetes pod? + +Assuming a CSI storage plugin is already deployed on your cluster, you can use it through the familiar Kubernetes storage primitives: `PersistentVolumeClaims`, `PersistentVolumes`, and `StorageClasses`. + +CSI is a beta feature in Kubernetes v1.10. Although it is enabled by default, it may require the following flag: +* API server binary and kubelet binaries: + * `--allow-privileged=true` + * Most CSI plugins will require bidirectional mount propagation, which can only be enabled for privileged pods. Privileged pods are only permitted on clusters where this flag has been set to true (this is the default in some environments like GCE, GKE, and kubeadm). + +### Dynamic Provisioning + +You can enable automatic creation/deletion of volumes for CSI Storage plugins that support dynamic provisioning by creating a `StorageClass` pointing to the CSI plugin. + +The following `StorageClass`, for example, enables dynamic creation of “`fast-storage`” volumes by a CSI volume plugin called “`com.example.csi-driver`”. + +``` +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: fast-storage +provisioner: com.example.csi-driver +parameters: + type: pd-ssd + csiProvisionerSecretName: mysecret + csiProvisionerSecretNamespace: mynamespace +``` + +New for beta, the [default CSI external-provisioner](https://github.com/kubernetes-csi/external-provisioner) reserves the parameter keys `csiProvisionerSecretName` and `csiProvisionerSecretNamespace`. If specified, it fetches the secret and passes it to the CSI driver during provisioning. + +Dynamic provisioning is triggered by the creation of a `PersistentVolumeClaim` object. The following `PersistentVolumeClaim`, for example, triggers dynamic provisioning using the `StorageClass` above. + +``` +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: my-request-for-storage +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + storageClassName: fast-storage +``` + +When volume provisioning is invoked, the parameter type: `pd-ssd` and the secret any referenced secret(s) are passed to the CSI plugin `com.example.csi-driver` via a `CreateVolume call`. In response, the external volume plugin provisions a new volume and then automatically create a `PersistentVolume` object to represent the new volume. Kubernetes then binds the new `PersistentVolume` object to the `PersistentVolumeClaim`, making it ready to use. + +If the fast-storage StorageClass is marked as “default”, there is no need to include the storageClassName in the PersistentVolumeClaim, it will be used by default. + +### Pre-Provisioned Volumes + +You can always expose a pre-existing volume in Kubernetes by manually creating a `PersistentVolume` object to represent the existing volume. The following `PersistentVolume`, for example, exposes a volume with the name “`existingVolumeName`” belonging to a CSI storage plugin called “`com.example.csi-driver`”. + +``` +apiVersion: v1 +kind: PersistentVolume +metadata: + name: my-manually-created-pv +spec: + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + csi: + driver: com.example.csi-driver + volumeHandle: existingVolumeName + readOnly: false + fsType: ext4 + volumeAttributes: + foo: bar + controllerPublishSecretRef: + name: mysecret1 + namespace: mynamespace + nodeStageSecretRef: + name: mysecret2 + namespace: mynamespace + nodePublishSecretRef + name: mysecret3 + namespace: mynamespace +``` + +### Attaching and Mounting + +You can reference a `PersistentVolumeClaim` that is bound to a CSI volume in any pod or pod template. + +``` +kind: Pod +apiVersion: v1 +metadata: + name: my-pod +spec: + containers: + - name: my-frontend + image: nginx + volumeMounts: + - mountPath: "/var/www/html" + name: my-csi-volume + volumes: + - name: my-csi-volume + persistentVolumeClaim: + claimName: my-request-for-storage +``` + +When the pod referencing a CSI volume is scheduled, Kubernetes will trigger the appropriate operations against the external CSI plugin (`ControllerPublishVolume`, `NodeStageVolume`, `NodePublishVolume`, etc.) to ensure the specified volume is attached, mounted, and ready to use by the containers in the pod. + +For more details please see the CSI implementation [design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md) and [documentation](https://kubernetes-csi.github.io/). + +## How do I write a CSI driver? + +CSI Volume Driver deployments on Kubernetes must meet some [minimum requirements](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md#third-party-csi-volume-drivers). + +The minimum requirements document also outlines the [suggested mechanism](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md#recommended-mechanism-for-deploying-csi-drivers-on-kubernetes) for deploying an arbitrary containerized CSI driver on Kubernetes. This mechanism can be used by a Storage Provider to simplify deployment of containerized CSI compatible volume drivers on Kubernetes. + +As part of the suggested deployment process, the Kubernetes team provides the following sidecar (helper) containers: +* [external-attacher](https://github.com/kubernetes-csi/external-attacher) + * watches Kubernetes `VolumeAttachment` objects and triggers `ControllerPublish` and `ControllerUnpublish` operations against a CSI endpoint +* [external-provisioner](https://github.com/kubernetes-csi/external-provisioner) + * watches Kubernetes `PersistentVolumeClaim` objects and triggers `CreateVolume` and `DeleteVolume` operations against a CSI endpoint +* [driver-registrar](https://github.com/kubernetes-csi/driver-registrar) + * registers the CSI driver with kubelet (in the future) and adds the drivers custom `NodeId` (retrieved via `GetNodeID` call against the CSI endpoint) to an annotation on the Kubernetes Node API Object +* [livenessprobe](https://github.com/kubernetes-csi/livenessprobe) + * can be included in a CSI plugin pod to enable the [Kubernetes Liveness Probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) mechanism + +Storage vendors can build Kubernetes deployments for their plugins using these components, while leaving their CSI driver completely unaware of Kubernetes. + +## Where can I find CSI drivers? + +CSI drivers are developed and maintained by third parties. You can a non-definitive list of some [sample and production CSI drivers] (https://kubernetes-csi.github.io/docs/Drivers.html). + +## What about FlexVolumes? + +As mentioned in the [alpha release blog post](http://blog.kubernetes.io/2018/01/introducing-container-storage-interface.html), [FlexVolume plugin](https://github.com/kubernetes/community/blob/master/contributors/devel/flexvolume.md) was an earlier attempt to make the Kubernetes volume plugin system extensible. Although it enables third party storage vendors to write drivers “out-of-tree”, because it is an exec based API, FlexVolumes requires files for third party driver binaries (or scripts) to be copied to a special plugin directory on the root filesystem of every node (and, in some cases, master) machine. This requires a cluster admin to have write access to the host filesystem for each node and some external mechanism to ensure that the driver file is recreated if deleted, just to deploy a volume plugin. + +In addition to being difficult to deploy, Flex did not address the pain of plugin dependencies: Volume plugins tend to have many external requirements (on mount and filesystem tools, for example). These dependencies are assumed to be available on the underlying host OS, which is often not the case. + +CSI addresses these issues by not only enabling storage plugins to be developed out-of-tree, but also containerized and deployed via standard Kubernetes primitives. + +If you still have questions about in-tree volumes vs CSI vs Flex, please see the [Volume Plugin FAQ] (https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md). + +## What will happen to the in-tree volume plugins? + +Once CSI reaches stability, we plan to migrate most of the in-tree volume plugins to CSI. Stay tuned for more details as the Kubernetes CSI implementation approaches stable. + +## What are the limitations of beta? + +The beta implementation of CSI has the following limitations: +* Block volumes are not supported; only file. +* CSI drivers must be deployed with the provided external-attacher sidecar plugin, even if they don’t implement `ControllerPublishVolume`. +* Topology awareness is not supported for CSI volumes, including the ability to share information about where a volume is provisioned (zone, regions, etc.) with the Kubernetes scheduler to allow it to make smarter scheduling decisions, and the ability for the Kubernetes scheduler or a cluster administrator or an application developer to specify where a volume should be provisioned. +* `driver-registrar` requires permissions to modify all Kubernetes node API objects which could result in a compromised node gaining the ability to do the same. + +## What’s next? + +Depending on feedback and adoption, the Kubernetes team plans to push the CSI implementation to GA in 1.12. + +The team would like to encourage storage vendors to start developing CSI drivers, deploying them on Kubernetes, and sharing feedback with the team via the Kubernetes Slack channel [wg-csi](https://kubernetes.slack.com/messages/C8EJ01Z46/details/), the Google group [kubernetes-sig-storage-wg-csi](https://groups.google.com/forum/#!forum/kubernetes-sig-storage-wg-csi), or any of the standard [SIG storage communication channels](https://github.com/kubernetes/community/blob/master/sig-storage/README.md#contact). + +## How do I get involved? + +This project, like all of Kubernetes, is the result of hard work by many contributors from diverse backgrounds working together. + +In addition to the contributors who have been working on the Kubernetes implementation of CSI since alpha: +* Bradley Childs ([childsb](https://github.com/childsb)) +* Chakravarthy Nelluri ([chakri-nelluri](https://github.com/chakri-nelluri)) +* Jan Šafránek ([jsafrane](https://github.com/jsafrane)) +* Luis Pabón ([lpabon](https://github.com/lpabon)) +* Saad Ali ([saad-ali](https://github.com/saad-ali)) +* Vladimir Vivien ([vladimirvivien](https://github.com/vladimirvivien)) + +We offer a huge thank you to the new contributors who stepped up this quarter to help the project reach beta: +* David Zhu ([davidz627](https://github.com/davidz627)) +* Edison Xiang ([edisonxiang](https://github.com/edisonxiang)) +* Felipe Musse ([musse](https://github.com/musse)) +* Lin Ml ([mlmhl](https://github.com/mlmhl)) +* Lin Youchong ([linyouchong](https://github.com/linyouchong)) +* Pietro Menna ([pietromenna](https://github.com/pietromenna)) +* Serguei Bezverkhi ([sbezverk](https://github.com/sbezverk)) +* Xing Yang ([xing-yang](https://github.com/xing-yang)) +* Yuquan Ren ([NickrenREN](https://github.com/NickrenREN)) + +If you’re interested in getting involved with the design and development of CSI or any part of the Kubernetes Storage system, join the [Kubernetes Storage Special Interest Group](https://github.com/kubernetes/community/tree/master/sig-storage) (SIG). We’re rapidly growing and always welcome new contributors. diff --git a/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-kubernetes.png b/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-kubernetes.png new file mode 100644 index 0000000000000000000000000000000000000000..6f813feedc879e20e05602070f532c2be66a48f0 GIT binary patch literal 29305 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≈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 literal 0 HcmV?d00001 diff --git a/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-logo.png b/images/blog-logging/2018-04-10-container-storage-interface-beta/csi-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1455366bce98845028b53def887d81fa36972e GIT binary patch literal 30101 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 zò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