Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ワーカーノードを準備します

共同作成者 netapp-aruldeepa juliantap

Kubernetesクラスタ内のすべてのワーカーノードが、ポッド用にプロビジョニングしたボリュームをマウントできる必要があります。ワーカーノードを準備するには、ドライバの選択に基づいて、NFS、iSCSI、NVMe/TCP、またはFCの各ツールをインストールする必要があります。

適切なツールを選択する

ドライバを組み合わせて使用している場合は、ドライバに必要なすべてのツールをインストールする必要があります。最近のバージョンのRed Hat Enterprise Linux CoreOS(RHCOS)では、デフォルトでツールがインストールされています。

NFSツール

"NFSツールのインストール"使用している場合: ontap-nasontap-nas-economyontap-nas-flexgroup 、 または azure-netapp-files

iSCSIツール

"iSCSIツールをインストール" を使用している場合: ontap-sanontap-san-economysolidfire-san

NVMeツール

"NVMeツールをインストールする" を使用している場合 ontap-san Non-Volatile Memory Express(NVMe)over TCP(NVMe/TCP)プロトコルの場合。

メモ NetAppでは、NVMe/TCPにONTAP 9.12以降を推奨しています。
SCSI over FCツール

についてFCおよびFC-NVMe SANホストの設定の詳細、を参照してください"FCおよびFC-NVMe SANホストの構成方法"は。

"FCツールのインストール"をsanType(SCSI over FC)で fcp`使用している場合 `ontap-san

考慮事項:* SCSI over FCはOpenShiftおよびKubeVirt環境でサポートされています。* SCSI over FCはDockerではサポートされていません。* iSCSIの自己回復機能は、SCSI over FCには適用されません。

SMBツール

"SMBボリュームをプロビジョニングする準備をします" 使用している場合: ontap-nas SMB ボリュームをプロビジョニングします。

ノードサービスの検出

Tridentは、ノードでiSCSIサービスまたはNFSサービスを実行できるかどうかを自動的に検出しようとします。

メモ ノードサービス検出で検出されたサービスが特定されますが、サービスが適切に設定されていることは保証されませ逆に、検出されたサービスがない場合も、ボリュームのマウントが失敗する保証はありません。
イベントを確認します

Tridentは、検出されたサービスを識別するためのイベントをノードに対して作成します。次のイベントを確認するには、を実行します。

kubectl get event -A --field-selector involvedObject.name=<Kubernetes node name>
検出されたサービスを確認

Tridentは、TridentノードCR上の各ノードで有効になっているサービスを識別します。検出されたサービスを表示するには、を実行します。

tridentctl get node -o wide -n <Trident namespace>

NFS ボリューム

オペレーティングシステム用のコマンドを使用して、NFSツールをインストールします。ブート時にNFSサービスが開始されていることを確認します。

RHEL 8以降
sudo yum install -y nfs-utils
Ubuntu
sudo apt-get install -y nfs-common
警告 NFSツールをインストールしたあとにワーカーノードをリブートして、コンテナにボリュームを接続する際の障害を回避します。

iSCSI ボリューム

Tridentでは、iSCSIセッションの確立、LUNのスキャン、マルチパスデバイスの検出、フォーマット、ポッドへのマウントを自動的に実行できます。

iSCSIの自己回復機能

ONTAPシステムの場合、Tridentは5分ごとにiSCSIの自己修復を実行し、次のことを実現します。

  1. *希望するiSCSIセッションの状態と現在のiSCSIセッションの状態を識別します

  2. *希望する状態と現在の状態を比較して、必要な修理を特定します。Tridentは、修理の優先順位と、修理をいつプリエンプトするかを決定します。

  3. *現在のiSCSIセッションの状態を希望するiSCSIセッションの状態に戻すために必要な修復*を実行します。

メモ 自己修復アクティビティのログは、それぞれのデーモンセットポッドのコンテナにあり trident-main`ます。ログを表示するには、Tridentのインストール時にを「true」に設定しておく必要があります `debug

