NetBackup™ Web UI Kubernetes 管理者ガイド

Last Published:
Product(s): NetBackup & Alta Data Protection (10.4)
  1. NetBackup for Kubernetes の概要
    1.  
      概要
    2.  
      Kubernetes 用の NetBackup サポート機能
  2. NetBackup Kubernetes Operator の配備と構成
    1.  
      NetBackup Kubernetes Operator を配備するための前提条件
    2.  
      NetBackup Kubernetes Operator でのサービスパッケージの配備
    3.  
      Kubernetes Operator の配備のためのポート要件
    4.  
      NetBackup Kubernetes Operator のアップグレード
    5.  
      NetBackup Kubernetes Operator の削除
    6.  
      NetBackup Kubernetes データムーバーの構成
    7.  
      Kubernetes 用の NetBackup 保護の自動構成
    8. NetBackup スナップショット操作の設定を行う
      1.  
        Kubernetes Operator でサポートされる構成パラメータ
      2.  
        スナップショットからのバックアップ操作とバックアップからのリストア操作の前提条件
      3.  
        Kubernetes でサポートされる DTE クライアント設定
      4.  
        datamover プロパティのカスタマイズ
    9.  
      短縮名の付いた NetBackup サーバーのトラブルシューティング
    10.  
      datamover ポッドのスケジュールメカニズムのサポート
    11.  
      アクセラレータストレージクラスの検証
  3. NetBackup Kubernetes Operator での証明書の配備
    1.  
      Kubernetes Operator での証明書の配備
    2.  
      ホスト ID ベースの証明書操作の実行
    3.  
      ECA 証明書操作の実行
    4.  
      証明書の種類の識別
  4. Kubernetes 資産の管理
    1.  
      Kubernetes クラスタの追加
    2. 設定を行う
      1.  
        Kuberentes リソース形式のリソース制限の変更
      2.  
        自動検出の間隔の構成
      3.  
        権限の構成
    3.  
      資産への保護の追加
    4. マルウェアのスキャン
      1.  
        作業負荷の種類ごとの資産
  5. Kubernetes インテリジェントグループの管理
    1.  
      インテリジェントグループについて
    2.  
      インテリジェントグループの作成
    3.  
      インテリジェントグループの削除
    4.  
      インテリジェントグループの編集
  6. Kubernetes 資産の保護
    1.  
      インテリジェントグループの保護
    2.  
      インテリジェントグループからの保護の削除
    3.  
      バックアップスケジュールの構成
    4.  
      バックアップオプションの構成
    5.  
      バックアップの構成
    6.  
      自動イメージレプリケーション (AIR) と複製の構成
    7.  
      ストレージユニットの構成
    8.  
      ボリュームモードのサポート
    9.  
      アプリケーションの一貫したバックアップの構成
  7. イメージグループの管理
    1. イメージグループについて
      1.  
        イメージの期限切れ
      2.  
        イメージのコピー
  8. NetBackup でのランチャ管理クラスタの保護
    1.  
      自動構成を使用した NetBackup へのランチャ管理 RKE クラスタの追加
    2.  
      NetBackup でのランチャ管理 RKE クラスタの手動での追加
  9. Kubernetes 資産のリカバリ
    1.  
      リカバリポイントの検索と検証
    2.  
      スナップショットからのリストア
    3.  
      バックアップコピーからのリストア
  10. 増分バックアップとリストアについて
    1.  
      Kubernetes の増分バックアップとリストアのサポート
  11. アクセラレータベースのバックアップの有効化
    1.  
      Kubernetes 作業負荷に対する NetBackup アクセラレータのサポートについて
    2.  
      プライマリサーバーにあるトラックログのディスク容量の制御
    3.  
      ストレージクラスの動作がアクセラレータに与える影響
    4.  
      アクセラレータ強制再スキャンについて
    5.  
      アクセラレータバックアップのエラーに関する警告と考えられる理由
  12. Kubernetes での FIPS モードの有効化
    1.  
      Kubernetes での FIPS (連邦情報処理標準) モードの有効化
  13. Kubernetes の問題のトラブルシューティング
    1.  
      プライマリサーバーのアップグレード時のエラー: NBCheck が失敗する
    2.  
      古いイメージのリストア時のエラー: 操作が失敗する
    3.  
      永続ボリュームのリカバリ API でのエラー
    4.  
      リストア中のエラー: ジョブの最終状態で一部が失敗していると表示される
    5.  
      同じ名前空間でのリストア時のエラー
    6.  
      datamover ポッドが Kubernetes のリソース制限を超過
    7.  
      リストア時のエラー: 高負荷のクラスタでジョブが失敗する
    8.  
      特定のクラスタ用に作成されたカスタムの Kubernetes の役割でジョブを表示できない
    9.  
      OperatorHub からインストールされたアプリケーションのリストア時に、選択されていない空の PVC が Openshift によって作成される
    10.  
      Kubernetes ノードで PID の制限を超えると NetBackup Kubernetes Operator が応答しなくなる
    11.  
      NetBackup Kubernetes 10.1 におけるクラスタの編集中のエラー
    12.  
      大きいサイズの PVC でスナップショットからのリストアが失敗する
    13.  
      名前空間ファイルモードの PVC を別のファイルシステムにリストアすると部分的に失敗する
    14.  
      バックアップコピーからのリストアがイメージの不整合エラーで失敗する
    15.  
      NetBackup プライマリサーバー、メディアサーバー、Kubernetes サーバー間の接続性チェック
    16.  
      トラックログに利用可能な領域がない場合のアクセラレータバックアップ中のエラー
    17.  
      トラックログ PVC の作成エラーによるアクセラレータバックアップ中のエラー
    18.  
      無効なアクセラレータストレージクラスによるアクセラレータバックアップ中のエラー
    19.  
      トラックログポッドの起動中に発生したエラー
    20.  
      トラックログ PVC 操作のためのデータムーバーインスタンスの設定に失敗する
    21.  
      configmap からトラックログのストレージクラスを読み取る際のエラー

