• k8s使用cephfs动态存储


    参考https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/cephfs

    # 官方没有cephfs动态卷支持
    # 使用社区提供的cephfs-provisioner

    一、部署cephfs-provisioner

    github地址:  https://github.com/kubernetes-retired/external-storage/tree/master/ceph/cephfs/deploy

    kubectl create ns cephfs
    kubectl apply -f rbac -n cephfs
    [sysadm@ST-Middleware-05 k8s]$ kubectl -n cephfs get pod
    NAME                                  READY   STATUS    RESTARTS   AGE
    cephfs-provisioner-86794546cc-hbt8j   1/1     Running   0          23h
    test-pod                              1/1     Running   0          20h

    2、创建secret。在secret中,data域的各子域的值必须为key的base64编码值。key值为ceph.client.admin.keyring中的值

    先对ceph.client.admin.keyring中的值进行base64编码

    #echo "AQDchXhYTtjwHBAAk2/H1Ypa23WxKv4jA1NFWw==" | base64
    QVFEY2hYaFlUdGp3SEJBQWsyL0gxWXBhMjNXeEt2NGpBMU5GV3c9PQo=

    创建 ceph-secret.yaml

    apiVersion: v1
    kind: Secret
    metadata:
      name: ceph-secret
    namespace: cephfs data: key: QVFEY2hYaFlUdGp3SEJBQWsyL0gxWXBhMjNXeEt2NGpBMU5GV3c9PQo
    =

    3、配置 storageclass

    ---
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: cephfs-dev
      namespace: cephfs
    provisioner: ceph.com/cephfs
    parameters:
      monitors: 192.168.130.135:6789,192.168.130.136:6789,192.168.130.137:6789
      adminId: admin
      adminSecretName: ceph-secret
      adminSecretNamespace: cephfs
      claimRoot: /volumes/kubernetes/devmonitors:
    •    provisioner: 该字段指定使用存储卷类型为 kubernetes.io/rbd,注意 kubernetes.io/ 开头为 k8s 内部支持的存储提供者,不同的存储卷提供者类型这里要修改成对应的值
    • monitors:  ceph监控节点
    • adminId:  这里需要指定两种 Ceph 角色 admin 和其他 user,admin 角色默认已经有了,其他 user 可以去 Ceph 集群创建一个并赋对应权限值,如果不创建,也可以都指定为 admin
    • adminSecretName:  为上边创建的 Ceph 管理员 admin 使用的 ceph-secret
    • claimRoot:   在ceph上的目录结构

    4、创建test-pvc.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: claim
      namespace: cephfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: cephfs-dev
      resources:
        requests:
          storage: 1Gi

    5、创建test-pod.yaml

    ---
    kind: Pod
    apiVersion: v1
    metadata:
      name: test-pod
      namespace: cephfs
    spec:
      containers:
        - name: test-pod
          image: 10.2.57.16:5000/library/nginx:1.18.0
          volumeMounts:
            - name: pvc
              mountPath: "/data/cephfs"
      volumes:
        - name: pvc
          persistentVolumeClaim:
            claimName: claim
  • 相关阅读:
    关于OCI接口理解
    linux 关闭selinux
    Web 浏览器之事件循环 Event Loop
    Web 浏览器之页面展示原理
    Web 前端工程化(Node、Babel、webpack、Vue、Nginx)
    Web 包管理工具(npm、yarn、cnpm、pnpm)
    kmeans算法
    Django_re_path_使用正则匹配url
    VMware_关机未关闭vm导致显示红叉的处理方法
    Django_发送邮件
  • 原文地址:https://www.cnblogs.com/deny/p/14788978.html
Copyright © 2020-2023  润新知