按照官方文档,很轻松就可以进行安装, 安装过程中遇到一些疑问, 在安装后也得到清晰的理解

1.  /root/ceph-csi-rbd.yaml

这里面的clusterId 按理说应该是ceph的clusterId, 不过官方文档并没有首重强调修改,暂时保持默认

下面6789端口就是我们在物理机上安装的ceph mon的主机ip,端口

csiConfig:- clusterID: "e17a4906-5e5f-4935-b9c0-bc6ae4e53b28" # 切记这里是你的ceph集群fsidmonitors:- "192.168.0.14:6789"- "192.168.0.15:6789"- "192.168.0.16:6789"

切记 clusterID 这里是你的ceph集群fsid, 写错会导致报错

resize volume "pvc-493171e0-fa52-4e8d-9362-869bfd3d162a" by resizer "rbd.csi.ceph.com" failed: rpc error: code = Internal desc = failed to fetch monitor list using clusterID (cluster1): missing configuration for cluster ID "cluster1"

2. ceph-csi-rbd-sc.yaml

注意: kind: VolumeSnapshotClass 这段代码, 是在官方教程基础上增加了, 如果不增加这段代码, 直接使用官方教程, 会创建一个快照类名字也叫:csi-rbd-sc , 但是无法执行快照报错

Failed to check and update snapshot content: failed to take snapshot of the volume 0001-0008-cluster1-0000000000000006-ac9915d6-769e-11ed-b99c-aeae15d7c828: "rpc error: code = Internal desc = provided secret is empty"

也许应该在 StorageClass Parameter下面增加如下快照使用的密钥配置,这块没有仔细研究, 添加了快照类的定义,将原来的快照类删除掉或不用即可成功创建快照

  csi.storage.k8s.io/snapshotter-secret-name: csi-rbd-secretcsi.storage.k8s.io/snapshotter-secret-namespace: kube-system
apiVersion: v1
kind: Secret
metadata:name: csi-rbd-secretnamespace: kube-system
stringData:userID: adminuserKey: "AQCyCIhjBE7QCRAALS6vAj4WyaPAj6Y+dac0oQ=="
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: csi-rbd-scannotations:storageclass.beta.kubernetes.io/is-default-class: "true"storageclass.kubesphere.io/supported-access-modes: '["ReadWriteOnce","ReadOnlyMany","ReadWriteMany"]'
provisioner: rbd.csi.ceph.com
parameters:clusterID: "e17a4906-5e5f-4935-b9c0-bc6ae4e53b28"  # 切记这里是你的ceph集群fsidpool: "rbd"imageFeatures: layeringcsi.storage.k8s.io/provisioner-secret-name: csi-rbd-secretcsi.storage.k8s.io/provisioner-secret-namespace: kube-systemcsi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secretcsi.storage.k8s.io/controller-expand-secret-namespace: kube-systemcsi.storage.k8s.io/node-stage-secret-name: csi-rbd-secretcsi.storage.k8s.io/node-stage-secret-namespace: kube-systemcsi.storage.k8s.io/fstype: ext4
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:- discard
---
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:name: csi-rbd-snapclass
driver: rbd.csi.ceph.com
parameters:# String representing a Ceph cluster to provision storage snapshot from.# Should be unique across all Ceph clusters in use for provisioning,# cannot be greater than 36 bytes in length, and should remain immutable for# the lifetime of the StorageClass in use.# Ensure to create an entry in the configmap named ceph-csi-config, based on# csi-config-map-sample.yaml, to accompany the string chosen to# represent the Ceph cluster in clusterID belowclusterID: "e17a4906-5e5f-4935-b9c0-bc6ae4e53b28"# Prefix to use for naming RBD snapshots.# If omitted, defaults to "csi-snap-".# snapshotNamePrefix: "foo-bar-"csi.storage.k8s.io/snapshotter-secret-name: csi-rbd-secretcsi.storage.k8s.io/snapshotter-secret-namespace: kube-system
deletionPolicy: Delete

这里面的 userId,userKey可以保持使用adimin,其中 userKey通过ceph节点获取

cat /etc/ceph/ceph.client.admin.keyring

我看到网上有些要求需要k8s各个节点配置文件 /etc/ceph/ceph.client.admin.keyring , 感觉不需要吧, 因为这里面已经配置key了, 为什么还需要额外在节点配置呢, 不过我的机器跟k8s机器是重叠的,所以跳过这个步骤的核实了 pool: "rbd" 这里面我使用的默认的rbd池了, 可以自己创建替换 rbd为如下的 kubernetes, 命令如下

