zoukankan      html  css  js  c++  java
  • K8S 使用简单的NFS 作为 持久存储的 StorageClass 的简单测试.

    Study From https://jimmysong.io/kubernetes-handbook/practice/using-nfs-for-persistent-storage.html

    1. 机器不翻墙 所以手工download 了image 来处理.

    需要的images

    docker search nfs-client-provisioner 
    比较简单的处理方法:
    docker pull registry.docker-cn.com/jmgao1983/nfs-client-provisioner

    docker tag registry.docker-cn.com/jmgao1983/nfs-client-provisioner nfs-client-provisioner:1.0 # 为了简单便于测试....

    2. 在本机安装NFS 以及进行简单的配置 exportfs -r 等处理

    3. download 一些文档. 

    与 handbook 里面的一样 获取子目录

    git clone https://github.com/kubernetes-incubator/external-storage.git

    4. 首先修改 使用 deployment.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: nfs-client-provisioner:1.0
              volumeMounts:
                - name: nfs-client-root
                  mountPath: /persistentvolumes
              env:
                - name: PROVISIONER_NAME
                  value: fuseim.pri/ifs
                - name: NFS_SERVER
                  value: 127.0.0.1
                - name: NFS_PATH
                  value: /nfs/gitlab
          volumes:
            - name: nfs-client-root
              nfs:
                server: 127.0.0.1
                path: /nfs/gitlab

    5. 创建 default 的 storage  随意命名即可 应该. 

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: default
    provisioner: fuseim.pri/ifs

    设置成默认的 pv 提供者

    执行命令

    kubectl patch storageclass default -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

    6. 需要执行创建 serviceaccount 和 role 以及 rolebinding 的 部分 (RBAC)

    下载nfs-client 里面的三个文件 分别 kubectl -f 即可

    ServiceAccount
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: nfs-client-provisioner

    第二个文件 

    clusterrole.yaml
    
    
    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: ["create", "update", "patch"]
      - apiGroups: [""]
        resources: ["endpoints"]
        verbs: ["get", "list", "watch", "create", "update", "patch"]

    第三个文件

    ClusterRoleBinding.yaml
    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

    创建执行即可, 

  • 相关阅读:
    前端思想实现:面向UI编程_____前端框架设计开发
    使用单体模式设计原生js插件
    QQ空间首页背景图片淡出解析与不足完善
    网页字体设置
    Asp.net MVC Session过期异常的处理
    日本设计的七个原则
    断开所有远程连接(sql server)
    Ubuntu1404+Django1.9+Apache2.4部署配置2配置文件设置
    Linux系统查找文件find命令使用(不断更新)
    ubuntu1404下Apache2.4错误日志error.log路径位置
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/9468731.html
Copyright © 2011-2022 走看看