当前位置:   article > 正文

k8s-hostpath存储使用_k8s hostpath

k8s hostpath

参考网址: https://github.com/nailgun/k8s-hostpath-provisioner

运行k8s-hostpath-provisioner

下载github项目

git clone https://github.com/nailgun/k8s-hostpath-provisioner.git
  • 1

下载k8s-hostpath镜像

docker pull nailgun/k8s-hostpath-provisioner:latest
  • 1

自己可以把镜像push到私有仓库,修改yaml中镜像的路径。
进行项目的example目录,运行k8s-hostpath-provisioner

$ cd example
$ kubectl create -f sa.yaml -f cluster-roles.yaml -f cluster-role-bindings.yaml -f ds.yaml
  • 1
  • 2

标记所有k8s节点都可以提供hostpath卷

$ kubectl label node --all nailgun.name/hostpath=enabled
  • 1

k8s hostpath存储使用

定义storageclass
例如sc.yaml指明将要使用的目录为k8s-hostpath-provisioner的/ssd目录。

[root@k8s-master example]# cat sc.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: local-ssd
provisioner: nailgun.name/hostpath
parameters:
  hostPathName: ssd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

标注节点(自主选择)将k8s-hostpath-provisioner的/ssd目录映射到节点/tmp/ssd目录

$ kubectl annotate node NODE_NAME hostpath.nailgun.name/ssd=/tmp/ssd
  • 1

构建pvc.yaml使用存储local-ssd。

[root@k8s-master example]# cat pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: local-ssd
  annotations:
    volume.beta.kubernetes.io/storage-class: local-ssd
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Mi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

构建Pod使用名为local-ssd的pvc。

[root@k8s-master example]# cat test-pod.yaml 
kind: Pod
apiVersion: v1
metadata:
  name: test-pod
spec:
  containers:
  - name: test-pod
    image: gcr.io/google_containers/busybox:1.24
    command:
    - "/bin/sh"
    args:
    - "-ec"
    - "echo hello >> /mnt/test && cat /mnt/test"
    volumeMounts:
    - name: hostpath-pvc
      mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
  - name: hostpath-pvc
    persistentVolumeClaim:
      claimName: local-ssd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

这样该test-pod的/mnt目录就会映射到选定节点的/tmp/ssd目录中的一个以PVC开头的目录。
运行例子

$ kubectl create -f sc.yaml -f pvc.yaml -f test-pod.yaml
  • 1

使用命令查看/tmp/ssd目录中那个PVC目录绑定

kubectl get pvc
  • 1

可以查看该PVC目录是否有test文件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/214333
推荐阅读
相关标签
  

闽ICP备14008679号