Trident iSCSIの自己修復機能を使用すると、次のことを防止できます。

  • ネットワーク接続問題 後に発生する可能性がある古いiSCSIセッションまたは正常でないiSCSIセッション。セッションが古くなった場合、Tridentは7分間待機してからログアウトし、ポータルとの接続を再確立します。

    メモ たとえば、ストレージコントローラでCHAPシークレットがローテーションされた場合にネットワークが接続を失うと、古い(stale)CHAPシークレットが保持されることがあります。自己修復では、これを認識し、自動的にセッションを再確立して、更新されたCHAPシークレットを適用できます。
  • iSCSIセッションがありません

  • LUNが見つかりません

  • Tridentをアップグレードする前に考慮すべきポイント*

  • ノード単位のigroup(23.04以降で導入)のみを使用している場合、iSCSIの自己修復によってSCSIバス内のすべてのデバイスに対してSCSI再スキャンが開始されます。

  • バックエンドを対象としたigroup(23.04で廃止)のみを使用している場合、iSCSIの自己修復によってSCSIバス内の正確なLUN IDのSCSI再スキャンが開始されます。

  • ノード単位のigroupとバックエンドを対象としたigroupが混在している場合、iSCSIの自己修復によってSCSIバス内の正確なLUN IDのSCSI再スキャンが開始されます。

iSCSIツールをインストール

使用しているオペレーティングシステム用のコマンドを使用して、iSCSIツールをインストールします。

作業を開始する前に
  • Kubernetes クラスタ内の各ノードには一意の IQN を割り当てる必要があります。* これは必須の前提条件です * 。

  • RHCOSバージョン4.5以降またはRHEL互換のその他のLinuxディストリビューションをで使用している場合は、を使用します solidfire-san DriverおよびElement OS 12.5以前。CHAP認証アルゴリズムがMD5 inに設定されていることを確認します /etc/iscsi/iscsid.conf。Element 12.7では、FIPS準拠のセキュアなCHAPアルゴリズムSHA1、SHA-256、およびSHA3-256が提供されています。

    sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
  • iSCSI PVSでRHEL / Red Hat Enterprise Linux CoreOS(RHCOS)を実行するワーカーノードを使用する場合は、StorageClassでmountOptionを指定してインラインのスペース再生を実行します discard。を参照してください "Red Hat のドキュメント"

  • 最新バージョンにアップグレードしたことを確認してください。 multipath-tools

RHEL 8以降
  1. 次のシステムパッケージをインストールします。

    sudo yum install -y lsscsi iscsi-initiator-utils device-mapper-multipath
  2. iscsi-initiator-utils のバージョンが 6.2.0.874-2.el7 以降であることを確認します。

    rpm -q iscsi-initiator-utils
  3. スキャンを手動に設定:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
  4. マルチパスを有効化:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    メモ の下に defaults`含むを `find_multipaths no`確認します `/etc/multipath.conf
  5. 「 iscsid 」と「 multipathd 」が実行されていることを確認します。

    sudo systemctl enable --now iscsid multipathd
  6. 'iSCSI' を有効にして開始します

    sudo systemctl enable --now iscsi
Ubuntu
  1. 次のシステムパッケージをインストールします。

    sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
  2. open-iscsi バージョンが 2.0.874-5ubuntu2.10 以降( bionic の場合)または 2.0.874-7.1ubuntu6.1 以降( Focal の場合)であることを確認します。

    dpkg -l open-iscsi
  3. スキャンを手動に設定:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
  4. マルチパスを有効化:

    sudo tee /etc/multipath.conf <<-EOF
    defaults {
        user_friendly_names yes
        find_multipaths no
    }
    EOF
    sudo systemctl enable --now multipath-tools.service
    sudo service multipath-tools restart
    メモ の下に defaults`含むを `find_multipaths no`確認します `/etc/multipath.conf
  5. 「 open-iSCSI」 および「マルチパスツール」が有効で実行されていることを確認します。

    sudo systemctl status multipath-tools
    sudo systemctl enable --now open-iscsi.service
    sudo systemctl status open-iscsi
    メモ Ubuntu 18.04 では 'iSCSI デーモンを起動するために 'open-iscsi' を起動する前に 'iscsiadm を持つターゲット・ポートを検出する必要がありますまたは 'iscsid' サービスを 'iscsid' を自動的に開始するように変更することもできます

