Compute Engine の移行中に移行プロセスが停止する

Compute Engine から Google Kubernetes Engine への移行中に、Migrate to Containers はソース VM のディスクの UUID を認識できない場合があります。これは手動で追加することもできます。

  1. kubectl または Stackdriver を使用して Pod のログを読み込みます。

  2. メッセージ「[hcrunner] - Failed to find boot partition」が表示された場合は、次の操作を行います。

  3. メッセージでブートディスクの UUID(16 進数の文字列)を確認します。下の例で UUID は「e823158e-f290-4f91-9c3d-6f33367ae0da」です。

    [util] - SHELL OUTPUT: {"name": "/dev/sdb1", "partflags": null, "parttype":
    "0x83", "uuid": "<strong>e823158e-f290-4f91-9c3d-6f33367ae0da</strong>",
    "fstype": "ext4"}
    
  4. YAML ファイルを使用して既存のワークロードを削除します。

    kubectl delete -f
    
  5. テキスト エディタで YAML ファイルを開き、env という名前のセクションを見つけます。

  6. 次のものを追加します。

        - name: "HC_BOOTDEVICE_UUID"
          value: ""
    
  • メッセージ「touch: cannot touch '/vlsdata/etc/fstab': No such file or directory」が表示された場合は、次の点を確認します。

    • コンソールで、CSI ドライバ ワークロードのステータスが「OK」になっていること。
    • ワークロードが Migrate to Containers のデプロイと同じクラスタ内にあること。
  • 次のいずれかのメッセージがある場合は、ワークロードで失敗した PersistentVolumeClaim を削除してから再作成します。

    • hcutil.Error: Failed mount -o rw None /vlsdata (32) (Output:mount: /vlsdata: special device None does not exist.
    • [hcrunner] - [Errno 30] Read-only file system: '/vlsdata/rootdir/etc/dhcp/dhclient-up-hooks