首页 > 其他分享 >在k8S中,如何对接外部ceph?

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

时间:2024-02-20 09:13:49浏览次数:30  
标签:Ceph Kubernetes admin 对接 ceph StorageClass k8S 密钥

在 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 集群的交互。

标签:Ceph,Kubernetes,admin,对接,ceph,StorageClass,k8S,密钥
From: https://www.cnblogs.com/huangjiabobk/p/18022341

相关文章

  • 在k8S中,生产环境的pv回收策略该如何选择?
    在Kubernetes(k8s)中,持久卷(PersistentVolume,PV)的回收策略是一个重要的配置项,它决定了当与PV绑定的持久卷声明(PersistentVolumeClaim,PVC)被删除后,集群如何处理该PV上的数据。以下是三种主要的PV回收策略及其适用场景:Retain:选择此策略时,当PVC被删除后,PV将保持其状态,并......
  • 在k8S中,K8S持久化可以对接哪些储存,为什么要选择它?
    在Kubernetes(k8s)中,持久化存储可以对接多种类型的存储系统,以满足不同场景下的需求。Kubernetes的设计使得它可以与各种云服务提供商的存储解决方案、本地存储系统以及第三方开源或商业存储产品进行集成。以下是一些常见的存储类型:云服务提供商的块存储/卷:AWSEBS(Elastic......
  • 在k8S中,rook概念是什么?
    在Kubernetes(k8s)中,Rook是一个开源的云原生存储编排系统,它为容器环境提供了一种便捷的方式来部署、管理和扩展多种分布式存储解决方案。Rook通过Operator模式将复杂的存储集群配置和管理任务自动化,使得存储服务能够与Kubernetes的资源模型无缝集成。具体来说:自定义......
  • 在k8S中,Fluentd的工作原理是什么?
    在Kubernetes(k8s)中,Fluentd作为日志收集器和转发器,其工作原理主要包括以下几个关键步骤:数据收集:Fluentd在Kubernetes集群中通常以DaemonSet形式部署,确保每个Node节点上都有一个Fluentd实例运行。Fluentd使用输入插件(InputPlugins)从各个容器的日志源获取数据......
  • 普罗米修斯监控k8s
    目录安装普罗米修斯1.下载kube-Prometheus文件3.解压文件安装4.配置端口转发5.浏览器访问6.配置dashboard7.卸载安装普罗米修斯k8s版本1.26安装过程非常的容易,非常的轻松,这篇文章只说安装步骤1.下载kube-Prometheus文件官网地址:https://github.com/prometheus-operator/k......
  • 在k8S中,Master节点高可用是如何做的?
    在Kubernetes集群中,为了确保Master节点的高可用性(HighAvailability,HA),通常采用以下几种策略和组件:APIServer高可用多实例部署:通过部署多个APIServer实例,并使用负载均衡器(如云服务提供商提供的负载均衡或内部负载均衡软件)将流量均匀分发到各个实例上。云端托管的Kuberne......
  • 在k8S中,QoS作用是什么?
    在Kubernetes(k8s)中,QoS(QualityofService,服务质量)是一种资源管理策略,它通过评估Pod对CPU和内存资源的需求与限制来决定在资源紧张时如何优先分配资源。QoS确保集群在面临资源竞争时能够公平地处理不同类型的Pod,并尽可能维持系统的稳定性和响应性。Kubernetes根据Pod的资源配置将......
  • 在k8S中,Helm优缺点是什么?
    Helm是Kubernetes的一个包管理工具,用于简化应用程序在Kubernetes集群上的安装、升级和管理过程。它采用chart(一种打包格式)来定义、配置和发布Kubernetes应用及其依赖关系。Helm的优点:标准化与复用:Helmchart提供了一种标准化的方式来描述Kubernetes资源,使得应用的部署变得可复......
  • 在k8S中,flannel和calico的作用和区别是什么?
    在Kubernetes(k8s)中,Flannel和Calico都是用于提供容器网络解决方案的CNI(ContainerNetworkInterface)插件,它们的主要作用是为集群中的Pod提供跨主机之间的网络通信能力。以下是两者的基本作用和主要区别:Flannel:作用:Flannel设计简洁且易于部署,主要用于实现集群内Pod间的IP地址空间......
  • 在k8S中,容器内日志是怎么采集的?
    在Kubernetes(k8s)中,容器内日志的采集通常采用以下几种方法:标准输出和错误流:Kubernetes默认将容器的标准输出(stdout)和标准错误输出(stderr)作为日志源。当容器运行时,这些信息会通过kubectllogs命令或API直接访问。Dockerdaemon会将这些输出捕获并存储在宿主机上的一个特定......