[转帖]k8s对接ceph,ceph-csi方式

k8s,对接,ceph,csi,方式 · 浏览次数 : 0

小编点评

1. **上传文件** - 将 `ceph-csi-yaml` 和 `ceph-csi-image` 两个文件夹上传到服务器 2。 2. **加载镜像** - 使用 `kubectl apply -f ceph-csi-image.yaml` 命令加载 `ceph-csi-image` 的镜像。 3. **上传harbor镜像** - 将 `ceph-csi-image` 中的镜像镜像上传到本地 `harbor` 上。可以使用以下命令: ```bash kubectl cp ceph-csi-image.yaml harbor:10000/csi-config-map.yaml ``` 4. **修改yaml文件** - 修改 `ceph-csi-yaml` 文件中的 `mon_host` 和 `clusterID` 等参数。 - 将 `k8s` 相关配置修改为 `harbor` 的地址。 5. **创建PVC** - 创建一个名为 `rbd-pvcspec` 的 PVC,其大小为 1Gi。 - 将 PVC 的 `storageClassName` 设置为 `csi-rbd-scprovisioner`。 6. **创建配置文件** - 创建 `csi-rbdplugin.yaml` 和 `csi-rbdplugin-provisioner.yaml` 文件,并设置 `image` 属性为 `rbd-pvcspec`。 - 这些文件用于配置 `csi-rbdplugin` 和 `csi-rbdplugin-provisioner`。 7. **运行容器** - 创建一个 Kubernetes 容器,使用 `kubelet` 和 `kubectl` 命令运行 `csi-rbdplugin` 和 `csi-rbdplugin-provisioner`。 - 设置 `image` 属性为 `rbd-pvcspec`。

正文

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器

2.加载 ceph-csi-image里面的镜像

3.将加载好的镜像上传到本地harbor上。

4.修改ceph-csi-yaml文件夹里面的 yaml文件内容

k8s对接ceph离线安装包

#csi-config-map.yaml

  1. ---
  2. apiVersion: v1
  3. kind: ConfigMap
  4. data:
  5.   config.json: |-
  6.     [
  7.       {
  8.         "clusterID": "2a5306a8-885f-40b7-91f6-ec9410b53d3c",  // ceph集群的 id 通过ceph -s 可以看到
  9.         "monitors": [
  10.           "10.20.20.103:6789",
  11.           "10.20.20.104:6789",
  12.           "10.20.20.105:6789"
  13.         ]
  14.       }
  15.     ]
  16. metadata:
  17.   name: ceph-csi-config

#ceph-config-map.yaml

  1. ---
  2. apiVersion: v1
  3. kind: ConfigMap
  4. data:
  5.   ceph.conf: |
  6.     [global]
  7.     fsid = 0c69001e-202b-11ed-a599-8c2a8e4b8e7f // ceph集群的 id
  8.     mon_host = 192.168.4.130 // ceph mon 节点的 ip
  9.   keyring: |
  10. metadata:
  11.   name: ceph-config

#csi-rbd-secret.yaml

  1. ---
  2. apiVersion: v1
  3. kind: Secret
  4. metadata:
  5.   name: csi-rbd-secret
  6.   namespace: default
  7. stringData:
  8.   userID: kubernetes 
  9.   userKey: AQA18kdi+4iYHhAAbRmfkKJ/XvB1PdYTTBEdwA== 
  10.   encryptionPassphrase: test_passphrase

其中的userID与userKey通过以下方式获取

其中userID 就是 下面的 kubernetes 当然如果在创建ceph集群的时候已经 创建好了池子并且给池子赋予了账户和权限,也可以直接用已经创建好了的,我是 直接用的 cinder的

 

userKey 就是 /etc/ceph/ceph.client.cinder.keyring 文件内容

ceph auth get-or-create client.kubernetes mon 'profile rbd' osd 'profile rbd pool=k8s' mgr 'profile rbd pool=k8s'

#csi-storageClass.yaml

  1. ---
  2. apiVersion: storage.k8s.io/v1
  3. kind: StorageClass
  4. metadata:
  5.    name: csi-rbd-sc
  6. provisioner: rbd.csi.ceph.com
  7. parameters:
  8.    clusterID: 0c69001e-202b-11ed-a599-8c2a8e4b8e7f
  9.    pool: volumes 
  10.    imageFeatures: layering
  11.    csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
  12.    csi.storage.k8s.io/provisioner-secret-namespace: default
  13.    csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret
  14.    csi.storage.k8s.io/controller-expand-secret-namespace: default
  15.    csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
  16.    csi.storage.k8s.io/node-stage-secret-namespace: default
  17.    csi.storage.k8s.io/fstype: ext4
  18. reclaimPolicy: Delete
  19. allowVolumeExpansion: true
  20. mountOptions:
  21.    - discard

