[TOC]
# StorageClass 存储类
StorageClass 是一种资源类型,是为了方便管理员管理 PV 而按需创建的逻辑组类别,例如可以按照存储系统性能高低分类,甚至可以按照自定义的标准进行分类。不过k8s本身并不知道这个“类别”意味着什么。
StorageClass 有一个好处就是支持 PV 的动态创建。
### StorageClass 字段
StorageClass 中包含**provisioner**、**parameters**和**reclaimPolicy**关键字段,当需要动态分配 PersistentVolume 时会使用到。
* **provisioner(供给方)**: 提供了存储资源的存储系统,存储类要依赖 Provisioner 来判断要使用的存储插件以便适配到目标存储系统。k8s有很多内置存储插件,都是以“kubernetes.io”为前缀,还支持用户自定义的Provisioner
* **parameters(参数)**: 存储类使用参数描述要关联到的存储卷,不同的 provisioner 的参数都不一样
* **reclaimPolicy(回收策略):** 为动态创建的PV指定回收策略,可用值为“delete”(默认值)和“Retain”
`StorageClass`对象的名称很重要,用户使用该类来请求一个特定的方法。 当创建`StorageClass`对象时,管理员设置名称和其他参数,一旦创建了对象就不能再对其更新。
~~~
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
mountOptions:
- debug
~~~
### Provisioner字段(存储分配器)
用来决定使用哪个卷插件分配 PV。该字段必须指定。
[k8s内置的class类](https://kubernetes.io/docs/concepts/storage/storage-classes/)
[k8s第三方class类](https://github.com/kubernetes-incubator/external-storage)
### 动态PV供给
先创建一个 StorageClass
~~~
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: glusterfs
provisioner: kubernetes.io/glusterfs
parameters:
resturl: "http://XXXXXXXXXX:8080"
restauthenabled: "false"
restuser: "ik8s"
restuserkey: "ik8s.io"
~~~
再创建一个可以动态申请PV的PVC
~~~
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-gluster-dynamic
annotations:
volume.beta.kubernetes.io/storage-class: glusterfs
#第一种方法,指定使用的存储类
spec:
storageClassName: "glusterfs"
# 第二种方法,指定使用的存储类
accessModes: ReadWriteOnce
resources:
requests:
storage: 5G
~~~
- 一、K8S的安装
- 1.1 安装环境
- 1.2 问题汇总
- 1.3 事前准备
- 1.4 安装配置负载均衡
- 1.5 安装K8S软件
- 1.6 初始化kubeadm
- 1.7 添加控制节点
- 1.8 添加计算节点
- 1.9 安装故障问题处理
- 1.10 安装管理dashboard
- 1.11 编写测试Pod
- 1.12 从外部访问集群中的Pod
- 1.13 部署metrics-server指标采集
- 二、Pod管理
- 2.1 Pod 资源需求和限制
- 2.2 Init 容器
- 2.3 Pod 健康检查(探针)和重启策略
- 2.4 Pod 生命周期(钩子Hook)
- 2.5 静态Pod
- 2.6 初始化容器(init container)
- 2.7 资源限制
- 三、资源控制器
- 3.1 Deployment
- 3.2 StatefulSet
- 3.3 DaemonSet
- 3.4 Job
- 3.5 定时任务
- 3.6 准入控制器
- 3.7 自动伸缩
- 3.8 ReplicaSet
- 四、存储
- 4.1 Secret 管理敏感信息
- 4.2 ConfigMap 存储配置
- 4.3 Volume
- 4.4 PV
- 4.5 PVC
- 4.6 StorageClass
- 4.7 暴露宿主机信息给Pod
- 五、服务Service
- 5.1 Service 资源
- 5.2 服务发现
- 5.3 服务暴露
- 5.4 Ingress 资源
- 5.5 Ingress 专题
- 5.6 traefik 2.X版本使用
- 六、认证、授权、准入控制
- 6.1 服务账户
- 6.2 LimitRange资源与准入控制器
- 6.3 ResourceQuota 资源与准入控制器
- 七、Helm
- 7.1 Helm 安装
- 八、 istio
- 8.1 istio 介绍
- 8.2 iotis 安装
- 九、calico
- 9.1 两种网络模式
- 9.2 全互联模式 与 路由反射模式
- 9.3 BGP跨网段(大型网络)
- 十、Ingress
- 10.1 安装 LoadBalancer
- 10.2 部署 ingress-nginx
- 10.3 Ingress-nginx 的使用
- 10.4 开启TCP和UDP
- 使用中的问题
- CSI Node问题
