はじめに
Rook-Cephのクラスターや各リソースを作成したのち、Cephの設定を変更する方法が公式ドキュメントで紹介されています。設定の変更方法・及び変更例が紹介されていたので、ここにまとめておきます。
Rook-Cephコンフィグ設定変更方法
そもそもRook-Cephの設定を変更する方法として、公式ドキュメントでは3通りの方法を紹介しています。
Toolbox + Ceph CLI
一つ目の方法は、toolbox
Podからceph
コマンドを実行するものです。これは公式ドキュメントで推奨されている方法であり、Quick-Start等のドキュメント内でも紹介されているポピュラーな方法です。
使い方はシンプルで、toolbox.yaml
を利用してtoolbox
Podをデプロイすれば、そのPodを経由して各種コマンドを実行できます。
apiVersion: apps/v1 kind: Deployment metadata: name: rook-ceph-tools namespace: rook-ceph labels: app: rook-ceph-tools spec: replicas: 1 selector: matchLabels: app: rook-ceph-tools template: metadata: labels: app: rook-ceph-tools spec: dnsPolicy: ClusterFirstWithHostNet containers: - name: rook-ceph-tools image: rook/ceph:v1.2.4 command: ["/tini"] args: ["-g", "--", "/usr/local/bin/toolbox.sh"] imagePullPolicy: IfNotPresent env: - name: ROOK_ADMIN_SECRET valueFrom: secretKeyRef: name: rook-ceph-mon key: admin-secret volumeMounts: - mountPath: /etc/ceph name: ceph-config - name: mon-endpoint-volume mountPath: /etc/rook volumes: - name: mon-endpoint-volume configMap: name: rook-ceph-mon-endpoints items: - key: data path: mon-endpoints - name: ceph-config emptyDir: {} tolerations: - key: "node.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 5
[root@vm0 ceph]# kubectl apply -f toolbox.yaml deployment.apps/rook-ceph-tools created [root@vm0 ceph]# [root@vm0 ceph]# kubectl get pods -n rook-ceph -l app=rook-ceph-tools NAME READY STATUS RESTARTS AGE rook-ceph-tools-9b7b66bbb-64hqj 1/1 Running 0 15s [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-64hqj -n rook-ceph -- ceph status cluster: id: efefd629-64b6-4b82-8fb9-95c610dd67af health: HEALTH_WARN Degraded data redundancy: 1 pg undersized services: mon: 3 daemons, quorum a,b,c (age 3h) mgr: a(active, since 3h) osd: 3 osds: 3 up (since 3h), 3 in (since 6h) data: pools: 1 pools, 128 pgs objects: 0 objects, 0 B usage: 3.1 GiB used, 294 GiB / 297 GiB avail pgs: 127 active+clean 1 active+undersized [root@vm0 ceph]#
※参考リンク:
Ceph Dashboard
2つ目の方法は、Ceph Dashboard経由で設定変更を行うものです。これはCephCluster
を作成した時点で利用できるCeph Dashboardにアクセスして利用します。
こちらも使い方はシンプルで、外部からアクセスするためのdashboard-external-https.yaml
をデプロイし、Kubernetesクラスター外からMGR Podにアクセスできるようにします。その後、Dashboardにアクセスするときに必要なパスワード情報をrook-ceph-dashboard-password
Secretから取得します(ユーザー名はadmin
)。
# Serviceの確認 [root@vm0 ceph]# kubectl get svc -n rook-ceph NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE csi-cephfsplugin-metrics ClusterIP 10.103.25.55 <none> 8080/TCP,8081/TCP 6h21m csi-rbdplugin-metrics ClusterIP 10.101.244.90 <none> 8080/TCP,8081/TCP 6h21m rook-ceph-mgr ClusterIP 10.104.76.71 <none> 9283/TCP 6h17m rook-ceph-mgr-dashboard ClusterIP 10.105.171.229 <none> 8443/TCP 6h18m rook-ceph-mon-a ClusterIP 10.109.65.39 <none> 6789/TCP,3300/TCP 6h18m rook-ceph-mon-b ClusterIP 10.96.217.189 <none> 6789/TCP,3300/TCP 6h18m rook-ceph-mon-c ClusterIP 10.111.148.158 <none> 6789/TCP,3300/TCP 6h18m # Dashboardへのアクセスに必要なServiceをデプロイ [root@vm0 ceph]# kubectl apply -f dashboard-external-https.yaml service/rook-ceph-mgr-dashboard-external-https created [root@vm0 ceph]# kubectl get svc -n rook-ceph NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE csi-cephfsplugin-metrics ClusterIP 10.103.25.55 <none> 8080/TCP,8081/TCP 6h27m csi-rbdplugin-metrics ClusterIP 10.101.244.90 <none> 8080/TCP,8081/TCP 6h27m rook-ceph-mgr ClusterIP 10.104.76.71 <none> 9283/TCP 6h23m rook-ceph-mgr-dashboard ClusterIP 10.105.171.229 <none> 8443/TCP 6h23m rook-ceph-mgr-dashboard-external-https NodePort 10.106.165.56 <none> 8443:31630/TCP 7s rook-ceph-mon-a ClusterIP 10.109.65.39 <none> 6789/TCP,3300/TCP 6h24m rook-ceph-mon-b ClusterIP 10.96.217.189 <none> 6789/TCP,3300/TCP 6h24m rook-ceph-mon-c ClusterIP 10.111.148.158 <none> 6789/TCP,3300/TCP 6h24m [root@vm0 ceph]# # Dashboardへのアクセス時に必要なパスワード情報の確認 [root@vm0 ceph]# kubectl get secret -n rook-ceph NAME TYPE DATA AGE default-token-8bfpk kubernetes.io/service-account-token 3 6h28m rook-ceph-admin-keyring kubernetes.io/rook 1 6h23m rook-ceph-cmd-reporter-token-wwlqd kubernetes.io/service-account-token 3 6h28m rook-ceph-config kubernetes.io/rook 2 6h23m rook-ceph-crash-collector-keyring kubernetes.io/rook 1 6h21m rook-ceph-dashboard-password kubernetes.io/rook 1 6h20m rook-ceph-mgr-a-keyring kubernetes.io/rook 1 6h20m rook-ceph-mgr-token-wszxk kubernetes.io/service-account-token 3 6h28m rook-ceph-mon kubernetes.io/rook 4 6h23m rook-ceph-mons-keyring kubernetes.io/rook 1 6h23m rook-ceph-osd-0-keyring kubernetes.io/rook 1 6h20m rook-ceph-osd-1-keyring kubernetes.io/rook 1 6h20m rook-ceph-osd-2-keyring kubernetes.io/rook 1 6h20m rook-ceph-osd-token-rh5bq kubernetes.io/service-account-token 3 6h28m rook-ceph-system-token-7bm8p kubernetes.io/service-account-token 3 6h28m rook-csi-cephfs-node kubernetes.io/rook 2 6h21m rook-csi-cephfs-plugin-sa-token-mc8m5 kubernetes.io/service-account-token 3 6h28m rook-csi-cephfs-provisioner kubernetes.io/rook 2 6h21m rook-csi-cephfs-provisioner-sa-token-twhbt kubernetes.io/service-account-token 3 6h28m rook-csi-rbd-node kubernetes.io/rook 2 6h21m rook-csi-rbd-plugin-sa-token-v9ps5 kubernetes.io/service-account-token 3 6h28m rook-csi-rbd-provisioner kubernetes.io/rook 2 6h21m rook-csi-rbd-provisioner-sa-token-69t7j kubernetes.io/service-account-token 3 6h28m [root@vm0 ceph]# kubectl get secret -n rook-ceph rook-ceph-dashboard-password -o yaml apiVersion: v1 data: password: WTdmUDJxU0RZMA== kind: Secret metadata: creationTimestamp: "2020-02-09T02:19:54Z" name: rook-ceph-dashboard-password namespace: rook-ceph ownerReferences: - apiVersion: ceph.rook.io/v1 blockOwnerDeletion: true kind: CephCluster name: rook-ceph uid: 8f363b40-0671-497e-8d82-3afd76b56ea7 resourceVersion: "4070" selfLink: /api/v1/namespaces/rook-ceph/secrets/rook-ceph-dashboard-password uid: f418571c-c6a9-4615-b4aa-aae28c2b897c type: kubernetes.io/rook [root@vm0 ceph]# kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo Y7fP2qSDY0 [root@vm0 ceph]#
※参考リンク:
Advanced configuration via ceph.conf override ConfigMap
3つ目の方法は、ConfigMap経由でceph.conf
の内容を変更するものです。これは、上述の2つの方法がとれないときに実施することが想定されており、最も推奨されていない方法です。推奨されない理由としては、設定内容によってはCeph CLIやDashboard経由では設定変更が難しく、将来的な設定変更やデバッグが難しくなる場合があるからです。
利用方法としては、CephCluster
をデプロイしたときに同時に作成されるrook-config-override
ConfigMapを編集することで利用します。
# ConfigMap確認 [root@vm0 ceph]# kubectl get cm -n rook-ceph NAME DATA AGE local-device-vm1 1 7m22s local-device-vm2 1 8m33s local-device-vm3 1 7m20s rook-ceph-csi-config 1 6m6s rook-ceph-mon-endpoints 4 4m26s rook-config-override 1 4m26s [root@vm0 ceph]# kubectl describe cm -n rook-ceph rook-config-override Name: rook-config-override Namespace: rook-ceph Labels: <none> Annotations: <none> Data ==== config: ---- Events: <none> [root@vm0 ceph]#
Rook-Cephコンフィグ設定変更例
Pool Configuration
Poolの設定変更をする際、Ceph CLIやDashboard経由でも実行できますが、Kubernetesを利用しているので、基本的にはyamlファイルでリソースを定義し、作成・変更・削除を行うのが良いかと思います。ただ、一部設定変更はそれでは実行できないため、以降ではそれに該当するものを紹介します。
PG数/PGP数の変更
PG(Placement Group)及びPGP(Placement Group for Placement)の数は、yamlファイル上で定義することはできません。Rook v1.2以降では、PG数はデフォルトで8に設定されていますが、デフォルト値を変更するにはConfigMap経由で設定をする必要があります。
# ConfigMapの編集 [root@vm0 ceph]# kubectl edit cm rook-config-override -n rook-ceph configmap/rook-config-override edited [root@vm0 ceph]# kubectl get cm -n rook-ceph rook-config-override -o yaml apiVersion: v1 data: config: | [global] osd pool default pg num = 128 ★ osd pool default pgp num = 128 ★ kind: ConfigMap metadata: creationTimestamp: "2020-02-09T02:17:43Z" name: rook-config-override namespace: rook-ceph ownerReferences: - apiVersion: ceph.rook.io/v1 blockOwnerDeletion: true kind: CephCluster name: rook-ceph uid: 8f363b40-0671-497e-8d82-3afd76b56ea7 resourceVersion: "47466" selfLink: /api/v1/namespaces/rook-ceph/configmaps/rook-config-override uid: b626c5c3-acdc-43bc-b09f-2e48f25b63c9 [root@vm0 ceph]#
上記のようにConfigMapを修正したのち、関連するPodを再起動し、Config内容を更新します。
# Podを削除(自動的に再起動する) [root@vm0 ceph]# kubectl delete pods -n rook-ceph -l app=rook-ceph-mgr pod "rook-ceph-mgr-a-54cb4b8f74-8g5z4" deleted [root@vm0 ceph]# kubectl delete pods -n rook-ceph -l app=rook-ceph-mon pod "rook-ceph-mon-a-f94b8546c-zpwzl" deleted pod "rook-ceph-mon-b-85d794d955-b4fpf" deleted pod "rook-ceph-mon-c-fcfb7755-ffj89" deleted [root@vm0 ceph]# kubectl delete pods -n rook-ceph -l app=rook-ceph-osd pod "rook-ceph-osd-0-654bcf85f-xfcfp" deleted pod "rook-ceph-osd-1-c94f89bc5-tlc6g" deleted pod "rook-ceph-osd-2-6dff9cfd6b-6cvnq" deleted [root@vm0 ceph]#
関連するPodを削除・再起動したのち、改めてCephBlockPool
リソースをデプロイすると、以下のようにデフォルト値が変更されたことがわかります。
[root@vm0 ceph]# kubectl apply -f pool.yaml cephblockpool.ceph.rook.io/replicapool created [root@vm0 ceph]# kubectl get cephblockpool.ceph.rook.io/replicapool -n rook-ceph NAME AGE replicapool 13s [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph -s cluster: id: efefd629-64b6-4b82-8fb9-95c610dd67af health: HEALTH_OK services: mon: 3 daemons, quorum a,b,c (age 50s) mgr: a(active, since 92s) osd: 3 osds: 3 up (since 38s), 3 in (since 2h) data: pools: 1 pools, 128 pgs objects: 0 objects, 0 B usage: 3.0 GiB used, 294 GiB / 297 GiB avail pgs: 128 active+clean [root@vm0 ceph]# [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd pool ls detail pool 12 'replicapool' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 92 flags hashpspool stripe_width 0 application rbd [root@vm0 ceph]#
※参考リンク:
Ceph Doc - Placement Groups #A Preselection of PG_NUM
また、デフォルト値でなく、Poolごとに値を変更する場合は、Ceph CLI・Dashboard経由で変更します。
[root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd pool ls replicapool [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd pool set replicapool pg_num 64 set pool 12 pg_num to 64 [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd pool ls detail pool 12 'replicapool' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 128 pgp_num 122 pg_num_target 64 pgp_num_target 64 pg_num_pending 127 autoscale_mode warn last_change 96 lfor 0/96/96 flags hashpspool stripe_width 0 application rbd [root@vm0 ceph]#
さらに、MGR moduleのひとつであるpg_autoscaler
を利用すると、PG・PGP数を自動的に管理することができます。デフォルトではRook-Cephは有効化されていないので、CephCluster
リソース上、あるいはCeph CLI・Dashboard経由で有効化します。
spec: mgr: modules: - name: pg_autoscaler enabled: true
# pg_autoscale有効化 [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-64hqj -n rook-ceph -- ceph mgr module enable pg_autoscaler [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-64hqj -n rook-ceph -- ceph osd pool autoscale-status POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE replicapool 0 3.0 297.0G 0.0000 1.0 128 4 warn # Poolごとに個別に有効化 [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-64hqj -n rook-ceph -- ceph osd pool set replicapool pg_autoscale_mode on set pool 13 pg_autoscale_mode to on [root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-64hqj -n rook-ceph -- ceph osd pool autoscale-status POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE replicapool 0 3.0 297.0G 0.0000 1.0 128 4 on [root@vm0 ceph]#
※参考リンク:
Ceph Doc - New in Nautilus: PG merging and autotuning
OSD CRUSH setting
CephのCRUSH Mapを設定することができるのは、CephCluster
作成時にspec.placement
の設定を行うことで、CRUSH MapにPodAffinity
等の設定を反映することができますが、それ以外の設定はデフォルト値が反映されます。その他の値を変更するには、リソース作成後にCeph CLI等から操作をする必要があります。
現状のCRUSH Mapについて確認するには、ceph osd tree
コマンド等で確認します。
[root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.99338 root default -7 0.09669 host vm1 2 hdd 0.09669 osd.2 up 1.00000 1.00000 -3 0.79999 host vm2 0 hdd 0.79999 osd.0 up 1.00000 1.00000 -5 0.09669 host vm3 1 hdd 0.09669 osd.1 up 1.00000 1.00000
OSD Weight
OSD Weightの値は、各OSDにデータが分散すべき比率を示しています。デフォルトではすべてのOSDが同じ比率で設定されますが、一部ユースケースではそれが適さない場合もあります。
- あるOSDやノードが低スペックであるため、そのOSD・ノードのWeightを下げることで、クラスター全体のボトルネックとなることを防ぐ
- Rook v0.3.1以前のバージョンでbluestoreを利用する場合、適切なWeightが設定されていない場合がある
これらに該当する場合は、以下のようにceph osd crush reweight
コマンドを実行することで、特定のOSDの設定を変更することができます。
[root@vm0 ceph]# kubectl exec -it rook-ceph-tools-9b7b66bbb-8n27c -n rook-ceph -- ceph osd crush reweight osd.0 .800 reweighted item id 0 name 'osd.0' to 0.8 in crush map [root@vm0 ceph]#
OSD primary affinity
Poolサイズを1以上にした場合、データはノード・OSD間で複製されます。複製する場合、まずPrimary OSDを選択し、Primary OSDからSecondary OSDに複製データを送ります。どのOSDをPrimary OSDにするかについてはPrimary Affinityの設定によって決まり、この値もceph osd primary-affinity
コマンドによってOSDごとに設定することができます。
[root@vm0 ceph]# kubectl exec -it -n rook-ceph rook-ceph-tools-9b7b66bbb-64hqj -- ceph osd primary-affinity osd.0 0 set osd.0 primary-affinity to 0 (802) [root@vm0 ceph]# kubectl exec -it -n rook-ceph rook-ceph-tools-9b7b66bbb-64hqj -- ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.99338 root default -7 0.09669 host vm1 2 hdd 0.09669 osd.2 up 1.00000 1.00000 -3 0.79999 host vm2 0 hdd 0.79999 osd.0 up 1.00000 0 -5 0.09669 host vm3 1 hdd 0.09669 osd.1 up 1.00000 1.00000 [root@vm0 ceph]#
OSD Dedicated Network
OSDの利用するネットワークは変更することができます。例えばCephCluster
の定義の中でspec.network.hostNetwork
をtrue
にすることで、コンテナの利用するネットワーク(CNI)でなく、ホストのネットワークを利用することができます。
また、rook-config-override
ConfigMapにネットワークの設定を追加することもできます。
apiVersion: v1 data: config: | [global] public network = 10.0.7.0/24 cluster network = 10.0.10.0/24 public addr = "" cluster addr = ""
※参考リンク:
Rook Doc - Ceph Cluster CRD# Cluster Settings
Ceph Doc - Network Configuration Reference
Phantom OSD Removal
ディスク情報で表示されないOSD、いわゆる「Phantom OSD」を除く場合も、Ceph CLI等から削除を行います。
ceph osd tree
コマンドを実行した際、以下のnode2.example.com
のようにディスク情報が表示されないようなものがPhantom OSDにあたります。
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 57.38062 root default -13 7.17258 host node1.example.com 2 hdd 3.61859 osd.2 up 1.00000 1.00000 -7 0 host node2.example.com down 0 1.00000
この場合、node2.example.com
を削除するため、以下のようにコマンドを実行します。
# クラスターから指定したOSDを取り出す ceph osd out <ID> # CRUSH MapからOSDを除く ceph osd crush remove osd.<ID> # ユーザーを削除 ceph auth del osd.<ID> # OSDを削除 ceph osd rm <ID>
※参考リンク:
Ceph Doc - Adding/Removing OSDs
Change Failure Domain
CephBlockPool
などのリソースではspec.failureDomain
を設定することができます。設定した値(host
osd
rack
など)に応じて、複製したデータの保存場所を分散させることができます。
Failure Domainの値を後から変更するにはCeph CLIから設定する必要があります。CephBlockPool
のyamlファイルを編集することで、デプロイ済みのspec.failureDomain
の値を変更することも可能でしたが、それが反映されることが現状ではないように見えます。また公式ドキュメントでも「現状ではyamlファイルを直接編集することで変更することができない」と記載があります。
# 現状で紐づいているCRUSH Ruleを確認 $ ceph osd pool get replicapool crush_rule crush_rule: replicapool # Failure Domain: hostのCRUSH Ruleを作成 $ ceph osd crush rule create-replicated replicapool_host_rule default host # 作成したCRUSH Ruleを紐づける $ ceph osd pool set replicapool crush_rule replicapool_host_rule # 確認 $ ceph osd pool get replicapool crush_rule crush_rule: replicapool_host_rule
※参考リンク:
その他
Separate Storage Group
Rook-Ceph利用時、デフォルトでは、利用するクラスター内のすべてのストレージがCRUSH Map内の一つのReplication Rule内で利用しようとします。これを変更し、複数のルールに分けてストレージを利用する場合、手動で変更することもできますが、今はCephBlockPool
のdeviceClass
を変更することで対応するのが推奨されています。
公式ドキュメントにも記載はありますが、こちらの記事に詳細に記載されているので、おススメです。
Ceph User
Ceph Userを作成し、それを利用する手順も紹介されています。作成はCeph CLIから実行し、またそれを利用するためにSecretリソースの作成も必要になります。
# Ceph User作成 # Ceph Secret Keyが出力される sh-4.2# ceph auth get-or-create-key client.user1 mon 'allow r' osd 'allow rw tag cephfs pool=replicapool' mds 'allow r, allow rw path=/bar' AQCgbz9ekFANDBAApI8bVCbnKeKiRjlaWfWpdw== # Ceph User確認 sh-4.2# ceph auth ls installed auth entries: osd.0 key: AQBebD9eNVWlMxAA0h6HA0GpqC5+NRZr8P8Ykg== caps: [mgr] allow profile osd caps: [mon] allow profile osd caps: [osd] allow * osd.1 key: AQBfbD9eamlZBBAAG6c5lbfywtTqNHT9TCIDPQ== caps: [mgr] allow profile osd caps: [mon] allow profile osd caps: [osd] allow * osd.2 key: AQBgbD9el2UTEhAAUV0kMjvLsHm3XG47RuYqmA== caps: [mgr] allow profile osd caps: [mon] allow profile osd caps: [osd] allow * client.admin key: AQDHaz9etj/gJRAAagN93rl98Gv8IgldiRKtFQ== caps: [mds] allow * caps: [mgr] allow * caps: [mon] allow * caps: [osd] allow * client.bootstrap-mds key: AQAfbD9eqZNBIxAAFh53Z39RvxGPiG9KlhQRtg== caps: [mon] allow profile bootstrap-mds client.bootstrap-mgr key: AQAfbD9eraNBIxAASHXrOrDbzM/KSWmXvtnvlA== caps: [mon] allow profile bootstrap-mgr client.bootstrap-osd key: AQAfbD9eTbNBIxAArf4kDjk4pP0OEa3Vz1LwTA== caps: [mon] allow profile bootstrap-osd client.bootstrap-rbd key: AQAfbD9e7cJBIxAAo8PwWX102isDsBI/HaO7YA== caps: [mon] allow profile bootstrap-rbd client.bootstrap-rbd-mirror key: AQAfbD9exdFBIxAAmNsRuhBqocC4oBJU5OMrfw== caps: [mon] allow profile bootstrap-rbd-mirror client.bootstrap-rgw key: AQAfbD9eZeFBIxAAIt+mkfuYWxQu9/rBYsLRdQ== caps: [mon] allow profile bootstrap-rgw client.crash key: AQBBbD9e9Qr8LxAAIeZcyhwelaYIt5qAMoH3hQ== caps: [mgr] allow profile crash caps: [mon] allow profile crash client.csi-cephfs-node key: AQBBbD9e63BmGBAAAr75LA1GVVBpcbaQM++BlQ== caps: [mds] allow rw caps: [mgr] allow rw caps: [mon] allow r caps: [osd] allow rw tag cephfs *=* client.csi-cephfs-provisioner key: AQBBbD9ewzaBAhAAAieiJL0h+98A74cknmcyTA== caps: [mgr] allow rw caps: [mon] allow r caps: [osd] allow rw tag cephfs metadata=* client.csi-rbd-node key: AQBAbD9eG75fKBAANT2j00ZDG15sSwjcxczvMw== caps: [mon] profile rbd caps: [osd] profile rbd client.csi-rbd-provisioner key: AQBAbD9exQdrDhAARexI3bzxRyZSVCMAZWXx6w== caps: [mgr] allow rw caps: [mon] profile rbd caps: [osd] profile rbd client.user1 ★ key: AQCgbz9ekFANDBAApI8bVCbnKeKiRjlaWfWpdw== caps: [mds] allow r, allow rw path=/bar caps: [mon] allow r caps: [osd] allow rw tag cephfs pool=replicapool mgr.a key: AQBDbD9eN1pGDBAA6F9pIm4kFcKGh+LgX5jC4Q== caps: [mds] allow * caps: [mon] allow * caps: [osd] allow * sh-4.2# # Secret作成 [root@vm0 ceph]# kubectl create secret generic ceph-user1-secret --from-literal=key=AQCgbz9ekFANDBAApI8bVCbnKeKiRjlaWfWpdw== secret/ceph-user1-secret created # Secret確認 [root@vm0 ceph]# kubectl get secret NAME TYPE DATA AGE ceph-user1-secret Opaque 1 21s default-token-84g5x kubernetes.io/service-account-token 3 30m [root@vm0 ceph]#