検索

28.4.3. 動的な永続ストレージでの既存の Ceph クラスターの使用

download PDF

動的な永続ストレージに既存の Ceph クラスターを使用するには、以下を実行します。

  1. client.admin 向けに base64 でエンコードされたキーを作成します。

    $ ceph auth get client.admin

    Ceph シークレット定義例

    apiVersion: v1
    kind: Secret
    metadata:
      name: ceph-secret
      namespace: kube-system
    data:
      key: QVFBOFF2SlZheUJQRVJBQWgvS2cwT1laQUhPQno3akZwekxxdGc9PQ== 1
    type: kubernetes.io/rbd 2

    1
    この base64 キーは、Ceph の MON ノードの 1 つで ceph auth get-key client.admin | base64 コマンドを使用して生成されたものであり、出力をコピーし、これをシークレットキーの値として貼り付けています。
    2
    この値は、Ceph RBD を動的プロビジョニングで機能させるために必要です。
  2. client.admin 用に Ceph シークレットを作成します。

    $ oc create -f ceph-secret.yaml
    secret "ceph-secret" created
  3. シークレットが作成されたことを確認します。

    $ oc get secret ceph-secret
    NAME          TYPE                DATA      AGE
    ceph-secret   kubernetes.io/rbd   1         5d
  4. ストレージクラスを作成します。

    $ oc create -f ceph-storageclass.yaml
    storageclass "dynamic" created

    Ceph ストレージクラスの例

    apiVersion: storage.k8s.io/v1beta1
    kind: StorageClass
    metadata:
      name: dynamic
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: kubernetes.io/rbd
    parameters:
      monitors: 192.168.1.11:6789,192.168.1.12:6789,192.168.1.13:6789 1
      adminId: admin 2
      adminSecretName: ceph-secret 3
      adminSecretNamespace: kube-system 4
      pool: kube  5
      userId: kube  6
      userSecretName: ceph-user-secret 7

    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 シークレットが新規プロジェクトのデフォルトとして設定されていない限り、このパラメーターの値を指定する必要があります。
  5. ストレージクラスが作成されたことを確認します。

    $ oc get storageclasses
    NAME                TYPE
    dynamic (default)   kubernetes.io/rbd
  6. PVC オブジェクト定義を作成します。

    PVC オブジェクト定義例

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: ceph-claim-dynamic
    spec:
      accessModes:  1
        - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi 2

    1
    accessModes はアクセス権としての効果はなく、代わりに PV と PVC を照合するラベルとして機能します。
    2
    この要求は 2Gi 以上の容量を提供する PV を探します。
  7. PVC を作成します。

    $ oc create -f ceph-pvc.yaml
    persistentvolumeclaim "ceph-claim-dynamic" created
  8. PVC が作成されていて、予想される PV にバインドされていることを確認します。

    $ oc get pvc
    NAME        STATUS  VOLUME                                   CAPACITY ACCESSMODES  AGE
    ceph-claim  Bound   pvc-f548d663-3cac-11e7-9937-0024e8650c7a 2Gi      RWO          1m
  9. Pod オブジェクト定義を以下のように作成します。

    Pod オブジェクトの定義例

    apiVersion: v1
    kind: Pod
    metadata:
      name: ceph-pod1 1
    spec:
      containers:
      - name: ceph-busybox
        image: busybox 2
        command: ["sleep", "60000"]
        volumeMounts:
        - name: ceph-vol1 3
          mountPath: /usr/share/busybox 4
          readOnly: false
      volumes:
      - name: ceph-vol1
        persistentVolumeClaim:
          claimName: ceph-claim-dynamic 5

    1
    oc get pod によって表示されるこの Pod の名前。
    2
    この Pod が実行するイメージ。この例では、busyboxsleep に設定されています。
    3
    ボリュームの名前。この名前は containers セクションと volumes セクションの両方で同じにする必要があります。
    4
    コンテナーでのマウントパス。
    5
    Ceph RBD クラスターにバインドされる PVC。
  10. Pod を作成します。

    $ oc create -f ceph-pod1.yaml
    pod "ceph-pod1" created
  11. Pod が作成されていることを確認します。

    $ oc get pod
    NAME        READY     STATUS   RESTARTS   AGE
    ceph-pod1   1/1       Running  0          2m

しばらくすると、Pod のステータスが Running に変わります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.