k8s入门到进阶k8s那点事儿k8s入门

kubernetes使用nfs作为动态storageClass存

2019-07-08  本文已影响1人  lyy910203
项目地址:https://github.com/kubernetes-incubator/external-storage.git
使用示例架构:
clipboard.png
说明:

nfs默认不支持动态存储,使用了第三方的NFS插件
项目插件地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client/deploy

部署nfs StorageClass:
git clone https://github.com/kubernetes-incubator/external-storage.git
cd external-storage/nfs-client/deploy
kubectl apply -f rbac.yaml
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: 10.10.10.60  #NFS地址
            - name: NFS_PATH   #nfs路径
              value: /ifs/kubernetes
      volumes:
        - name: nfs-client-root
          nfs:
            server: 10.10.10.60   #NFS地址
            path: /ifs/kubernetes   #NFS路径
kubectl apply -f deployment.yaml
kubectl apply -f class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
provisioner: fuseim.pri/ifs # deployment的env里面的PROVISIONER_NAME的值
parameters:
  archiveOnDelete: "false"
使用:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-claim
  annotations:
    volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"  #这里指定的是class.yaml的name
spec:
  accessModes:
    - ReadWriteMany  #运行所有主机读写挂载
  resources:
    requests:
      storage: 1Mi  #存储大小
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:
      - "-c"
      - "touch /mnt/SUCCESS && exit 0 || exit 1"
    volumeMounts:
      - name: nfs-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: nfs-pvc
      persistentVolumeClaim:
        claimName: test-claim  #pvc名字
我的blog
https://www.iyunw.cn
上一篇 下一篇

猜你喜欢

热点阅读