アプリケーションの一貫したバックアップの構成

データベースなどのアプリケーションを実行しているいくつかのポッドには、アプリケーションの一貫したバックアップを取得するために追加の手順が必要です。

アプリケーションの一貫したバックアップでは、アプリケーションメタデータ、メモリ内の状態、永続ストレージに存在する永続データを把握するためのメカニズムが必要です。リストア中に正常な状態を実現するために、これらのすべての Kubernetes リソースにわたって一貫したアプリケーションバックアップを取得することは、リカバリ処理の合理化に役立ちます。クラッシュ整合バックアップのみが必要な場合、これらの手順は必要ありません。

アプリケーションには、アプリケーションの整合性スナップショットを作成するために入出力 (I/O) 操作を一時停止する手順があり、これはベンダーによって文書化されています。この手順はアプリケーションによって異なるため、それぞれの実行方法の性質が重要になります。これらの手順の内容はお客様の責任です。

NetBackup を使用して Kubernetes 作業負荷を保護する場合、アプリケーションの整合性スナップショットを作成するには、バックアップフックを利用するアプリケーションポッドの注釈を適用します。Kubernetes の注釈は、任意の Kubernetes リソースに適用できる単なるメタデータです。Kubernetes 内のフックはユーザー定義の処理で、任意のコマンドまたは複数のコマンドを指定できます。Kubernetes インフラ内で、静止状態を必要とするアプリケーションポッドにこれらの注釈とフックを適用します。

バックアップフックは、前処理 (スナップショットの前) と後処理 (スナップショットの後) の両方に使用されます。データ保護のコンテキストでは、通常、netbackup-pre-backup フックが静止プロシージャまたはコマンドを呼び出し、netbackup-post-backup フックが静止解除のプロシージャまたはコマンドを呼び出すことを意味します。フックの各セットで、コマンドとその適用先のコンテナを指定します。コマンドはコンテナのシェル内では実行されないことに注意してください。したがって、指定の例では、ディレクトリを含む完全なコマンド文字列が使用されます。

アプリケーションの一貫したバックアップを必要とするアプリケーションを識別し、Kubernetes データ保護の構成の一部として一連のバックアップフックを含む注釈を適用します。