a) 创建

ceph osd pool create kubernetes

b) 初始化

rbd pool init kubernetes

ceph osd pool ls detail 查看详情,默认是开启 application enable rbd 的
autoscale_mode on 也是开启的
pool 7 'kubernetes' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 812 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd

网上还有创建用户的, 我这里面就全部使用默认的admin, rbd了, 方便,也少一些麻烦

3.  在创建集群时候使用的文件 config-sample.xml 文件中找到 addons:[], 替换成如下内容, 其它部位内容不用修改, 重新创建集群时不会对集群产生影响, 我本来是希望单独仅创建这个插件的,但是没有成功, 还是按原来的文件,仅增加新的插件

addons:
- name: ceph-csi-rbdnamespace: kube-systemsources:chart:name: ceph-csi-rbdrepo: https://ceph.github.io/csi-chartsvaluesFile: /root/ceph-csi-rbd.yaml
- name: ceph-csi-rbd-scsources:yaml:path:- /root/ceph-csi-rbd-sc.yaml

4. 创建命令

./kk create cluster -f config-sample.yaml

5. 检查是否存在

kubectl get sc

可以看到如下图, 说明创建成功了

NAME                   PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
csi-rbd-sc (default)   rbd.csi.ceph.com   Delete          Immediate              true                   50m
local (default)        openebs.io/local   Delete          WaitForFirstConsumer   false                  4d22h

进入系统组件发现 ceph-csi-rbd-provisioner,ceph-csi-rbd-nodeplugin 是异常状态,并没有启动启来

进入详情看到 ImagePullBackOff 异常, 得到结论应该是image下载遇到问题

通过科学上网进行下载相关镜像并导入各个节点

可以选择香港服务器直接下载, 新机器安装docker可以参考如下文档

centos 7 安装 docker 记录_gs80140的博客-CSDN博客

涉及的docker镜像及处理过程 如下 我会打包统一放到资源里面供大家免费下载哦

docker pull gcr.io/k8s-staging-sig-storage/csi-provisioner:v3.2.1docker pull registry.k8s.io/sig-storage/csi-resizer:v1.5.0docker pull registry.k8s.io/sig-storage/csi-snapshotter:v6.0.1docker pull registry.k8s.io/sig-storage/csi-attacher:v3.5.0docker pull registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1docker save -o csi-provisioner-v3.2.1.tar gcr.io/k8s-staging-sig-storage/csi-provisioner:v3.2.1
docker save -o csi-resizer-v1.5.0.tar registry.k8s.io/sig-storage/csi-resizer:v1.5.0
docker save -o csi-snapshotter-v6.0.1.tar registry.k8s.io/sig-storage/csi-snapshotter:v6.0.1
docker save -o csi-attacher-v3.5.0.tar registry.k8s.io/sig-storage/csi-attacher:v3.5.0
docker save -o csi-node-driver-registrar-v2.5.1.tar registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1下载到本地并上传到目标机器共享目录 /mnt/test, 此目录是mount到同一个块存储
sz *.tar
各节点执行docker导入镜像
docker load --input /mnt/test/csi-provisioner-v3.2.1.tar
docker load --input /mnt/test/csi-resizer-v1.5.0.tar
docker load --input /mnt/test/csi-snapshotter-v6.0.1.tar
docker load --input /mnt/test/csi-attacher-v3.5.0.tar
docker load --input /mnt/test/csi-node-driver-registrar-v2.5.1.tar

然后所有组件启动正常, 其中遇到 ceph-csi-rbd-nodeplugin->liveness-prometheus启动失败的问题, 原因是 8080 端口冲突了, 将 mgr的dashboard端口修改成 18080 即可 (修改 liveness-prometheus 的 8080 端口比较麻烦, 改服务也没有生效)

修改mgr端口

设置成18080, 防止跟其它端口冲突,  使用 80 导致无法访问
ceph config set mgr mgr/dashboard/njoffice04/server_port 18080重启mgr
systemctl restart ceph-mgr@njoffice04

此时发现卷创建成功

rbd ls

显示

csi-vol-59b08fac-75f8-11ed-b99c-aeae15d7c828

