在 Compute Engine 迁移过程中迁移过程卡住

在 Compute Engine 迁移到 Google Kubernetes Engine 期间,Migrate to Containers 可能无法识别源虚拟机磁盘的 UUID。您可以手动添加:

  1. 使用 kubectl 或 Stackdriver 为 Pod 加载日志。

  2. 如果您看到了消息 [hcrunner] - Failed to find boot partition,请继续执行以下步骤。

  3. 找到其中一则消息输出的启动磁盘的 UUID,它是一个十六进制值字符串。在下面的示例中,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 驱动程序工作负载在控制台中的状态是否为“正常”。
    • 您的工作负载是否与 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