Kubernetes 1.11 内置了对部分卷插件的扩容支持:AWS-EBS、GCE-PD、Azure Disk、Azure File、Glusterfs、Cinder、Portworx、以及 Ceph accessModes: - ReadWriteOnce resources: requests: storage: 8Gi #更新这一字段,修改 PVC 容量 文件系统扩展 GCE-PD、AWS-EBS 目前支持的有 GCE-PD、AWS-EBS、Cinder 以及 Ceph RBD。当激活这个功能后,引用被扩展的卷的 Pod 无需重启。文件系统会随着卷扩展的步骤进行扩展。
有3个Pod,叫做Pod A,Pod B和Pod C,分别通过PVC申请了3GiB, 2GiB和 5GiB的存储,并指定存储卷分别来自AWS-ebs(AWS提供的块存储服务),RBD(前文提到过的Ceph 我们发现,StorageClass可以在AWS-ebs、Ceph RBD和普通iSCSI池中分配存储资源。它还能支持哪些资源呢?
示例1:定义一个名为standard的StorageClass,提供者为aws-ebs,其参数设置了一个type,值为gp2。 StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: slow 5 provisioner: kubernetes.io/aws-ebs
storage.k8s.io/v1 kind: StorageClass metadata: name: high-performance provisioner: kubernetes.io/aws-ebs
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: fast-storage provisioner: kubernetes.io/aws-ebs
下例定义了一个名为standard的StorageClass,提供者为aws-ebs,其参数设置了一个type,值为gp2: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard privisioner: kubernetes.io/aws-ebs parameters: type: gp2 关键配置 1、提供者(Privisioner
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gp2-default provisioner: kubernetes.io/aws-ebs
replication-type: none 其中 provisioner 需要根据你的存储类型进行修改,比如如果你使用的是 AWS EBS 存储,可以将 provisioner 修改为 kubernetes.io/aws-ebs
通过CSI迁移,可以使用相应的CSI驱动程序替换现有的in-tree存储插件,例如kubernetes.io/gce-pd或kubernetes.io/aws-ebs。
Attach); Volume Manager等待device挂载完成后,将卷挂载到节点指定目录(mount), 比如/var/lib/kubelet/pods/xxxxxxxxxxx/volumes/aws-ebs
CSI 迁移工作使存储后端现有的树内存储插件(如 kubernetes.io/gce-pd 或 kubernetes.io/aws-ebs)能够被相应的 CSI 驱动 所取代。
通过CSI迁移,可以使用相应的CSI驱动程序替换现有的in-tree存储插件,例如kubernetes.io/gce-pd或kubernetes.io/aws-ebs。
Plugin实现块设备挂载(Attach) Volume Manager等待设备挂载完成,将卷挂载到节点指定目录(mount) /var/lib/kubelet/plugins/kubernetes.io/aws-ebs
storage.k8s.io/v1 kind: StorageClass metadata: name: prometheus-storage-class provisioner: kubernetes.io/aws-ebs
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: slow provisioner: kubernetes.io/aws-ebs WaitForFirstConsumer allowVolumeExpansion: true 上面 3 个例子里所使用的分配器中,有一些是 kubernetes 内置的分配器,比如kubernetes.io/aws-ebs kubernetes 自带的分配器: kubernetes.io/aws-ebs kubernetes.io/gce-pd kubernetes.io/glusterfs kubernetes.io/cinder
Kubernetes v1.11 ships with volume expansion support for the following in-tree volume plugins: AWS-EBS
volume进行mount/unmount volume plugins:包含k8s原生的和各厂商的的存储插件 原生的包括:emptydir、hostpath、flexvolume、csi等 各厂商的包括:aws-ebs
StorageClass apiVersion: storage.k8s.io/v1 metadata: name: file-store provisioner: kubernetes.io/aws-ebs
StorageClass apiVersion: storage.k8s.io/v1 metadata: name: standard # 指定存储类的供应者 provisioner: kubernetes.io/aws-ebs
apiVersion: storage.k8.8io/v1 kind: StorageClass metadata: name: fast provisioner: kubernetes.io/aws-ebs