28.4.3. 動的な永続ストレージでの既存の Ceph クラスターの使用
動的な永続ストレージに既存の Ceph クラスターを使用するには、以下を実行します。
client.admin 向けに base64 でエンコードされたキーを作成します。
ceph auth get client.admin
$ ceph auth get client.adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph シークレット定義例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow client.admin 用に Ceph シークレットを作成します。
oc create -f ceph-secret.yaml
$ oc create -f ceph-secret.yaml secret "ceph-secret" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットが作成されたことを確認します。
oc get secret ceph-secret
$ oc get secret ceph-secret NAME TYPE DATA AGE ceph-secret kubernetes.io/rbd 1 5dCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスを作成します。
oc create -f ceph-storageclass.yaml
$ oc create -f ceph-storageclass.yaml storageclass "dynamic" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph ストレージクラスの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Ceph が監視する IP アドレスのコンマ区切りの一覧。この値は必須です。
- 2
- Ceph クライアント ID。デフォルトは
adminです。 - 3
adminIdのシークレット名。この値は必須です。設定するシークレットにはkubernetes.io/rbdが含まれる必要があります。- 4
adminSecretの namespace。デフォルトはdefaultです。- 5
- Ceph RBD プール。デフォルトは
rbdですが、この値は推奨されません。 - 6
- Ceph RBD イメージのマッピングに使用される Ceph クライアント ID。デフォルトは
adminIdのシークレット名と同じです。 - 7
- Ceph RBD イメージをマッピングするための
userIdの Ceph シークレット名。PVC と同じ namespace に存在する必要があります。Ceph シークレットが新規プロジェクトのデフォルトとして設定されていない限り、このパラメーターの値を指定する必要があります。
ストレージクラスが作成されたことを確認します。
oc get storageclasses
$ oc get storageclasses NAME TYPE dynamic (default) kubernetes.io/rbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow PVC オブジェクト定義を作成します。
PVC オブジェクト定義例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC を作成します。
oc create -f ceph-pvc.yaml
$ oc create -f ceph-pvc.yaml persistentvolumeclaim "ceph-claim-dynamic" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow PVC が作成されていて、予想される PV にバインドされていることを確認します。
oc get pvc
$ oc get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES AGE ceph-claim Bound pvc-f548d663-3cac-11e7-9937-0024e8650c7a 2Gi RWO 1mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod オブジェクト定義を以下のように作成します。
Pod オブジェクトの定義例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod を作成します。
oc create -f ceph-pod1.yaml
$ oc create -f ceph-pod1.yaml pod "ceph-pod1" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod が作成されていることを確認します。
oc get pod
$ oc get pod NAME READY STATUS RESTARTS AGE ceph-pod1 1/1 Running 0 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
しばらくすると、Pod のステータスが Running に変わります。