注意使用这个组件必须要提前配置好nfs服务器

 

配置nfs-server

我选择在master节点上创建nfs服务端

yum install -y rpcbind nfs-utils

配置nfs

vi /etc/export
/home/nfs *(rw,sync,no_all_squash,no_root_squash)
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
exportfs -r 
showmount -e 192.168.200.11

创建NFS Provisioner RBAC鉴权

vi /root/nfs-provisioner-rbac.yaml
#创建sa
apiVersion: v1
kind: ServiceAccount
metadata: 
  name: nfs-client-provisioner
  namespace: kube-system

---
#简单一点直接给sa绑定kube-system 的clusterrole
apiVersion:  rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata: 
  name: nfs
  namespace: kube-system
roleRef: 
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects: 
- kind: ServiceAccount
  name: nfs-client-provisioner
  namespace: kube-system

配置nfs-provisioner服务

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: nfs-provisioner
  namespace: kube-system
  labels: 
    app: nfs
spec: 
  replicas: 1
  selector: 
    matchLabels: 
      app: nfs
  template: 
    metadata: 
      labels: 
        app: nfs
    spec: 
      serviceAccountName: nfs-client-provisioner
      containers: 
      - name: nfs
        image: 192.168.200.11/library/nfs-client-provisioner
        imagePullPolicy: IfNotPresent
        volumeMounts:  #数据持久化,可以不用写
        - name: nfs-client-path
          mountPath: /persistentvolumes
        env: 
        - name: PROVISIONER_NAME #配置容器内的环境变量,知道nfs
          value: nfs-client #这个名字后面的storageclass是用到的
        - name: NFS_SERVER
          value: 192.168.200.11
        - name: NFS_PATH
          value: /home/nfs
      volumes: #挂载到本地
      - name: nfs-client-path
        nfs: 
          server: 192.168.200.11
          path: /home/nfs
 #启动nfs-provisioner
 kubectl apply -f nfs-provisioner-deployment.yaml

创建storageclass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata: 
  name: nfs-storage #这个名字后面的pvc是用到的
provisioner: nfs-client
#启动
kubectl apply -f nfs-storageclass.yaml

创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata: 
  name: test-pvc
spec: 
  accessModes: 
  - ReadWriteOnce
  storageClassName: nfs-storage
  resources: 
    requests: 
      storage: 1Mi
 
 #启动
 kubectl apply -f nfs-pvc.yaml

测试

[root@master ~]# kubectl get pvc
NAME       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc   Bound    pvc-1e18c20a-52be-4a5c-9ede-cefb7f8b4f16   1Mi        RWO            nfs-storage    54m
#状态为bound即为正确

原文地址:http://www.cnblogs.com/suknna/p/16807366.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性