26.6. raw ブロックデバイスの設定


ローカルのボリュームプロビジョナーを使用すると、raw ブロックデバイスを静的にプロビジョニングできます。この機能はデフォルトでは無効になっており、追加の設定が必要です。

Raw ブロックデバイスを設定するには以下を行います。

  1. 全マスターで、BlockVolume 機能ゲートを有効化します。全マスターでマスター設定ファイルを編集または作成 (デフォルトは /etc/origin/master/master-config.yaml) して、apiServerArguments および controllerArguments セクションに、BlockVolume=true を追加します。

    apiServerArguments:
       feature-gates:
       - BlockVolume=true
    ...
    
     controllerArguments:
       feature-gates:
       - BlockVolume=true
    ...
  2. ノード設定 ConfigMap を編集して、全ノードで機能ゲートを有効化します。

    $ oc edit configmap node-config-compute --namespace openshift-node
    $ oc edit configmap node-config-master --namespace openshift-node
    $ oc edit configmap node-config-infra --namespace openshift-node
  3. 以下のように、すべての ConfigMaps に、kubeletArguments の機能ゲートアレイに BlockVolume=true が含まれていることを確認します。

    node configmap feature-gates setting

    kubeletArguments:
       feature-gates:
       - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true,BlockVolume=true

  4. マスターを再起動します。ノードは、設定の変更後に自動的に再起動されます。これは数分かかる可能性があります。

26.6.1. raw ブロックデバイスの準備

プロビジョナーを起動する前に、Pod が使用できるすべての raw ブロックデバイスを /mnt/local-storage/<storage class> ディレクトリー構造にリンクします。たとえば、/dev/dm-36 のディレクトリーを利用できるようにします。

  1. /mnt/local-storage に、デバイスのストレージクラスのディレクトリーを作成します。

    $ mkdir -p /mnt/local-storage/block-devices
  2. このデバイスを参照するシンボリックリンクを作成します。

    $ ln -s /dev/dm-36 dm-uuid-LVM-1234
    注記

    名前の競合が発生するのを回避するには、/dev/disk/by-uuid または /dev/disk/by-id ディレクトリーからのリンクと、シンボリックリンクに同じ名前を使用します。

  3. プロビジョナー設定用の ConfigMap を作成するか、更新します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: local-volume-config
    data:
        storageClassMap: |
            block-devices: 1
                hostDir:  /mnt/local-storage/block-devices 2
                mountDir: /mnt/local-storage/block-devices 3
    1
    ストレージクラス名
    2
    ホスト上のディレクトリーへのパス。/mnt/local-storage のサブディレクトリーでなければなりません。
    3
    プロビジョナー Pod のディレクトリーへのパス。ホストが使用するディレクトリー構造を使用する場合 (推奨) には、mountDir パラメーターを省略します。
  4. デバイスと、/mnt/local-storage/SELinux ラベルを変更します。

    $ chcon -R unconfined_u:object_r:svirt_sandbox_file_t:s0 /mnt/local-storage/
    $ chcon unconfined_u:object_r:svirt_sandbox_file_t:s0 /dev/dm-36
  5. Raw ブロックデバイスのストレージクラスを作成します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
     name: block-devices
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: WaitForFirstConsumer

プロビジョナーは、このブロックデバイス /dev/dm-36 を使用する準備ができ、PV としてプロビジョニングします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.