HOME

Rook集群配置

简介

Rook是一个开源工具,用于在Kubernetes集群中部署和管理存储解决方案。通过使用Rook,用户可以轻松地创建和管理Ceph分布式存储系统,并将其集成到Kubernetes应用中。

安装Rook

首先需要确保你的Kubernetes集群已经准备好并且正在运行。接下来,你需要安装Rook。这可以通过helm命令来完成:

# 添加Rook仓库
helm repo add rook https://rook.github.io/charts

# 更新仓库信息
helm repo update

# 安装Rook
helm install myrook -n rook-system rook/ceph \
  --set cephCluster.name=myrook \
  --set monCount=3 \
  --set osdStorageClassName=nfs \
  --set monitorSecretKeyFile=/etc/kubernetes/secrets/rook-key \
  --namespace rook-system

配置Rook

安装完成后,需要配置Rook以便更好地适应你的环境。以下是一些常用的配置项:

验证Rook安装

安装完成后,可以通过以下命令检查Rook组件是否正常运行:

# 检查Rook状态
kubectl get pods -n rook-system

# 检查Ceph集群状态
kubectl get cephclusters -n rook-ceph

使用Rook创建存储池

在安装和配置完成后,可以通过以下步骤创建一个Ceph存储池:

# 创建一个新的Ceph块设备存储池
kubectl apply -f https://raw.githubusercontent.com/rook/rook/main/deploy/examples/crds/storage.crd.yaml
kubectl create -f https://raw.githubusercontent.com/rook/rook/main/deploy/examples/ceph-cluster-csi-secret.yaml

# 配置Rook CSI插件
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-block-device
provisioner: rook.io/block
parameters:
  clusterName: ceph-cluster
EOF

# 创建PersistentVolumeClaim(PVC)
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: example-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
##   storageClassName: ceph-block-device
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: example-ss
spec:
  serviceName: "example-svc"
  replicas: 3
  selector:
    matchLabels:
      app: example-app
  template:
    metadata:
      labels:
        app: example-app
    spec:
      containers:
      - name: example-container
        image: nginx
        volumeMounts:
        - mountPath: /data
          name: storage
  updateStrategy:
    type: RollingUpdate
  volumes:
  - name: storage
    persistentVolumeClaim:
      claimName: example-pvc
EOF

结语

通过上述步骤,你已经成功地在Kubernetes集群中安装并配置了Rook。接下来你可以探索更多高级功能和自定义选项来进一步优化你的存储解决方案。