部署cephfs provisioner

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

k8s yaml文件:https://github.com/kubernetes-retired/external-storage/tree/master/ceph/cephfs/deploy/rbac

  1. kubectl create ns cephfs
  2. kubectl apply -f serviceaccount.yaml
  3. kubectl apply -f role.yaml
  4. kubectl appl y-f rolebinding.yaml
  5. kubectl apply -f rolebinding.yaml
  6. kubectl apply -f clusterrole.yaml
  7. kubectl apply -f clusterrolebinding.yaml
  8. kubectl apply -f deployment.yaml

部署secret key

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

  1. vim ceph-secret.yaml
  2. apiVersion: v1
  3. kind: Secret
  4. metadata:
  5. name: ceph-secret
  6. data:
  7. key: AQBIOrZfN9zpNhAAW/PH2FbR9JjyYoIeXMIIsw==

创建storageclass

  1. apiVersion: storage.k8s.io/v1
  2. kind: StorageClass
  3. metadata:
  4. name: cephfs
  5. namespace: integral-test
  6. provisioner: ceph.com/cephfs
  7. parameters:
  8. monitors: 172.16.0.202:6789,172.16.0.203:6789,172.16.0.204:6789
  9. adminId: admin
  10. adminSecretName: ceph-secret
  11. adminSecretNamespace: cephfs
  12. reclaimPolicy: Retain
  13. ---
  14. apiVersion: v1
  15. kind: PersistentVolumeClaim
  16. metadata:
  17. name: reportfile
  18. namespace: integral-test
  19. spec:
  20. accessModes:
  21. - ReadWriteMany
  22. storageClassName: cephfs
  23. resources:
  24. requests:
  25. storage: 2Gi
  26. ---
  27. kind: Pod
  28. apiVersion: v1
  29. metadata:
  30. name: test-pod
  31. namespace: cephfs
  32. spec:
  33. containers:
  34. - name: test-pod
  35. image: ikubernetes/myapp:v4
  36. volumeMounts:
  37. - name: pvc
  38. mountPath: "/data/cephfs"
  39. volumes:
  40. - name: pvc
  41. persistentVolumeClaim:
  42. claimName: claim
文档更新时间: 2023-02-28 10:39   作者:张尚