在Kubernetes环境中使用StorageClass(动态存储)挂载ceph的RBD

  • A+
所属分类:K8S

1.创建secret

2. 创建storageclass

pool:对应ceph的连接池名称
provisioner: 就是客户端,官方文档中使用的 provisioner 是默认的 kubernetes.io/rbd,注意要改成 ceph.com/rbd,kubernetes.io/rbd 是无法正常使用的,原因是 kubernetes.io/rbd 会在 kube-controller-manager 镜像中查找 RBD 可执行文件,但默认的 kube-controller-manager 镜像是没有的,需要自己来定制镜像,具体细节可参考该链接:Error creating rbd image: executable file not found in $PATH。改为 "ceph.com/rbd" 后,使用的是外部的 RBD 可执行文件,具体的做法会在下一节中介绍。
adminId | userId:连接 ceph 的权限,admin 已存在,如果有需要创建其他用户,可以在 Ceph 集群中创建,并赋予对应的权限,简单使用的话,admin 也足够了。
adminSecretName:Ceph admin 所使用的密钥,复用之前创建的即可。
adminSecretNamespace:密钥所在的命名空间,默认是 default,如果修改为其他的话,需要修改 ceph-secret.yaml,增加 namespace字段:namespace-name。
这里我们创建的storageclass的name是rbd
创建完之后需要对pool进行标记否则会报HEALTH_WARN application not enabled on 1 pool(s)

3.创建rbac

分为RBAC和无RBAC两种部署方式,kubeadm搭建的Kubernetes集群默认开启了RBAC,本集群开起了RBAC选用RBAC方式。external-storage中提供的方式是部署在default namespace中的,如果要部署在其他namespace中,需要做对应的修改。

4.创建pvc


在Kubernetes环境中使用StorageClass(动态存储)挂载ceph的RBD

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

您必须登录才能发表评论!