ポッドに注釈を追加するには、Kubernetes UI (ユーザーインターフェース) を使用します。または、特定のポッドまたはラベルに対して、Kubernetes クラスタコンソールで kubectl の注釈機能を使用します。注釈を適用する方法はディストリビューションによって異なる場合があるため、次の例では、ほとんどのディストリビューションでの広範な可用性に基づいて、kubectl コマンドに重点を置いて説明します。

さらに、配備リソースやレプリカセットリソースなどの基本 Kubernetes オブジェクトに注釈を追加して、新しく配備されたポッドに注釈を確実に含めることができます。Kubernetes 管理者は注釈を動的に更新できます。

ラベルは、ポッドやサービスなどの Kubernetes オブジェクトに関連付けられるキーと値のペアです。ラベルは、ユーザーにとって重要で関連性のあるオブジェクトの属性として使用されます。ラベルは作成時にオブジェクトにアタッチでき、その後いつでも追加および変更できます。Kubernetes では、これらのラベルを使用して、選択したサブセットに対してオブジェクトを問い合わせ、一括操作を実行するための統合サポートが提供されます。各オブジェクトには、キーと値のラベルのセットを定義できます。各キーは特定のオブジェクトに対して一意である必要があります。

ラベルメタデータのフォーマットと構文の例を次に示します。

"metadata": {"labels": {"key1":"value1","key2":"value2"}}

ポッド名を具体的に指定するか、ポッドの目的のグループに該当するラベルを指定します。複数の注釈引数を使用する場合は、次に示す JSON アレイのように正しい JSON 形式を指定します: '["item1","item2","itemn"]'# kubectl annotate pod [ {pod_name} | -l {label=value}] -n {the-pods-namespace_name} [annotation syntax - see following]

目的の結果を得るために一部のアプリケーションで複数のコマンドが必要な場合は、複数のコマンドを結合するために、このメソッドを && と組み合わせることができます。指定したコマンドはベリタスによって提供されないため、ユーザーは手動でアプリケーションポッドをカスタマイズする必要があります。{values} を環境で使用されている実際の名前に置き換えます。

メモ:

すべての kubectl コマンドは 1 行で定義する必要があります。次の例をコピーまたは貼り付けるときは注意してください。

NetBackup 10.2 にアップグレードした後、これらの新しい netbackup-pre と netbackup-post のバックアップフックに対する注釈を更新します。これには、「netbackup」の接頭辞が含まれています。

netbackup-pre.hook.back.velero.io/command
netbackup-pre.hook.backup.velero.io/container
netbackup-post.hook.back.velero.io/command
netbackup-post.hook.backup.velero.io/container
ポッド名を使用した MongoDB の例

MongoDB 4.2.23 データベースをロックおよびロック解除するコマンドを次に示します。

# mongo --eval "db. fsyncLock ()"

# mongo --eval "db.fsyncUnlock()"

これは、MongoDB のバックアップ前と後の両方のフックを設定する次の単一のコマンドに変換されます。特殊文字と、JSON 形式の一部として使用される角カッコ ([])、一重引用符、二重引用符、およびカンマ (,) をエスケープするための特殊な構文に注意してください。

# kubectl annotate pod {mongodb-pod-name} -n {mongodb namespace} netbackup-pre.hook.back.velero.io/command='["/bin/bash", "-c", "mongo --eval \"db.fsyncLock()\""]' netbackup-pre.hook.backup.velero.io/container={mongodb-pod-name} netbackup-post.hook.backup.velero.io/command='["/bin/bash","-c","mongo --eval \"db.fsyncUnlock()\""]' netbackup-post.hook.backup.velero.io/container={mongodb-pod-name}

ラベルを使用した MySQL の例

次に、MySQL データベースを静止および静止解除するコマンドを示します。

# mysql -uroot -ppassword -e "flush tables with read lock"

# mysql -uroot -ppassword -e "unlock tables"

