当前位置: 首页 > ds >正文

kubernetes-使用ceph-csi

kubernetes-使用ceph-csi

Kubernetes (简称K8s)和Ceph都是开源的云计算技术,K8s是一个容器编排平台,而Ceph是一个分布式存储系统。将K8s和Ceph集成在一起可以为应用程序提供高可用性和持久性存储。本文主要介绍如何在使用openEuler 22.03操作系统的鲲鹏服务器上操作K8s集成Ceph。
在这里插入图片描述

Ceph是一个可靠的、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。Ceph提供统一的横向扩展存储,带有自我修复和智能预测故障的功能,已经成为软件定义存储的事实上的标准之一。

Ceph是开源的,它使许多供应商能够提供基于Ceph的软件去定义合适的存储系统。K8s是用于自动部署、扩展和管理容器化(Containerized)应用程序的开源系统。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。因各个项目集群在部署时对存储的需求各有差异,使用Ceph作为统一储存,则在确保可靠性的同时又能具备相应的灵活性,将计算与存储解耦与K8s灵活的部署方式相得益彰。

img

这里主要讲解集成使用ceph rbd 功能

1. 创建 rbd pool

rbd 块存储于ceph pool中,所以需要创建一个pool 用于存储后续的pv disk

#ceph osd pool create kubernetes
#rbd pool init kubernetes
2. 配置ceph-csi

ceph 如果需要通过cephx认证的情况下,需要创建config map 传递 ceph config 以及secret。如果不开启cephx,下面的cephx改成none即可。

# cat <<EOF > ceph-config.yaml
---
apiVersion: v1
kind: ConfigMap
data:ceph.conf: |[global]auth_cluster_required = cephxauth_service_required = cephxauth_client_required = cephx# keyring is a required key and its value should be emptykeyring: |
metadata:name: ceph-config
EOF
# kubectl apply -f ceph-config.yaml

配置ceph monitor

# cat <<EOF > csi-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:ceph.conf: |[{"clusterID":"80451321eeqeqw-eqeq-eqeq-eqeqewqeq-dqeq-eqe","monitors":["10.220.134.7:6789","10.220.134.43:6789","10.220.130.200:6789"]}]
metadata:name: ceph-csi-config
EOF
# kubectl apply -f csi-config-map.yaml
3. 配置cephx

配置cephx的账号和密码(ceph auth 的账号和密码在ceph侧自行生成即可,当然如果不开启cephx的情况下,这里userID和userKey随便填就行)

#cat <<EOF > csi-rbd-secret.yaml
---
apiVersion: v1
kind: Secret
metadata:name: csi-rbd-secretnamespace: default
stringData:userID: kubernetesuserKey: AQD9o0Fd6hQRChAAt7fMaSZXduT3NWEqylNpmg==
EOF
# kubectl apply -f csi-rbd-secret.yaml
3. 配置ceph-csi
3.1 选择和ceph、kubernetes版本对应的ceph-csi版本
#ceph -v
ceph version 14.2.22
# kubectl version
Client Version: v1.31.4
Kustomize Version: v5.4.2
Server Version: v1.31.4
3.2 选择对应的ceph-csi版本

这里选择使用ceph-csi v3.7.2 , 和用的ceph 和kubernetes匹配

#git clone -b v3.7.2 https://github.com/ceph/ceph-csi.git
#cd ceph-csi/deploy/rbd/kubernetes

配置访问Kubernetes API对象的ServiceAccount和RBAC

#kubectl apply -f csi-provisioner-rbac.yaml 
#kubectl apply -f csi-nodeplugin-rbac.yaml

部署csi 程序与节点插件

修改 csi-rbdplugin.yaml 和 csi-rbdplugin-provisioner.yaml,注释掉csi-rbdplugin.yaml和csi-rbdplugin-provisioner.yaml文件中kms相关内容

#kubectl apply -f csi-rbdplugin.yaml 
#kubectl apply -f csi-rbdplugin-provisioner.yaml
4. 检查
# kubectl get pods -o wide
NAME                                         READY   STATUS    RESTARTS   AGE     IP              NODE    NOMINATED NODE   READINESS GATES
csi-rbdplugin-2xb7k                          3/3     Running   0          2m34s   172.22.2.55     node3   <none>           <none>
csi-rbdplugin-k6wjl                          3/3     Running   0          2m34s   172.22.4.4      node1   <none>           <none>
csi-rbdplugin-provisioner-7586c58d96-26rjk   7/7     Running   0          2m30s   10.233.65.112   node2   <none>           <none>
csi-rbdplugin-provisioner-7586c58d96-7kfxx   7/7     Running   0          2m30s   10.233.64.124   node1   <none>           <none>
csi-rbdplugin-provisioner-7586c58d96-qn4jl   7/7     Running   0          2m30s   10.233.66.161   node3   <none>           <none>
csi-rbdplugin-vv7ds                          3/3     Running   0          2m34s   172.22.3.50     node2   <none>           <none>

参考:

https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/

https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengk8sceph_04_0008.html

http://www.xdnf.cn/news/294.html

相关文章:

  • Linux 进程
  • 浅析MySQL事务锁
  • 全球IP地址查询API:查询该IP所属的区域,提供即时服务
  • 【时时三省】(C语言基础)用do...while语句实现循环
  • 云端免费训练 AI 大模型推荐(适用于个人学习)
  • github 项目迁移到 gitee
  • 多肽 N 端乙酰化有什么作用?
  • 【机试】高精度
  • Java 数据类型全解析:基础、引用与包装类全面梳理
  • 【杂说杂谈】国产替代计划的思考
  • 使用droidrun库实现AI控制安卓手机
  • C++17 信号量模拟实现
  • AI测试用例生成平台
  • 4090租用,各云GPU平台价格对比清单及建议
  • 第十五节:实战场景-React路由权限控制方案
  • ModbusTCP 转 Profinet 主站网关
  • 2 celery环境搭建
  • 从实验室到肌肤:解码抗衰老科学革命与Dr.Jin麦角硫因胶囊的抗氧化突围
  • 香港服务器CPU对比:Intel E3与E5系列核心区别与使用场景
  • Aladdin显卡多任务运行教程
  • TVM计算图分割--Collage
  • 红黑树insert笔记
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题
  • 使用Service发布应用程序
  • std::set (C++)
  • #手动控制windows更新时间(非常安全,可随时恢复)
  • C++ 网络层接口设计与实现:基于 Socket 编程
  • L2-018 多项式A除以B
  • SQL-exists和in核心区别​、 性能对比​、适用场景​
  • 2.1 数据处理