openEuler kubesphere kubekey 安装 ceph csi 及使用实例相关推荐

  1. KubeSphere通过Ceph CSI对接持久化存储Ceph集群

    KubeSphere通过Ceph CSI对接持久化存储Ceph集群 1. Ceph集群设置 2. 创建Kubernetes的存储卷类型和csi适配中间层资源 3. kk工具中加入ceph-csi-rb ...

  2. 使用KubeKey安装K8S集群

    KubeKey [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere ...

  3. kubesphere离线安装从入门到放弃

    前言 上一篇主要讲了如何进行单机版本kubesphere,本篇主要讲如何基于单机镜像完成集群的配置与管理. 一.导出镜像 以下操作必须要在之前的单机上执行,不然没效果. #创建配置文件 ./kk cr ...

  4. Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法

    Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法 0.亮点 1 准备 1.1 修改历史记录 1.2 升级系统内核 1.3 配置免密登录 问题1 ...

  5. k8s ceph csi创建pvc报错 failed to get connection: connecting failed: rados: ret=13, Permission denied

    起因 在使用k8s对接ceph-csi时,按照ceph官方流程部署完毕后,在执行kubectl apply -f pvc.yaml 时,相关pod一直处于pending状态. 使用命令kubectl ...

  6. 云原生Java架构师的第一课阿里云部署-KubeSphere平台安装

    1.KubeSphere简介 KubeSphere官网 KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器管理平台,支持部署和运行在任何基础设施之上,提供简单易用的操 ...

  7. 使用Rook安装Ceph

    layout: post title: 使用Rook安装Ceph catalog: true tag: [K8S, Ceph] 1. Rook简介 2. Rook架构 3. Rook部署 3.1. 前 ...

  8. Ceph (3) - 安装Ceph集群方法3:使用 ceph-ansible 离线安装 Red Hat Ceph Storage 4.1 集群

    <OpenShift 4.x HOL教程汇总> 文章目录 安装前说明 准备主机环境 创建虚拟主机并配置网络 配置主机名和域名 设置环境变量 设置主机hosts 配置免密登录 设置节点主机名 ...

  9. Ceph (2) - 安装Ceph集群方法 2:使用cephadm配置Nautilus版Ceph集群

    <OpenShift 4.x HOL教程汇总> 文章目录 安装环境说明 Ceph集群节点说明 Ceph集群主机环境说明 用cephadm部署Ceph集群 准备节点环境 设置环境变量 设置h ...

最新文章

  1. 【redis】redis持久化
  2. 算法题001 剑指Offer 面试题三:二维数组中的查找
  3. ssm上传文件获取路径_SSM实现图片上传下载功能
  4. WordPress的RSS订阅优化
  5. eclipse中birt插件使用_eclipse安装birt插件
  6. Django实战(6):对比RoR和Django的模板系统
  7. B站安卓端缓存的视频blv批量转换成完整MP4
  8. Webpack打包警告: We noticed you're using the `useBuiltIns` option without declaring a core-js version.
  9. 虚拟机无法重启服务器,windows2019虚拟机管理服务无法启动
  10. 复利/单利计算程序进度
  11. 创业起步阶段需要注意的几点
  12. U3D的坑坑洼洼(1)
  13. 计算机专业开题报告英文版,计算机专业开题报告范文样本(计算机专业论文开题报告范文)...
  14. 年仅22岁的苹果视障工程师正在改变科技世界
  15. C语言-----计算1-1/2+1/3-1/4+....+1/99-1/100+....直到最后一项的绝对值小于10-4为止
  16. scratch案例——双人赛跑
  17. EVE-NG镜像资源
  18. 快速搜索、快速传输——Evething(详解)
  19. FFmpeg简述,源码分析,录制/压缩/水印/剪切/旋转/滤镜/美颜/上传视频等(CPU软编码和解码)
  20. 电动车选购和防盗指南

热门文章

  1. 支持NTFS格式的Knoppix版本
  2. 七种方式实现垂直居中
  3. oracle heavy swapping,WARNING: Heavy swapping observed on system in last 5 mins
  4. JD面试Pass的挫败感
  5. 固高GTS控制卡功能介绍1:SmartHome回零功能
  6. 插板法、捆绑法、插空法
  7. CCleaner的使用
  8. CV深度学习项目调试开发过程中报错记录【持续更新】
  9. 华为鸿蒙系统启示,华为的机遇——鸿蒙系统启示录
  10. java开发微信如何维护登录状态_5.13微信登录维护态与获取用户信息思想