/etc/fstab にあるデバイスのマウントに失敗する

デフォルトでは、システムは /etc/fstab を解析し、リストにあるすべてのデバイスを必要なマウント ポイントにマウントします。デバイスが認識されないか、マウントされないと、ワークロード Pod は準備完了状態になりません。

たとえば、Amazon EC2 の移行元 VM で永続性の保証がないエフェメラル ディスクを使用されているとします。こうしたディスクはターゲットにストリーミングされず、そのマウント時にコンテナでエラーが発生します。

この場合、次のようなメッセージが表示されます。

Unable to locate resolve [X] fstab entries: …
Error: Failed mount -o defaults /dev/mapper/mpathe-part /rootfs/mnt/ephemeral

この問題を回避するには、次のいずれかを行います。

  • Linux VM で /etc/fstab を編集して、デバイスのマウント コマンドを削除します。
  • HC_INIT_SKIP_MOUNT_FAILURES 環境変数を設定し、マウントの失敗をスキップして続行するようにシステムを構成します。

HC_INIT_SKIP_MOUNT_FAILURES 環境変数を設定するには:

  1. 移行処理クラスタで、移行名前空間 v2k-system に configmap を作成します。たとえば、jobs-config.yaml という名前のファイルで configmap を定義します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: jobs-config
      namespace: v2k-system
    data:
      environment: |
        HC_INIT_SKIP_MOUNT_FAILURES = true
    
  2. configmap をクラスタに適用します。

    kubectl apply -f jobs-config.yaml
  3. 次のコマンドを使用して、構成マップを表示します。

    kubectl describe configmaps -n v2k-system
  4. 移行計画を編集して configmap を追加します。移行計画は、移行を作成したときに生成した yaml ファイルです。移行計画の編集の詳細については、移行計画のカスタマイズをご覧ください。

    移行計画の configs セクションを編集して configmap を追加します。

    configs:
      jobsConfig:
        name: jobs-config
    
  5. 編集内容を保存してから、移行の実行の説明に従って移行を行います。