iSCSI自己回復の設定または無効化

次のTrident iSCSI自己修復設定を構成して、古いセッションを修正できます。

  • * iSCSIの自己修復間隔*:iSCSIの自己修復を実行する頻度を指定します(デフォルト:5分)。小さい数値を設定することで実行頻度を高めるか、大きい数値を設定することで実行頻度を下げることができます。

メモ

iSCSIの自己修復間隔を0に設定すると、iSCSIの自己修復が完全に停止します。iSCSIの自己修復を無効にすることは推奨しません。iSCSIの自己修復が意図したとおりに機能しない、またはデバッグ目的で機能しない特定のシナリオでのみ無効にする必要があります。

  • * iSCSI自己回復待機時間*:正常でないセッションからログアウトして再ログインを試みるまでのiSCSI自己回復の待機時間を決定します(デフォルト:7分)。健全でないと識別されたセッションがログアウトされてから再度ログインしようとするまでの待機時間を長くするか、またはログアウトしてログインしてからログインするまでの時間を短くするように設定できます。

Helm

iSCSIの自己修復設定を構成または変更するには、 iscsiSelfHealingInterval および iscsiSelfHealingWaitTime helmのインストール中またはhelmの更新中のパラメータ。

次の例では、iSCSIの自己修復間隔を3分、自己修復の待機時間を6分に設定しています。

helm install trident trident-operator-100.2506.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
Tridentctl

iSCSIの自己修復設定を構成または変更するには、 iscsi-self-healing-interval および iscsi-self-healing-wait-time tridentctlのインストールまたは更新中のパラメータ。

次の例では、iSCSIの自己修復間隔を3分、自己修復の待機時間を6分に設定しています。

tridentctl install --iscsi-self-healing-interval=3m0s --iscsi-self-healing-wait-time=6m0s -n trident

NVMe/TCPホリユウム

オペレーティングシステムに対応したコマンドを使用してNVMeツールをインストールします。

メモ
  • NVMeにはRHEL 9以降が必要です。

  • Kubernetesノードのカーネルバージョンが古すぎる場合や、使用しているカーネルバージョンに対応するNVMeパッケージがない場合は、ノードのカーネルバージョンをNVMeパッケージで更新しなければならないことがあります。

RHEL 9
sudo yum install nvme-cli
sudo yum install linux-modules-extra-$(uname -r)
sudo modprobe nvme-tcp
Ubuntu
sudo apt install nvme-cli
sudo apt -y install linux-modules-extra-$(uname -r)
sudo modprobe nvme-tcp

インストールを確認します

インストールが完了したら、次のコマンドを使用して、Kubernetesクラスタ内の各ノードに一意のNQNが割り当てられていることを確認します。

cat /etc/nvme/hostnqn
警告 Tridentでは、NVMeがダウンしてもパスがあきらめないように値が変更され `ctrl_device_tmo`ます。この設定は変更しないでください。

SCSI over FCボリューム

Fibre Channel(FC;ファイバチャネル)プロトコルをTridentで使用して、ONTAPシステムでストレージリソースをプロビジョニングおよび管理できるようになりました。

前提条件

FCに必要なネットワークとノードを設定します。

ネットワーク設定

  1. ターゲットインターフェイスのWWPNを取得します。詳細については、を参照してください "network interface show"

  2. イニシエータ(ホスト)のインターフェイスのWWPNを取得します。

    対応するホストオペレーティングシステムユーティリティを参照してください。

  3. ホストとターゲットのWWPNを使用してFCスイッチにゾーニングを設定します。

    詳細については、各スイッチベンダーのドキュメントを参照してください。

    詳細については、次のONTAPドキュメントを参照してください。

FCツールのインストール

オペレーティングシステム用のコマンドを使用して、FCツールをインストールします。

  • FC PVSでRHEL / Red Hat Enterprise Linux CoreOS(RHCOS)を実行するワーカーノードを使用する場合は、StorageClassでmountOptionを指定してインラインのスペース再生を実行します discard。を参照してください "Red Hat のドキュメント"