#创建pvc yaml文件

  1. ---
  2. apiVersion: v1
  3. kind: PersistentVolumeClaim
  4. metadata:
  5.   name: rbd-pvc
  6. spec:
  7.   accessModes:
  8.     - ReadWriteOnce
  9.     resources:
  10.         requests:
  11.       storage: 1Gi
  12.     storageClassName: csi-rbd-sc

#修改 csi-rbdplugin.yaml和csi-rbdplugin-provisioner.yaml 文件里面的 镜像地址,为自己的harbor地址

文章知识点与官方知识档案匹配,可进一步学习相关知识

与[转帖]k8s对接ceph,ceph-csi方式相似的内容:

[转帖]k8s对接ceph,ceph-csi方式

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器 2.加载 ceph-csi-image里面的镜像 3.将加载好的镜像上传到本地harbor上。 4.修改ceph-csi-yaml文件夹里面的 yaml文件内容 k8s对接ceph离线安装包 #csi-config

[转帖]谈谈对K8S CNI、CRI和CSI插件的理解

K8S的设计初衷就是支持可插拔架构,解决PaaS平台不好用、不能用、需要定制化等问题,K8S集成了插件、附加组件、服务和接口来扩展平台的核心功能。附加组件被定义为与环境的其他部分无缝集成的组件,提供类似本机的特性,并扩展集群管理员可用的组件,扩展还可以用于添加自定义软硬件的支持;服务和接口提供了看似

[转帖]K8S 挂载 minio csi 的方式.

对象存储 前置条件 安装Minio(在102主机上操作) 安装csi-s3插件(在103主机上操作) 使用 参考 本文介绍kubernetes如何基于对象存储(minio)创建PV与PVC 前置条件 准备两台主机,如下: 192.168.92.102:Minio节点,用来安装Minio 192.16

[转帖]k8s证书永不过期

https://www.cnblogs.com/fengzi7314/p/15909220.html 第一步,在github上下载对应的版本,我的是1.22版本,所以选的是1.22版本 第二步,下载到本地解压 第三步,进入目录编辑文件,修改为100年 cd kubernetes-1.22.0/ vi

[转帖]k8s之udp丢包问题

https://www.jianshu.com/p/6a5faee4cc65 image.png 测试仪发送某种类型的报文进行性能测试,报文目的mac为VF的mac。对于发出去的每个报文,必须在3s内收到响应,否则认为丢包,会重新发送一次,此时会有retransmit的统计。 pod A有两个网卡,

[转帖]【k8s】5、资源管理命令-声明式

文章目录 一、 yaml和json介绍1、yuml语言介绍2、k8s支持的文件格式3、yaml和json的主要区别 二、声明式对象管理1、命令式对象配置2、声明式对象配置3、声明式对象管理命令介绍 三、编写资源配置清单1、 编写yaml文件2、 启动并查看资源3、创建service服务对外提供访问测

[转帖]k8s之PV、PVC、StorageClass详解

https://zhuanlan.zhihu.com/p/128552232 导读 上一篇写了共享存储的概述以及一个简单的案例演示。这一篇就写一下PV和PVC。 PV是对底层网络共享存储的抽象,将共享存储定义为一种“资源”,比如Node也是容器应用可以消费的资源。PV由管理员创建和配置,与共享存储的

[转帖]没 K8s 用不了 Chaos Mesh?试试 Chaosd

https://cn.pingcap.com/blog/cannot-use-chaosmesh-without-k8s-then-try-chaosd Chaosd 是什么? 相信大家对 Chaos Mesh 已经比较了解了:支持多种类型的混沌实验,有 Dashboard web 界面直接管理实验

[转帖]kubelet 原理解析四:probeManager

https://segmentfault.com/a/1190000022163835 概述 在Kubernetes 中,系统和应用程序的健康检查任务是由 kubelet 来完成的,本文主要讨论kubelet中 probemanager 相关的实现原理。 如果你对k8s的各种probe如何使用还不了

[转帖]k8spacket 和 Grafana 对 kubernetes 的 TCP 数据包流量可视化

https://devpress.csdn.net/k8s/62ff4fe47e66823466193b95.html 你知道你不看的时候你的k8s集群在做什么吗?谁与他建立 TCP 通信?他调用了谁,例如,来自第三方库? 使用k8spacket和Grafana,您可以可视化集群中的 TCP 流量。