您必须连接到正确的主机。不这样做可能导致零分。
[ student@k8s-master1 ] $ ssh cka0000 00
Task
首先,为名为 rancher.io/local-path 的现有制备器,创建一个名为 ran-local-path 的新 StorageClass
将卷绑定模式设置为 WaitForFirstConsumer
注意,没有设置卷绑定模式,或者将其设置为 WaitForFirstConsumer 之外的其他任何模式
接下来,将 ran-local-path StorageClass 配置为默认的 StorageClass
请勿修改任何现有的Deployment 和 PersistentVolumeClaim
简单理解:
你要在 Kubernetes 集群里定义一种新的"存储类型",名字叫 ran-local-path。
这种存储类型会使用 rancher.io/local-path 这个"存储工人"来干活------也就是在每个节点的本地硬盘上划出一块目录来存放数据。
同时,你要设置一个"延迟干活"的模式(WaitForFirstConsumer):不提前分配存储,而是等到真正有 Pod 需要用到这个存储时,才在 Pod 所在的节点上创建本地目录。这样能保证 Pod 和存储在同一台机器上,避免出问题。
最后,你要把这个新存储类型设为"默认款"。以后别人申请存储时如果不指定类型,就会自动用你这个。
步骤1 创建 ran-local-path StorageClass
vim storage.yaml
添加如下内容
bash
# 告诉 Kubernetes:我要定义一个"存储类型"的规则,版本是 v1
apiVersion: storage.k8s.io/v1
# 我要创建的东西是一个"存储类型模板"
kind: StorageClass
metadata:
# 给这个模板起个名字,叫 ran-local-path
name: ran-local-path
annotations:
# 贴个标签:把这个模板设为"默认款式"
# 以后别人申请存储时不挑款式,就自动用这个
storageclass.kubernetes.io/is-default-class: "true"
# 谁来干活?这里写 rancher.io/local-path
# 意思是用"每台机器自己的硬盘上的一个文件夹"来存数据
provisioner: rancher.io/local-path
# 什么时候真正在硬盘上划出空间?
# WaitForFirstConsumer 表示:等有人真正来用时才划
# 就像"先不铺床,等客人来了再铺",免得铺错房间
volumeBindingMode: WaitForFirstConsumer
步骤2.创建
kubectl apply -f storage.yaml
提示 created,表示创建成功