Skip to main content

安装配置minio DirectPV CSI storage class


Richard Wu
Forum|alt.badge.img

本文详述了安装配置minio DirectPV CSI storage class的步骤和截图,为安装Kasten k10做好准备。

 

在master20 上进行下列操作:

安装git:

apt-get install git

git --version

安装 krew:

(

  set -x; cd "$(mktemp -d)" &&

  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&

  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&

  KREW="krew-${OS}_${ARCH}" &&

  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&

  tar zxvf "${KREW}.tar.gz" &&

  ./"${KREW}" install krew

)

将$HOME/.krew/bin目录添加到PATH环境变量中:

cat <<EOF>> /$HOME/.bashrc

export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

EOF

 

source /$HOME/.bashrc

检查krew安装结果:

kubectl krew

kubectl krew version

安装directpv插件:

kubectl krew install directpv

kubectl directpv install

kubectl get pod -A -o wide

发现并添加用于卷调度的驱动器:

kubectl directpv discover

查看directp:

kubectl directpv info

查看可用的驱动器:

kubectl directpv list drives

查看storage class:

kubectl get sc

设置directpv-min-io为default storage class:

现把原来的default storage class设为false.

kubectl patch storageclass nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'

再把directpv-min-io设置为true.

kubectl patch storageclass directpv-min-io -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

在vmware worksation针对node21新增2块1GB磁盘。

 

重启node21,在node21上运行下列命令,确认2块磁盘已经成功添加。

fdisk -l

在master20上运行下列命令,发现2块新增磁盘,并自动生成drives.yaml文件。

kubectl directpv discover

查看drives.yaml文件内容:

cat drives.yaml

初始化以上2个drives:

kubectl directpv init drives.yaml

加参数确认初始化:

kubectl directpv init drives.yaml --dangerous

查看初始化之后的drives:

kubectl directpv list drives

再挂载1块100GB磁盘,因为后面安装Veeam kasten k10时至少需要60GB的可用磁盘空间。

kubectl directpv init drives.yaml --dangerous

kubectl directpv list drives

 

创建测试PVC和Pod

vim pvc-direct.yaml

yaml文件内容如下:

 

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: csi-pvc-2

  namespace: default

spec:

  storageClassName: directpv-min-io             #Directpv使用的SC,directpv-min-io,在安装directpv时自动创建

  accessModes:

    - ReadWriteOnce             #注意directpv不支持多节点写入模式

  resources:

    requests:

      storage: 20Mi     #申请PV空间大小

 

kubectl create -f pvc-direct.yaml

vim directpod.yaml

yaml文件内容如下:

 

apiVersion: v1

kind: Pod

metadata:

  name: csipod-2

spec:

  volumes:

  - name: pvc-storage

    persistentVolumeClaim:

      claimName: csi-pvc-2             #指定使用刚刚创建的PVC:csi-pvc-2

  containers:

  - image: busybox:1.28

    name: box

    args: [/bin/sh, -c, while true; do echo "$(date)" >> /tmp/1.log && sleep 10; done]

    resources:

      requests:

        cpu: 100m

    volumeMounts:

    - name: pvc-storage

      mountPath: /tmp             #PV挂载至容器里的/tmp目录

 

kubectl create -f directpod.yaml

kubectl get pvc

kubectl get pod -o wide

通过以上结果,可以确认测试PVC和Pod都创建成功, minio DirectPV CSI storage class 安装配置成功。

 

0 comments

Be the first to comment!

Comment