首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google Kubernetes Engine (GKE)中挂载Rook卷

在Google Kubernetes Engine (GKE)中挂载Rook卷
EN

Stack Overflow用户
提问于 2019-06-07 00:39:22
回答 1查看 362关注 0票数 0

我一直在深入研究Kubernetes的Rook+Ceph,试图让它在Google Kubernetes引擎下工作,但遇到了障碍。

根据文档,我已经运行了以下命令,并验证了每个命令都有预期的效果:

代码语言:javascript
复制
kubectl create -f common.yaml
kubectl create -f operator.yaml
kubectl create -f cluster.yaml
kubectl create -f filesystem.yaml

除了operator.yaml之外,所有yaml文件都默认为provided by Rook,其中我按照the GKE docs添加了以下环境变量

代码语言:javascript
复制
- name: FLEXVOLUME_DIR_PATH
  value: "/home/kubernetes/flexvolume"

然而,我不确定从这里到哪里去。他们的文档有一个creating a registry的示例文件,它导致了一个兔子洞的指令,这似乎与我试图实现的目标无关。

从本质上讲,我希望能够将Ceph共享文件存储挂载为常规ol‘容器镜像中的卷。我已经尝试了以下yaml,但没有成功:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
  namespace: default
spec:
  containers:
  - name: ubuntu
    image: ubuntu:bionic
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: image-store
      mountPath: /mnt/shared
  volumes:
  - name: image-store
    flexVolume:
      driver: ceph.rook.io/rook
      fsType: ceph
      options:
        fsName: myfs
        clusterNamespace: rook-ceph
  restartPolicy: Always

根据我有限的知识,我不明白为什么这不能工作,但我在执行kubectl describe pods ubuntu时得到了以下输出

代码语言:javascript
复制
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/10ee80d1-8873-11e9-8f45-42010a8a01d8/volumes/ceph.rook.io~rook/image-store --scope -- mount -t ceph -o name=admin,secret=AQDAM/lcQFKHARAAh/O27Wl+iRKRzREsMML+4g==,mds_namespace=myfs 10.8.3.134:6789,10.8.13.226:6789,10.8.5.39:6789:/ /var/lib/kubelet/pods/10ee80d1-8873-11e9-8f45-42010a8a01d8/volumes/ceph.rook.io~rook/image-store
Output: Running scope as unit: run-reb61186d1ff64e6e846a200580aa5395.scope
mount: /var/lib/kubelet/pods/10ee80d1-8873-11e9-8f45-42010a8a01d8/volumes/ceph.rook.io~rook/image-store: special device 10.8.3.134:6789,10.8.13.226:6789,10.8.5.39:6789:/ does not exist.
  Warning  FailedMount  51s (x2 over 2m53s)  kubelet, gke-kubey-cluster-default-pool-6856b374-nb0c  (combined from similar events): MountVolume.SetUp failed for volume "image-store" : mount command failed, status: Failure, reason: failed to mount filesystem myfs to /var/lib/kubelet/pods/10ee80d1-8873-11e9-8f45-42010a8a01d8/volumes/ceph.rook.io~rook/image-store with monitor 10.8.3.134:6789,10.8.13.226:6789,10.8.5.39:6789:/ and options [name=admin secret=AQDAM/lcQFKHARAAh/O27Wl+iRKRzREsMML+4g== mds_namespace=myfs]: mount failed: exit status 32

有没有在野外某处如何实现这样的事情的例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 17:57:13

确保你填满了Rook setup的每一个先决条件:rook_setup

然后尝试安装:

代码语言:javascript
复制
nfs-common

在所有节点上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56481805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档