美文网首页
kubernetes持久化存储-StorageClass

kubernetes持久化存储-StorageClass

作者: Anson前行 | 来源:发表于2019-11-07 17:47 被阅读0次
    创建StorageClass持久化存储

    以NFS 作为后端存储资源,在主节点安装NFS,共享/data/k8s/目录

    $ systemctl stop firewalld.service
    $ yum -y install nfs-utils rpcbind
    $ mkdir -p /data/k8s
    $ chmod 755 /data/k8s
    $ vim /etc/exports
    /data/k8s  *(rw,sync,no_root_squash)
    $ systemctl start rpcbind.service
    $ systemctl start nfs.service
    

    创建 Provisioner,使用nfs-client 的自动配置程序, nfs-client.yaml

    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
      name: nfs-client-provisioner
    spec:
      replicas: 1
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: nfs-client-provisioner
        spec:
          serviceAccountName: nfs-client-provisioner
          containers:
            - name: nfs-client-provisioner
              image: quay.io/external_storage/nfs-client-provisioner:latest
              volumeMounts:
                - name: nfs-client-root
                  mountPath: /persistentvolumes
              env:
                - name: PROVISIONER_NAME
                  value: fuseim.pri/ifs
                - name: NFS_SERVER
                  value: 172.16.1.100
                - name: NFS_PATH
                  value: /data/k8s
          volumes:
            - name: nfs-client-root
              nfs:
                server: 172.16.1.100
                path: /data/k8s
    

    创建 sa,然后绑定上对应的权限:(nfs-client-sa.yaml)

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: nfs-client-provisioner
    
    ---
    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: nfs-client-provisioner-runner
    rules:
      - apiGroups: [""]
        resources: ["persistentvolumes"]
        verbs: ["get", "list", "watch", "create", "delete"]
      - apiGroups: [""]
        resources: ["persistentvolumeclaims"]
        verbs: ["get", "list", "watch", "update"]
      - apiGroups: ["storage.k8s.io"]
        resources: ["storageclasses"]
        verbs: ["get", "list", "watch"]
      - apiGroups: [""]
        resources: ["events"]
        verbs: ["list", "watch", "create", "update", "patch"]
      - apiGroups: [""]
        resources: ["endpoints"]
        verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
    
    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: run-nfs-client-provisioner
    subjects:
      - kind: ServiceAccount
        name: nfs-client-provisioner
        namespace: default
    roleRef:
      kind: ClusterRole
      name: nfs-client-provisioner-runner
      apiGroup: rbac.authorization.k8s.io
    

    创建StorageClass,elasticsearch-storageclass.yaml

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: es-data-db
    provisioner: fuseim.pri/ifs
    

    部署

    $ kubectl create -f nfs-client.yaml
    $ kubectl create -f nfs-client-sa.yaml
    $ kubectl create -f elasticsearch-storageclass.yaml 
    $ kubectl  get pods 
    NAME                                      READY   STATUS    RESTARTS   AGE
    nfs-client-provisioner-5b486d9c65-9fzjz   1/1     Running   9          13d
    $ kubectl get storageclass
    NAME                PROVISIONER      AGE
    es-data-db          fuseim.pri/ifs   13d
    

    相关文章

      网友评论

          本文标题:kubernetes持久化存储-StorageClass

          本文链接:https://www.haomeiwen.com/subject/wvwvbctx.html