# K8S对接Ceph的方式

作为一名经验丰富的开发者,我将会指导刚入行的小白如何实现"K8S对接Ceph的方式"。首先,我们需要了解整个过程的流程,然后逐步进行操作并给出代码示例。

## 流程步骤

| 步骤 | 操作 |
| - | - |
| 1 | 部署Ceph集群 |
| 2 | 创建Ceph存储池 |
| 3 | 安装Rook Operator |
| 4 | 部署Ceph集群在Kubernetes中 |
| 5 | 创建StorageClass并PVC |

## 操作步骤及代码示例

### 步骤一:部署Ceph集群

在一台服务器上部署Ceph集群,确保Ceph集群正常运行。

### 步骤二:创建Ceph存储池

```bash
# 创建一个名为rook-storage的存储池
ceph osd pool create rook-storage 128
```

### 步骤三:安装Rook Operator

```bash
# 添加Helm仓库
helm repo add rook-release https://charts.rook.io/release

# 安装Rook Operator
helm install --namespace rook-ceph rook-ceph rook-release/rook-ceph
```

### 步骤四:部署Ceph集群在Kubernetes中

```yaml
# 创建Rook集群资源
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
name: rook-ceph
spec:
cephVersion:
image: ceph/ceph:v16.2.5
dataDirHostPath: /var/lib/rook-ceph
mon:
count: 3
dashboard:
enabled: true
```

### 步骤五:创建StorageClass并PVC

```yaml
# 创建StorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rook-ceph-block
provisioner: ceph.rook.io/block
parameters:
blockPool: replicapool
clusterNamespace: rook-ceph
fstype: xfs

# 创建PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: rook-ceph-block
resources:
requests:
storage: 1Gi
```

通过以上步骤,我们成功地将Kubernetes和Ceph进行了对接,使Kubernetes能够使用Ceph提供的存储服务。希望这篇文章可以帮助你快速掌握如何实现"K8S对接Ceph的方式"。