分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

kubernetes ??ceph-rbd挂载步骤 类型storageClass

发布时间:2023-09-06 02:03责任编辑:董明明关键词:kubernetes

由于kubelet本身并不支持rbd的命令,所以需要添加一个kube系统插件:

 下载插件 quay.io/external_storage/rbd-provisioner

下载地址: 

https://quay.io/repository/external_storage/rbd-provisioner?tag=latest&tab=tags

在k8s集群的node上面下载 docker pull quay.io/external_storage/rbd-provisioner:latest

只安装插件本身会报错:需要安装kube的角色和权限 以下是下载地址:

https://github.com/kubernetes-incubator/external-storage  

https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/rbd/deploy/rbac #下载kube的role的yaml文件

下载rbac文件夹:

使用:  kubectl  apply  -f rbac/

运行rbd-provisioner

如果报错:

报错因为rbd-provisioner的镜像中不能找到ceph的key和conf,需要把集群中key和conf拷贝进rbd-provisioner的镜像。

找到rbd-provisioner的镜像运行节点

docker cp  /etc/ceph/ceph.client.admin.keyring  <镜像名>:/etc/ceph/

docker cp  /etc/ceph/ceph.conf  <镜像名>:/etc/ceph/

如果又报错:

一直处于Pending,因为linux内核不支持 image format 1,所以我们要在sc中加入新建镜像时给他规定镜像的格式为2

在stroageclass中添加:

                                    imageFormat: "2"

                                    imageFeatures: "layering"

这样pvc就创建成功:

安装插件及角色(rbac):

#clusterrole.yamlkind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: ?name: rbd-provisionerrules: ?- apiGroups: [""] ???resources: ["persistentvolumes"] ???verbs: ["get", "list", "watch", "create", "delete"] ?- apiGroups: [""] ???resources: ["persistentvolumeclaims"] ???verbs: ["get", "list", "watch", "update"] ?- apiGroups: ["storage.k8s.io"] ???resources: ["storageclasses"] ???verbs: ["get", "list", "watch"] ?- apiGroups: [""] ???resources: ["events"] ???verbs: ["list", "watch", "create", "update", "patch"] ?- apiGroups: [""] ???resources: ["services"] ???resourceNames: ["kube-dns"] ???verbs: ["list", "get"]#clusterrolebinding.yamlkind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: ?name: rbd-provisionersubjects: ?- kind: ServiceAccount ???name: rbd-provisioner ???namespace: defaultroleRef: ?kind: ClusterRole ?name: rbd-provisioner ?apiGroup: rbac.authorization.k8s.io#deployment.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: rbd-provisionerspec: ?replicas: 1 ?strategy: ???type: Recreate ?template: ???metadata: ?????labels: ???????app: rbd-provisioner ???spec: ?????containers: ?????- name: rbd-provisioner ???????image: "quay.io/external_storage/rbd-provisioner:latest" ???????env: ???????- name: PROVISIONER_NAME ?????????value: ceph.com/rbd ???#定义插件的名字 ?????serviceAccount: rbd-provisioner#role.yamlapiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: ?name: rbd-provisionerrules:- apiGroups: [""] ?resources: ["secrets"] ?verbs: ["get"]#rolebinding.yamlapiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: ?name: rbd-provisionerroleRef: ?apiGroup: rbac.authorization.k8s.io ?kind: Role ?name: rbd-provisionersubjects:- kind: ServiceAccount ?name: rbd-provisioner ?namespace: default#serviceaccount.yamlapiVersion: v1kind: ServiceAccountmetadata: ?name: rbd-provisioner

  

创建storageClass:

kind: StorageClassapiVersion: storage.k8s.io/v1metadata: ?name: rbd provisioner: ceph.com/rbd ???#使用插件来生成scparameters: ?monitors: 10.101.3.9:6789,10.101.3.11:6789,10.101.3.12:6789 ?adminId: admin ?adminSecretName: ceph-k-secret ?adminSecretNamespace: default ?#这里使用default 如果使用其他就要修改还要修改插件中的 ?pool: rbd ?userId: admin ?userSecretName: ceph-k-secret ?fsType: ext4 ?imageFormat: "2" ?imageFeatures: "layering"

  

创建PVC:

apiVersion: v1kind: PersistentVolumeClaimmetadata: ?name: ceph-rbd-dyn-pv-claimspec: ?accessModes: ???- ReadWriteOnce ?storageClassName: rbd ?resources: ???requests: ?????storage: 1Gi

kubernetes ??ceph-rbd挂载步骤 类型storageClass

原文地址:https://www.cnblogs.com/kuku0223/p/9232858.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved