kubernetes 对 rook 进行扩容

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/signmem/article/details/88538745

说明

对 ceph cluster 进行扩容操作

ceph/rook 集群配置查询

参考之前创建 rook 集群 yaml 中 kind 字段

kind: CephCluster

可以通过下面命令查询集群配置信息

[root@ns-yun-020065 ceph]# kubectl -n rook-ceph get CephCluster
NAME        DATADIRHOSTPATH   MONCOUNT   AGE   STATE
rook-ceph   /var/lib/rook     3          16h   Created

查询方法

[root@ns-yun-020065 ceph]# kubectl -n rook-ceph describe CephCluster

Name:         rook-ceph
Namespace:    rook-ceph
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"ceph.rook.io/v1","kind":"CephCluster","metadata":{"annotations":{},"name":"rook-ceph","namespace":"rook-ceph"},"spec":{"cep...
API Version:  ceph.rook.io/v1
Kind:         CephCluster
Metadata:
  Creation Timestamp:  2019-02-28T08:33:05Z
  Finalizers:
    cephcluster.ceph.rook.io
  Generation:        8
  Resource Version:  3643762
  Self Link:         /apis/ceph.rook.io/v1/namespaces/rook-ceph/cephclusters/rook-ceph
  UID:               77d06b7b-3b33-11e9-a21b-ec388f792726
Spec:
  Ceph Version:
    Image:  ceph/ceph:v13.2.2-20181023
  Dashboard:
    Enabled:           true
  Data Dir Host Path:  /var/lib/rook
  Mon:
    Allow Multiple Per Node:  true
    Count:                    3
  Network:
    Host Network:  false
  Rbd Mirroring:
    Workers:  0
  Storage:
    Config:
      Database Size MB:  2048
      Journal Size MB:   2048
      Osds Per Device:   1
      Store Type:        bluestore
    Nodes:
      Config:  <nil>
      Devices:
        Full Path:
        Config:     <nil>
        Name:       sdb
        Full Path:
        Config:     <nil>
        Name:       sdc
        Full Path:
        Config:     <nil>
        Name:       sdd
        Full Path:
        Config:     <nil>
        Name:       sde
        Full Path:
        Config:     <nil>
        Name:       sdf
      Location:     rack=rack1
      Name:         ns-storage-020100.vclound.com
      Resources:
        Limits:
          Cpu:     1
          Memory:  8Gi
        Requests:
          Cpu:     1
          Memory:  8Gi
      Config:      <nil>
      Devices:
        Full Path:
        Config:     <nil>
        Name:       sdb
        Full Path:
        Config:     <nil>
        Name:       sdc
        Full Path:
        Config:     <nil>
        Name:       sde
        Full Path:
        Config:     <nil>
        Name:       sdf
        Full Path:
        Config:     <nil>
        Name:       sdd
      Location:     rack=rack2
      Name:         ns-storage-020101.vclound.com
      Resources:
        Limits:
          Cpu:     1
          Memory:  8Gi
        Requests:
          Cpu:     1
          Memory:  8Gi
      Config:      <nil>
      Devices:
        Full Path:
        Config:     <nil>
        Name:       sdb
        Full Path:
        Config:     <nil>
        Name:       sdc
        Full Path:
        Config:     <nil>
        Name:       sdd
        Full Path:
        Config:     <nil>
        Name:       sde
        Full Path:
        Config:     <nil>
        Name:       sdf
      Location:     rack=rack3
      Name:         ns-storage-020102.vclound.com
      Resources:
        Limits:
          Cpu:     1
          Memory:  8Gi
        Requests:
          Cpu:     1
          Memory:  8Gi
      Config:      <nil>
      Devices:
        Full Path:
        Config:     <nil>
        Name:       sdb
        Full Path:
        Config:     <nil>
        Name:       sdc
        Full Path:
        Config:     <nil>
        Name:       sdd
        Full Path:
        Config:     <nil>
        Name:       sde
        Full Path:
        Config:     <nil>
        Name:       sdf
      Location:     rack=rack3
      Name:         ns-storage-020104.vclound.com
      Resources:
        Limits:
          Cpu:     1
          Memory:  8Gi
        Requests:
          Cpu:        1
          Memory:     8Gi
    Use All Devices:  false
Status:
  State:  Created
Events:   <none>

ceph/rook 扩容

存储需要进行初始化
存储需要假如 kubernetes 成为集群中一个节点
当存储加入后, 该节点会自动运行 rook-discover rook-ceph-agent 两个 pod
对需要加入 osd 的磁盘进行初始化

独立 r0 设备
dd if=/dev/zero of=/dev/xxx bs=1M count=10
parted -s /dev/xxxx mklabel gpt

编辑 cephcluster 配置
添加类似下面配置

[root@ns-yun-020065 ceph]# kubectl -n rook-ceph edit CephCluster
    - config: null
      devices:
      - FullPath: ""
        config: null
        name: sdb
      - FullPath: ""
        config: null
        name: sdc
      - FullPath: ""
        config: null
        name: sdd
      - FullPath: ""
        config: null
        name: sde
      - FullPath: ""
        config: null
        name: sdf
      location: rack=rack3       <- 自行定义 crush map
      name: ns-storage-020104.vclound.com
      resources:
        limits:
          cpu: "1"
          memory: 8Gi
        requests:
          cpu: "1"
          memory: 8Gi

operator 会调用 rook-ceph-osd-prepare 对该节点执行磁盘初始化
该存储会自动创建对应 rook-ceph-osd pod
自动完成加入 rook-ceph 集群
如果需要,执行修改 crush map
自动进行数据 rebalance

猜你喜欢

转载自blog.csdn.net/signmem/article/details/88538745