openEuler kubesphere kubekey 安装 ceph csi 及使用实例
按照官方文档,很轻松就可以进行安装, 安装过程中遇到一些疑问, 在安装后也得到清晰的理解
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 及使用实例相关推荐
- KubeSphere通过Ceph CSI对接持久化存储Ceph集群
KubeSphere通过Ceph CSI对接持久化存储Ceph集群 1. Ceph集群设置 2. 创建Kubernetes的存储卷类型和csi适配中间层资源 3. kk工具中加入ceph-csi-rb ...
- 使用KubeKey安装K8S集群
KubeKey [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere ...
- kubesphere离线安装从入门到放弃
前言 上一篇主要讲了如何进行单机版本kubesphere,本篇主要讲如何基于单机镜像完成集群的配置与管理. 一.导出镜像 以下操作必须要在之前的单机上执行,不然没效果. #创建配置文件 ./kk cr ...
- 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 ...
- 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 ...
- 云原生Java架构师的第一课阿里云部署-KubeSphere平台安装
1.KubeSphere简介 KubeSphere官网 KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器管理平台,支持部署和运行在任何基础设施之上,提供简单易用的操 ...
- 使用Rook安装Ceph
layout: post title: 使用Rook安装Ceph catalog: true tag: [K8S, Ceph] 1. Rook简介 2. Rook架构 3. Rook部署 3.1. 前 ...
- Ceph (3) - 安装Ceph集群方法3:使用 ceph-ansible 离线安装 Red Hat Ceph Storage 4.1 集群
<OpenShift 4.x HOL教程汇总> 文章目录 安装前说明 准备主机环境 创建虚拟主机并配置网络 配置主机名和域名 设置环境变量 设置主机hosts 配置免密登录 设置节点主机名 ...
- Ceph (2) - 安装Ceph集群方法 2:使用cephadm配置Nautilus版Ceph集群
<OpenShift 4.x HOL教程汇总> 文章目录 安装环境说明 Ceph集群节点说明 Ceph集群主机环境说明 用cephadm部署Ceph集群 准备节点环境 设置环境变量 设置h ...
最新文章
- 【redis】redis持久化
- 算法题001 剑指Offer 面试题三:二维数组中的查找
- ssm上传文件获取路径_SSM实现图片上传下载功能
- WordPress的RSS订阅优化
- eclipse中birt插件使用_eclipse安装birt插件
- Django实战(6):对比RoR和Django的模板系统
- B站安卓端缓存的视频blv批量转换成完整MP4
- Webpack打包警告: We noticed you're using the `useBuiltIns` option without declaring a core-js version.
- 虚拟机无法重启服务器,windows2019虚拟机管理服务无法启动
- 复利/单利计算程序进度
- 创业起步阶段需要注意的几点
- U3D的坑坑洼洼(1)
- 计算机专业开题报告英文版,计算机专业开题报告范文样本(计算机专业论文开题报告范文)...
- 年仅22岁的苹果视障工程师正在改变科技世界
- C语言-----计算1-1/2+1/3-1/4+....+1/99-1/100+....直到最后一项的绝对值小于10-4为止
- scratch案例——双人赛跑
- EVE-NG镜像资源
- 快速搜索、快速传输——Evething(详解)
- FFmpeg简述,源码分析,录制/压缩/水印/剪切/旋转/滤镜/美颜/上传视频等(CPU软编码和解码)
- 电动车选购和防盗指南