k8s上面使用host存储

59 阅读2分钟
helm repo add sig-storage-local-static-provisioner https://kubernetes-sigs.github.io/sig-storage-local-static-provisioner

修改:

classes:
  - name: host # Defines name of storage classes.修改成storage-class的名称
    # Path on the host where local volumes of this storage class are mounted
    # under.
    hostDir: /data/static/volumn

安装provider:

helm upgrade --install host-volume . -n host-volume --create-namespace
[root@node03 local-static-provisioner]# kubectl -n host-volume get pod -owide -w
NAME                                         READY   STATUS    RESTARTS   AGE   IP               NODE              NOMINATED NODE   READINESS GATES
host-volume-local-static-provisioner-b6mhl   1/1     Running   0          69m   10.244.226.106   node03.bonc.com   <none>           <none>
host-volume-local-static-provisioner-drsb7   1/1     Running   0          69m   10.244.109.39    node02.bonc.com   <none>           <none>

创建一个storageclass:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: host
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
# Supported policies: Delete, Retain
reclaimPolicy: Delete

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

for i in {01..100}
do
    vol="vol$i"
    echo $vol
    mkdir /data/static/volume/$vol
    mount -t tmpfs $vol /data/static/volume/$vol
done

会在集群中出现如下的pv

[root@node03 bak]# kubectl get pv
local-pv-1e9f487                   31Gi       RWO            Delete           Available                                                             host                    28s
local-pv-3da07ade                  31Gi       RWO            Delete           Bound       host-volume/host-pvc                                      host                    34m
local-pv-47bdbac4                  31Gi       RWO            Delete           Available                                                             host                    28s
local-pv-5a1d9371                  31Gi       RWO            Delete           Available                                                             host                    28s
local-pv-708a03f8                  31Gi       RWO            Delete           Available                                                             host                    34m
local-pv-c453c05d                  31Gi       RWO            Delete           Available                                                             host

创建pvs和pod

[root@node03 bak]# cat pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: host-pvc
  namespace: host-volume
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: host
[root@node03 bak]# cat pod.yaml 
kind: Pod
apiVersion: v1
metadata:
  name: mypod
  namespace: host-volume
spec:
        #  nodeSelector:
        #kubernetes.io/hostname: node02.bonc.com
  containers:
    - name: myfrontend
      image: nginx:latest
      imagePullPolicy: IfNotPresent
      volumeMounts:
      - mountPath: "/data"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: host-pvc