1

我设置了一个 Ceph 集群并使用sudo mount -t官方文档中的命令手动挂载,我检查了我的 Ceph 集群的状态——那里没有问题。现在我正在尝试在 Kubernetes 上挂载我的 CephFS,但是当我运行 kubectl create 命令时,我的 pod 卡在了 ContainerCreating 中,因为它无法挂载。我在网上查看了许多相关的问题/解决方案,但没有任何效果。

作为参考,我正在遵循本指南:https ://medium.com/velotio-perspectives/an-innovators-guide-to-kubernetes-storage-using-ceph-a4b919f4e469

我的设置由 5 个 AWS 实例组成,它们如下:

节点 1:Ceph Mon

节点 2:OSD1 + MDS

节点 3:OSD2 + K8s Master

节点 4:OSD3 + K8s Worker1

节点 5:CephFS + K8s Worker2

可以将 K8s 堆叠在与 Ceph 相同的实例之上吗?我很确定这是允许的,但如果不允许,请告诉我。

在描述 pod 日志中,这是错误/警告:

Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /root/userone/kubelet/pods/bbf28924-3639-11ea-879d-0a6b51accf30/volumes/kubernetes.io~cephfs/pvc-4777686c-3639-11ea-879d-0a6b51accf30 --scope -- mount -t ceph -o name=kubernetes-dynamic-user-4d05a2df-3639-11ea-b2d3-5a4147fda646,secret=AQC4whxeqQ9ZERADD2nUgxxOktLE1OIGXThBmw== 172.31.15.110:6789:/pvc-volumes/kubernetes/kubernetes-dynamic-pvc-4d05a269-3639-11ea-b2d3-5a4147fda646 /root/userone/kubelet/pods/bbf28924-3639-11ea-879d-0a6b51accf30/volumes/kubernetes.io~cephfs/pvc-4777686c-3639-11ea-879d-0a6b51accf30
Output: Running scope as unit run-2382233.scope.
couldn't finalize options: -34

这些是我的 .yaml 文件:

供应商:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: test-provisioner-dt
  namespace: test-dt
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update", "create"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
  - apiGroups: [""]
    resources: ["services"]
    resourceNames: ["kube-dns","coredns"]
    verbs: ["list", "get"]
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["create", "get", "delete"]
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: test-provisioner-dt
  namespace: test-dt
subjects:
  - kind: ServiceAccount
    name: test-provisioner-dt
    namespace: test-dt
roleRef:
  kind: ClusterRole
  name: test-provisioner-dt
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: test-provisioner-dt
  namespace: test-dt
rules:
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["create", "get", "delete"]
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---

存储类:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: postgres-pv
  namespace: test-dt
provisioner: ceph.com/cephfs
parameters:
  monitors: 172.31.15.110:6789
  adminId: admin
  adminSecretName: ceph-secret-admin-dt
  adminSecretNamespace: test-dt
  claimRoot: /pvc-volumes

PVC:

apiVersion: v1
metadata:
  name: postgres-pvc
  namespace: test-dt
spec:
  storageClassName: postgres-pv
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 2Gi

输出kubectl get pvkubectl get pvc显示卷被绑定和声明,没有错误。供应商 pod 日志的输出都显示成功/无错误。

请帮忙!

4

0 回答 0