在k8S中,如何对接外部ceph?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在k8S中,如何对接外部ceph?

在 Kubernetes (k8s) 中对接外部 Ceph 存储集群通常涉及以下几个关键步骤:

1. 准备Ceph配置和密钥文件
  • 将 Ceph 配置文件(ceph.conf)复制到所有 Kubernetes 节点的 /etc/ceph 目录下,以便集群中的节点可以访问到正确的配置信息。
  • 获取 Ceph 的客户端管理员密钥环 ceph.client.admin.keyring 并将其安全地分发到需要与 Ceph 进行交互的 Kubernetes 节点上。密钥环通常也需要放置在 /etc/ceph 目录中,并设置好适当的权限以确保安全性。
2. 创建 Kubernetes Secret
  • 将 Ceph 客户端密钥环转换为 Kubernetes Secret 对象,这样 Kubernetes 可以安全地管理并传递给运行在 Pod 中的应用程序。
kubectl create secret generic ceph-secret --from-file=ceph.client.admin.keyring=/etc/ceph/ceph.client.admin.keyring
3. 创建StorageClass
  • 创建一个 StorageClass 对象,它引用 Ceph 存储系统,并通过环境变量或 Secret 引用 Ceph 配置和密钥。这允许动态创建 PersistentVolumeClaim (PVC),当 PVC 被绑定时会自动创建相应的 PersistentVolume (PV)。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd-sc
provisioner: kubernetes.io/rbd
parameters:
monitors: <ceph-monitors-endpoints>
adminId: admin
adminSecretName: ceph-secret
adminSecretNamespace: default
pool: k8s-data # 替换为你的 Ceph RBD 池名称
fsType: xfs # 或其他文件系统类型
imageFormat: "2" # RBD 图像格式版本,默认为 v2
imageFeatures: "layering" # 如果支持快照,可包含 layering 功能
4. 使用 StorageClass
  • 开发者或者运维人员现在可以在部署应用时指定使用上述创建的 StorageClass,Kubernetes 会在应用需要持久化存储时,根据 StorageClass 自动从 Ceph 集群中分配存储资源。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: ceph-rbd-sc
resources:
requests:
storage: 5Gi # 请求5GB存储空间
注意事项:
  • 在实际操作过程中,请务必替换 <ceph-monitors-endpoints> 为您的 Ceph Monitor 服务的实际地址。
  • 根据 Ceph 集群的具体情况,可能还需要额外的参数进行配置,例如 rados 用户名、密钥名称等。
  • 确保 Kubernetes 节点有足够的权限来挂载和卸载 Ceph RBD 卷。

综上所述,如果使用的是 Rook Operator 来管理 Ceph,流程会有所不同,因为 Rook 会自动处理大部分这些集成工作,包括 StorageClass 的创建以及与 Ceph 集群的交互。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 Kubernetes 测试技术
k8s使用pvc,pv,sc关联ceph集群
文章介绍了如何在Kubernetes中使用PersistentVolumeClaim (PVC)、PersistentVolume (PV) 和StorageClass (SC) 来关联Ceph集群,包括创建Ceph镜像、配置访问密钥、删除默认存储类、编写和应用资源清单、创建资源以及进行访问测试的步骤。同时,还提供了如何使用RBD动态存储类来关联Ceph集群的指南。
97 7
|
1月前
|
Kubernetes 容器
k8s基于secretRef认证对接rbd块设备
文章介绍了如何在Kubernetes集群中通过secretRef认证方式接入Ceph的RBD块设备,并提供了详细的步骤和配置文件示例。
38 7
|
1月前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
60 5
|
1月前
|
Kubernetes 容器 Perl
k8s基于keyring文件认证对接rbd块设备
文章介绍了如何在Kubernetes集群中使用Ceph的keyring文件进行认证,并对接RBD块设备,包括使用admin用户和自定义用户两种方式的详细步骤和注意事项。
29 3
|
2月前
|
存储 Kubernetes 容灾
在k8S中,K8S持久化可以对接哪些储存,为什么要选择它?
在k8S中,K8S持久化可以对接哪些储存,为什么要选择它?
|
10月前
|
存储 Kubernetes 对象存储
Kubernetes存储:Ceph架构,部署和使用
Kubernetes存储:Ceph架构,部署和使用
146 0
|
10月前
|
存储 Kubernetes 对象存储
Kubernetes版本对接对象存储几种方案
Kubernetes版本对接对象存储几种方案
555 0
|
存储 Kubernetes Cloud Native
【云原生】k8s集群部署Rook+Ceph云原生存储
【云原生】k8s集群部署Rook+Ceph云原生存储
562 0
|
Kubernetes 容器
kubernetes挂载ceph rbd和cephfs
kubernetes挂载ceph rbd和cephfs
|
存储 Kubernetes 关系型数据库
K8s部署分布式存储Ceph系统搭建与实战
K8s部署分布式存储Ceph系统搭建与实战
1293 0