Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rook-CephでExternal Clusterを利用する

FY0323
March 27, 2020

Rook-CephでExternal Clusterを利用する

Japan Rook Meetup #2 発表資料

FY0323

March 27, 2020
Tweet

More Decks by FY0323

Other Decks in Technology

Transcript

  1. 本機能が登場した背景 • External ClusterはRook ver 1.1から利用できる - もともとRook-Cephは、アプリケーションの動作する Kubernetesクラスター内のストレージリ ソースを利用するよう設計されている

    • 一部ユースケースに対応するために開発された - 既存のCephクラスターをKubernetesから利用する場合 - 1つのCephクラスターのリソースを複数のKubernetesから利用する場合 - Kubernetesクラスターとストレージリソースとを分離したい場合
  2. Rook-Cephクラスター構築(通常時) 通常は3つのyamlファイルをデプロイすればCephClusterが構築できる 1. kubectl apply -f common.yaml 2. kubectl apply

    -f operator.yaml 3. kubectl apply -f common-external.yaml 4. ConfigMap/Secretリソースの作成 - Namespace / FSID / admin secret / MON endpoint - ./import-external-cluster.sh 5. kubectl apply -f cluster.yaml 3.
  3. クラスター構築後の状態(通常時) Operator Discover csi-plugin / provisioner Local Discover csi-plugin /

    provisioner Discover csi-plugin / provisioner MON MON MON OSD OSD OSD CephCluster
  4. Rook-Cephクラスター構築(External Clusterを利用) External Cluster利用時は、外部Cephクラスターの情報を渡す必要がある 1. kubectl apply -f common.yaml 2.

    kubectl apply -f operator.yaml 3. kubectl apply -f common-external.yaml 4. ConfigMap/Secretリソースの作成 - export Namespace / FSID / admin keyring / MON endpoint - bash import-external-cluster.sh 5. kubectl apply -f cluster-external.yaml
  5. クラスター構築後の状態 OSD MON External Local Connected Operator Discover csi-plugin /

    provisioner Discover csi-plugin / provisioner Discover csi-plugin / provisioner MON MON MON OSD OSD OSD CephCluster
  6. External Cluster利用方法(RBD) • ストレージの利用方法は、Local Cluster利用時と同様 1. kubectl apply -f cephblockpool.yaml

    2. kubectl apply -f storageclass.yaml 3. kubectl apply -f pvc.yaml 4. kubectl apply -f pod.yaml • External Cluster側は自動的にPoolが作成される - Rook-Ceph以外の方法(rbd-provisionerなど)では、External Cluster側でPoolをあらかじ め用意する必要がある - ストレージリソースを用意する際、 Local Cluster側の操作のみで完結する
  7. External Cluster利用時の注意事項 • いくつかの前提条件を満たす必要がある - External Cluster側にMON Endpointが存在する - Admin

    keyring情報を取得済みである - External Cluster側のリソースに対するネットワーク疎通が可能である - External Cluster側のCephバージョンが条件を満たす - Ceph Nautilusがminimum support(v1.2の場合) • v1.2.4以前の場合、“rook-ceph-csi-config”というConfigMapを修正する必 要がある - clusterID / MON endpointの情報を含む - v1.2.4以前では、クラスター構築後に手動で追加しなければならない( PVC / Pod等の構築 が失敗する)
  8. 参考リンク • Rook Doc - Ceph Cluster CRD #External Cluster

    - https://rook.io/docs/rook/v1.2/ceph-cluster-crd.html#external-cluster • GitHub - Rook and External Ceph Clusters - https://github.com/rook/rook/blob/master/design/ceph/ceph-external-cluster.md • GitHub Issues - External CLusters are not populated to configmap rook-ceph-csi-config # 4816 - https://github.com/rook/rook/issues/4816