sig-storage-local-static-provisioner使用

下载地址

https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/archive/refs/tags/v2.4.0.tar.gz 

安装helm

curl -OL https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
tar -xf helm-v3.6.3-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/

#可不用以下
####helm repo add  stable https://charts.helm.sh/stable
####helm repo list

解压

tar -xf sig-provisioner-xxx.tar.gz

创建storage class

注意一下storageclass的名字

kubectl apply -f deployment/kubernetes/example/default_example_storageclass.yaml

创建provisioner

参考官方文档:
因本次环境helm version >= v3.0.0:
git clone --depth=1 https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner.git
helm template -f <path-to-your-values-file> <release-name> --namespace <namespace> ./helm/provisioner > local-volume-provisioner.generated.yaml
edit local-volume-provisioner.generated.yaml if necessary
kubectl create -f local-volume-provisioner.generated.yaml

所以生成provisioner.yaml文件的命令为:

helm template -f helm/provisioner/values.yaml lvm-storage --namespace kube-system ./helm/provisioner > local-volume-provisioner.generated.yaml

kubectl create -f local-volume-provisioner.generated.yaml

注意:
# vim helm/provisioner/values.yaml
classes:
- name: fast-disks # Defines name of storage classe. 这是storage class的名字,接下来创建storage class是必须与这里的名字一致,默认都是fast-disks
  hostDir: /mnt/fast-disks

local-volume-provisioner镜像下载不下来,需要修改一下:
googleimages/local-volume-provisioner:v2.4.0

挂载目录
因上面配置的挂载目录为/mnt/fast-disks,因此需要在/mnt/fast-disks创建一个目录,比如pv1,然后将/dev/vg1/k8s-volume挂载到/mnt/fast-disks/pv1,/mnt/fast-disks目录下的每一个挂载点都会自动生成为一个pv,挂载之后使用kubectl get pv查看

NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
local-pv-27c6ca2f   9951Mi     RWO            Delete           Available           fast-disks              2d16h

只有一块盘时可模拟多个挂载点

#!/bin/bash
for i in $(seq 1 5); do
  mkdir -p /mnt/fast-disks-bind/vol${i}
  mkdir -p /mnt/fast-disks/vol${i}
  mount --bind /mnt/fast-disks-bind/vol${i} /mnt/fast-disks/vol${i}
done

使用

创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: lvm-chaim
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: fast-disks

创建pod

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/data"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: lvm-chaim

参考链接:
https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/blob/master/helm/README.md
https://blog.csdn.net/networken/article/details/106412691
https://developer.aliyun.com/article/692619

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值