RHEL 8以降
  1. 次のシステムパッケージをインストールします。

    sudo yum install -y lsscsi device-mapper-multipath
  2. マルチパスを有効化:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    メモ の下に defaults`含むを `find_multipaths no`確認します `/etc/multipath.conf
  3. が実行中であることを確認し `multipathd`ます。

    sudo systemctl enable --now multipathd
Ubuntu
  1. 次のシステムパッケージをインストールします。

    sudo apt-get install -y lsscsi sg3-utils multipath-tools scsitools
  2. マルチパスを有効化:

    sudo tee /etc/multipath.conf <<-EOF
    defaults {
        user_friendly_names yes
        find_multipaths no
    }
    EOF
    sudo systemctl enable --now multipath-tools.service
    sudo service multipath-tools restart
    メモ の下に defaults`含むを `find_multipaths no`確認します `/etc/multipath.conf
  3. が有効で実行中であることを確認し `multipath-tools`ます。

    sudo systemctl status multipath-tools

SMBボリュームをプロビジョニングする準備をします

SMBボリュームをプロビジョニングするには、 ontap-nas ドライバー。

警告 オンプレミスのONTAPクラスタ用のSMBボリュームを作成するには、SVMでNFSプロトコルとSMB / CIFSプロトコルの両方を設定する必要があります ontap-nas-economy。これらのプロトコルのいずれかを設定しないと、原因 SMBボリュームの作成が失敗します。
メモ `autoExportPolicy`SMBボリュームではサポートされません。
作業を開始する前に

SMBボリュームをプロビジョニングする前に、以下を準備しておく必要があります。

  • Linuxコントローラノードと少なくとも1つのWindowsワーカーノードでWindows Server 2022を実行しているKubernetesクラスタ。Tridentでは、Windowsノードで実行されているポッドにマウントされたSMBボリュームのみがサポートされます。

  • Active Directoryクレデンシャルを含む少なくとも1つのTridentシークレット。シークレットを生成するには smbcreds

    kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
  • Windowsサービスとして設定されたCSIプロキシ。を設定します `csi-proxy`を参照してください "GitHub: CSIプロキシ" または "GitHub: Windows向けCSIプロキシ" Windowsで実行されているKubernetesノードの場合。

手順
  1. オンプレミスのONTAPでは、必要に応じてSMB共有を作成することも、Tridentで共有を作成することもできます。

    メモ Amazon FSx for ONTAPにはSMB共有が必要です。

    SMB管理共有は、のいずれかの方法で作成できます "Microsoft管理コンソール" 共有フォルダスナップインまたはONTAP CLIを使用します。ONTAP CLIを使用してSMB共有を作成するには、次の手順を実行します

    1. 必要に応じて、共有のディレクトリパス構造を作成します。

      vserver cifs share create コマンドは、共有の作成時に-pathオプションで指定されているパスを確認します。指定したパスが存在しない場合、コマンドは失敗します。

    2. 指定したSVMに関連付けられているSMB共有を作成します。

      vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
    3. 共有が作成されたことを確認します。

      vserver cifs share show -share-name share_name
      メモ を参照してください "SMB 共有を作成" 詳細については、
  2. バックエンドを作成する際に、SMBボリュームを指定するように次の項目を設定する必要があります。ONTAP バックエンド構成オプションのすべてのFSXについては、を参照してください "FSX(ONTAP の構成オプションと例)"

    パラメータ 説明

    smbShare

    次のいずれかを指定できます。Microsoft管理コンソールまたはONTAP CLIを使用して作成されたSMB共有の名前、TridentでSMB共有を作成できるようにする名前、ボリュームへの共通の共有アクセスを禁止する場合はパラメータを空白のままにします。オンプレミスのONTAPでは、このパラメータはオプションです。このパラメータはAmazon FSx for ONTAPバックエンドで必須であり、空にすることはできません。

    smb-share

    nasType

    をに設定する必要があります smb. nullの場合、デフォルトはです nfs

    smb

    'ecurityStyle'

    新しいボリュームのセキュリティ形式。をに設定する必要があります ntfs または mixed SMBボリューム

    ntfs または mixed SMBボリュームの場合

    「 unixPermissions 」

    新しいボリュームのモード。* SMBボリュームは空にしておく必要があります。*

    ""