当Minikube(k8s)中的pod声称Volumes时,如何强制所有它们实际上都位于裸金属主机上的某个磁盘上



我们有一台裸金属机器,带有一个SSD和一个HDD。Minikube(k8s(中的吊舱将声称有一些聚氯乙烯,并获得一些体积。我们想强制要求这些卷实际上在我们的SSD上,而不是HDD上。如何做到这一点?非常感谢!

p.s.我试过的:当想要PVC时,我们发现Minikube会在/tmp/hostpath-provisioner/...上分配一个。此外,IMHO这是Minikube自身运行的Docker内部的路径,而不是主机路径。因此,我尝试了minikube mount /data/minikube-my-tmp-hostpath-provisioner:/tmp/hostpath-provisioner,其中主机裸机的/data在SSD(而不是HDD(上。然而,这让吊舱不开心,重启后它们都失败了。。。此外,我发现只有新的文件会被写入新安装的路径,而现有的文件仍将在容器中。。。

这听起来正是存储类存在的原因:

StorageClass为管理员提供了一种描述其提供的存储"类"的方法。不同的类可能映射到服务质量级别、备份策略或集群管理员确定的任意策略。Kubernetes本身并不关心类代表什么。在其他存储系统中,此概念有时被称为"配置文件"。

换句话说,您可以创建具有不同性能或其他特性的多个存储类。然后决定哪一个最适合他们创建的每个索赔。

例如,这是一个可以在minikube:上使用的存储类

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast
provisioner: k8s.io/minikube-hostpath
parameters:
type: pd-ssd

你可能还需要创建一个PV,你可以使用:

apiVersion: v1
kind: PersistentVolume
metadata:
name: some-name-pv
spec:
capacity: 
storage: 1Gi
accessModes:
- ReadWriteOnce
- ReadOnlyMany
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /tmp/path

最后,PVC会这样:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: some-pvc 
spec:
storageClassName: fast
resources:
requests:
storage: 100Mi
accessModes:
- ReadWriteOnce

相关内容

最新更新