これは、MySQL のバックアップ前と後の両方のフックを設定する次の単一のコマンドに変換されます。この例では、ポッド名の代わりにラベルを使用しており、このラベルは一度に複数のポッドに注釈を付けることができます。特殊文字と、JSON 形式の一部として使用される角カッコ ([])、一重引用符、二重引用符、およびカンマ (,) をエスケープするための特殊な構文に注意してください。

# kubectl annotate pod -l label=value -n {mysql namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "mysql -uroot -ppassword -e \"flush tables with read lock\""]' netbackup-pre.hook.backup.velero.io/container={mysql container name} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "mysql -uroot -ppassword -e \"unlock tables\""]' netbackup-post.hook.backup.velero.io/container={mysql container name}

ラベルを使用した Postgres の例

次に、PostgreSQL データベースを静止および静止解除するコマンドを示します。

# Psql -U postgres -c "SELECT pg_start_backup('tagvalue');"

# psql -U postgres -c \"SELECT pg_stop_backup();"

これは、Postgres のバックアップ前と後の両方のフックを設定する次の単一のコマンドに変換されます。この例では、ポッド名の代わりにラベルを使用しており、ラベルは一度に複数の一致するポッドに注釈を付けることができます。任意の Kubernetes オブジェクトにラベルを適用できます。この場合は、特定のコンテナを変更し、特定のポッドのみを選択するための別の方法としてラベルを使用しています。特殊文字と、JSON 形式の一部として使用される角カッコ ([])、一重引用符、二重引用符、およびカンマ (,) をエスケープするための特殊な構文に注意してください。

# kubectl annotate pod -l app=app-postgresql -n {postgres namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "psql -U postgres -c \"SELECT pg_start_backup(quote_literal($EPOCHSECONDS));\""]' netbackup-pre.hook.backup.velero.io/container={postgres container name} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "psql -U postgres -c \"SELECT pg_stop_backup();\""]' netbackup-post.hook.backup.velero.io/container={postgres container name}

コンテナフックなしの NGINX アプリケーションの例

次に、NGINX アプリケーションを静止および静止解除するコマンドを示します。

# /sbin/fsfreeze --freeze /var/log/nginx

# /sbin/fsfreeze --unfreeze /var/log/nginx

これは、NGINX のバックアップ前と後の両方のフックを設定する次の単一のコマンドに変換されます。この例では、コンテナフックを省略します。これにより、デフォルトでポッド名と一致する最初のコンテナが変更されます。特殊文字と、JSON 形式の一部として使用される角カッコ ([])、一重引用符、二重引用符、およびカンマ (,) をエスケープするための特殊な構文に注意してください。

# kubectl annotate pod {nginx-pod-name} -n {nginx namespace} netbackup-pre.hook.backup.velero.io/command='["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' netbackup-post.hook.backup.velero.io/command='["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]'

Cassandra の例

次に、Cassandra データベースを静止および静止解除するコマンドを示します。

# nodetool flush

# nodetool verify

これは、Cassandra のバックアップ前と後の両方のフックを設定する次の単一のコマンドに変換されます。特殊文字と、JSON 形式の一部として使用される角カッコ ([])、一重引用符 ('')、二重引用符 ("")、およびカンマ (,) をエスケープするための特殊な構文に注意してください。

# kubectl annotate pod {cassandra-pod} -n {Cassandra namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "nodetool flush"]' netbackup-pre.hook.backup.velero.io/container={cassandra-pod} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "nodetool verify"]' netbackup-post.hook.backup.velero.io/container={cassandra-pod}

メモ:

ここに示す例では、初期ガイドのみが提供されています。各作業負荷の特定の要件には、バックアップ、作業負荷、Kubernetes 管理者間のコラボレーションが含まれている必要があります。

現時点では、Kubernetes はエラー時のフックをサポートしていません。ユーザー指定のコマンドが失敗した場合、バックアップスナップショットは続行されません。

終了状態を返すコマンドのデフォルトのタイムアウト値は 30 秒です。ただし、この値は、ポッドへの注釈として次のフックで変更できます。

netbackup-pre.hook.backup.velero.io/timeout=#in-seconds#

netbackup-post.hook.backup.velero.io/timeout=#in-seconds#