migctl 参考文档

migctl 是一种命令行工具,用于在 Google Cloud 上设置和管理 Migrate to Containers 迁移环境:

如需了解关键 migctl 命令的分步介绍以及如何进行简单迁移,请参阅快速入门

migctl

命令 说明
artifacts-repo 配置工件代码库
completion 生成 bash 完成脚本。
debug 排查命令问题
debug collect-info 下载 Sysreport 脚本 collect_sysreport.sh
docker-registry 配置 Docker 注册表
doctor 检查 Migrate to Containers 部署状态和相关配置
帮助 关于任何命令的帮助
日志记录 配置日志记录
migration 迁移操作
setup 安装或卸载 Migrate to Containers
source 管理对迁移来源的引用
version 输出 Migrate to Containers 和 migctl 的版本

摘要

migctl [-h]

标志

-h, --help
关于此命令的帮助。

备注

migctl 包含在 Cloud Shell 中

migctl artifacts-repo

命令 说明
migctl artifacts-repo create 创建工件代码库配置。
migctl artifacts-repo update 更新工件代码库配置。
migctl artifacts-repo delete 删除工件代码库配置。
migctl artifacts-repo list 列出工件代码库配置。
migctl artifacts-repo set-default 设置默认工件代码库配置。

另请参阅

定义数据存储区

migctl artifacts-repo create

创建工件代码库配置。

摘要

migctl artifacts-repo create gcs|s3|basic-auth repository-name flags

位置参数

repository-name

工件代码库配置的名称。

标志

-h, --help

关于此命令的帮助。

剩余标志基于注册表类型:

  • Cloud Storage

    migctl artifacts-repo create gcs repository-name --bucket-name bucket-name  --json-key=m4a-install.json

    其中:

    • repository-name 是用户定义的工件存储区配置的名称。

    • bucket-name 指定 Cloud Storage 存储区中的现有存储桶。如果您没有现有存储桶,请按照创建存储桶中的说明创建一个存储桶。

      注意:在 Google Cloud 上的集群中安装 Migrate to Containers 时,Migrate to Containers 安装程序会自动创建名称如下的默认存储桶:

      PROJECT-migration-artifacts

    • m4a-install.json 是用于访问 Container Registry 和 Cloud Storage 的服务账号的 JSON 密钥文件的名称,如配置服务账号中所述。

  • S3

    migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --access-key-id=key-id

    系统会提示您输入 key-id 的密钥。

    或者,指定凭据文件的路径:

    migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --credentials-file-path file-path 

    其中:

    • repository-name 是用户定义的工件存储区配置的名称。

    • bucket-name 指定 S3 存储区中的现有存储桶。如果您当前没有存储桶,请按照使用 Amazon S3 存储桶中的说明创建一个存储桶。

    • aws-region 指定存储区的 AWS 区域。只要集群有权访问存储区,处理集群和存储区就可以位于不同区域。

    • key-id 指定访问密钥。如需了解详情,请参阅管理 IAM 用户的访问密钥

    • file-path 指定从 AWS 控制台下载的 CSV 文件的路径(该文件包含凭据)。

示例

  • Cloud Storage

    migctl artifacts-repo create gcs myRepository --json-key=m4a-install.json
  • S3

    migctl artifacts-repo create s3 myRepository --bucket-name bucket-name --region aws-region --access-key-id=key-id

migctl artifacts-repo update

更新工件代码库配置。

摘要

migctl artifacts-repo update gcs|s3|basic-auth repository-name same-flags-as-create

位置参数

repository-name

工件代码库配置的名称。

标志

same-flags-as-create

给更新注册表配置指定用于创建注册表配置的相同标志(如 migctl artifacts-repo create 所示)。

migctl artifacts-repo delete

删除工件代码库配置。

摘要

migctl artifacts-repo delete repository-name

位置参数

repository-name

工件代码库配置的名称。

标志

-h, --help

关于此命令的帮助。

migctl artifacts-repo list

列出当前配置的存储库库,包括当前的默认存储库库。

摘要

migctl artifacts-repo list

标志

-h, --help

关于此命令的帮助。

migctl artifacts-repo set-default

设置默认工件代码库,表示处理集群使用的活跃注册表。

摘要

migctl artifacts-repo set-default repository-name

位置参数

repository-name

工件代码库配置的名称。

标志

-h, --help

关于此命令的帮助。

migctl completion

生成 bash 完成脚本。

要加载 completion,请运行 . <(migctl completion bash)

要将 bash shell 配置为为每个会话加载 completion,请将以下代码添加到您的 ~/.bashrc 或 ~/.profile:. <(migctl completion bash)

摘要

migctl completion {bash | zsh}

位置参数

{bash | zsh}
要使用的 shell。

标志

-h, --help
关于此命令的帮助。

migctl debug

命令 说明
migctl debug release-m4ce-vm 发布 Migrate to Virtual Machines V4 虚拟机。
migctl debug collect-info 下载 Sysreport 脚本 collect_sysreport.sh

migctl debug release-m4ce-vm

发布 Migrate to Virtual Machines V4 虚拟机,该虚拟机在迁移后可能没有响应。

摘要

migctl debug release-m4ce-vm -i VM_NAME -s SOURCE_PROVIDER_NAME

标志

-h, --help
关于此命令的帮助。
-i, --instance
来源虚拟机实例 ID。
-s, --source
使用 migctl source create 创建的来源的名称。

migctl debug collect-info

下载 Sysreport 脚本 collect_sysreport.sh。然后,您可以运行该脚本来收集支持团队用来帮助您解决问题的信息。

此命令会将脚本下载到 /tmp/sysreportINDEX/collect_sysreport.sh,其中 INDEX 是在创建临时目录时分配的随机后缀。

摘要

migctl debug collect-info

标志

-h, --help
关于此命令的帮助。

另请参阅

个性化支持

示例

下载 Sysreport collect_sysreport.sh

migctl debug collect-info
Saved /tmp/sysreportINDEX/collect_sysreport.sh, please run it manually to collect sysreport

如需运行该脚本,请执行以下操作:

  1. 切换到 /tmp/sysreportINDEX 目录:

    cd /tmp/sysreportINDEX
  2. 运行 collect_sysreport.sh 脚本:

    ./collect_sysreport.sh [-n NAMESPACE] [-o OUTPUT_DIRECTORY] [-m MIGRATION]

如需详细了解如何运行脚本,请参阅个性化支持

migctl docker-registry

命令 说明
migctl docker-registry create 创建 Docker 注册表配置。
migctl docker-registry update 更新 Docker 注册表配置。
migctl docker-registry delete 删除 ArtDocker 注册表配置。
mmigctl docker-registry list 列出 Docker 注册表配置。
migctl docker-registry set-default 设置默认 Docker 注册表配置。

另请参阅

定义数据存储区

migctl docker-registry create

创建 Docker 注册表配置。

摘要

migctl docker-registry create gcr|basic-auth registry-name flags

位置参数

registry-name

Docker 注册表配置的名称。

标志

-h, --help

关于此命令的帮助。

剩余标志基于注册表类型:

  • GCR

    migctl docker-registry create gcr registry-name --project project-id --json-key=m4a-install.json

    其中:

    • registry-name 是用户定义的 Docker 注册表配置的名称。

    • project-id 是 Google 项目 ID

    • m4a-install.json 是服务账号的 JSON 密钥文件的名称。它用于访问 Container Registry 和 Cloud Storage,如配置服务账号中所述。

  • Docker 注册表

    migctl docker-registry create basic-auth registry-name --registry-path url --username username --ca-pem-file ca-pem-filename

    其中:

    • registry-name 是用户定义的 Docker 注册表配置的名称。

    • url 指定注册表的网址(不含 http://https:// 前缀)。例如 localhost:8080/myregistry

    • username 用于注册表的基本身份验证凭据。 系统会提示您输入密码。

    • 如果注册表使用自签名证书,则 ca-pem-filename 指定包含公钥或完整 CA 链的 PEM 文件。这需要从中间 CA 证书直到根证书的串联。例如:

      cat int1.pem int2.pem ... root.pem

示例

  • GCR

    migctl docker-registry create gcr my-registry --project myproject --json-key=m4a-install.json
  • Docker 注册表

    migctl docker-registry create basic-auth my-registry --registry-path myexample.com/registry --username user1 --password pass1

    如果仓库使用自签名证书:

    migctl docker-registry create basic-auth my-registry --registry-path myexample.com/registry --username user1 --password pass1 --ca-pem-file cert.pem

migctl docker-registry update

更新 Docker 注册表配置。

摘要

migctl docker-registry update gcr|basic-auth registry-name same-flags-as-create

位置参数

registry-name

Docker 注册表配置的名称。

标志

same-flags-as-create

给更新注册表配置指定用于创建注册表配置的相同标志(如 migctl docker-registry create 所示)。

migctl docker-registry delete

删除 Docker 注册表配置。

摘要

migctl docker-registry delete registry-name

位置参数

registry-name

Docker 注册表配置的名称。

标志

-h, --help

关于此命令的帮助。

migctl docker-registry list

列出当前配置的 Docker 仓库,包括当前的默认仓库。

摘要

migctl docker-registry list

标志

-h, --help

关于此命令的帮助。

migctl docker-registry set-default

设置默认的 Docker 注册表,表示处理集群使用的活跃注册表。

摘要

migctl docker-registry set-default registry-name

位置参数

registry-name

Docker 注册表配置的名称。

标志

-h, --help

关于此命令的帮助。

migctl doctor

检查 Migrate to Containers 部署状态和相关配置。

摘要

migctl doctor

标志

-h, --help
关于此命令的帮助。

另请参阅

安装 Migrate to Containers

示例

对正常运行的 Migrate to Containers 部署的响应。

migctl doctor
[✓] Deployment

migctl help

提供关于 migctl 工具的帮助。

如需详细了解某条命令,请使用“migctl [command] --help”。

摘要

migctl --help

标志

-h, --help
关于此命令的帮助。

migctl 日志记录

命令 说明
migctl 日志记录设置详细程度 设置后端的日志记录详细程度。

migctl 日志记录设置详细程度

使用任何非负整数设置后端的日志记录详细程度。

  • 将级别设置为 0 可仅查看信息日志。
  • 将级别设置为 1 或更高级别还可以查看调试日志。

摘要

migctl logging set-verbosity LEVEL [flags]

示例

设置详细程度以仅显示信息日志。

migctl logging set-verbosity 0

设置详细程度以显示大多数调试日志。

migctl logging set-verbosity 1

标志

-h, --help
关于此命令的帮助。

migctl migration

命令 说明
migration create 创建迁移计划。
migration delete 删除迁移计划。
migration generate-artifacts 为给定迁移创建工件。
migration get 获取迁移计划规范。
migration get-artifacts 获取迁移工件,例如 Deployment/StatefulSet 规范 YAML 和 Dockerfile。
migration list 列出迁移。
migration list-types 列出可用的迁移类型。
migration status 获取迁移计划状态。
migration update 更新迁移计划。

migctl migration create

创建迁移计划。

迁移计划会定义迁移的具体细节,包括源平台、虚拟机 ID、项目名称等。

生成的迁移计划文件会被复制到运行该命令的机器,而不会应用到处理集群。如果需要,您可以先修改该文件,然后再用于迁移。

摘要

migctl migration create migration-name --source source-name --vm-id source-vm-id --type type [flags]

位置参数

migration-name
此迁移的名称。

标志

-r、--artifacts-repository string
用于存储工件的工件代码库。
-h, --help
关于创建的帮助
--image-repository string
将映像上传到的映像代码库,用于上传映像的迁移。
-l、--labels strings --labels=[KEY=VALUE,…]
要添加的标签键值对列表。键必须以小写字符开头,并且只能包含连字符 (-)、下划线 (_)、小写字符和数字。值只能包含连字符 (-)、下划线 (_)、小写字符和数字。
-p、--parameters strings --parameters=[KEY=VALUE,…]
要添加的标签键值对列表
-s、--source string
来源名称
-t、--type string
迁移类型
-v、--vm-id string
来源虚拟机 ID

示例

创建 Linux 虚拟机容器化的迁移计划。

migctl migration create my-migration-1 --source my-source --vm-id my-id --type linux-system-container

为运行 Tomcat 应用组件的虚拟机创建迁移计划。

migctl migration create my-migration-1 --source my-source --vm-id my-id --type tomcat-container

另请参阅

创建迁移

migctl migration delete

删除迁移计划。

此命令会删除您使用 migctl migration create 创建的迁移。

摘要

migctl migration delete migration-name

位置参数

migration-name
要删除的迁移的名称。

标志

-h, --help
关于此命令的帮助。

migctl migration generate-artifacts

为给定迁移创建工件。

例如,此命令会创建映像、数据卷、Dockerfile、部署 YAML 等。

摘要

migctl migration generate-artifacts migration-name

位置参数

migration-name
要为其创建工件的迁移的名称。

标志

-h, --help
关于此命令的帮助。

另请参阅

执行迁移

migctl migration get

获取迁移计划规范。

摘要

migctl migration get migration-name  [--output-file migration-yaml-file]

位置参数

migration-name
要获取其计划的迁移的名称。

标志

--output-file migration-yaml-file
输出迁移计划规范的 YAML 文件。
-r, --overwrite
覆盖迁移计划规范的现有输出 YAML 文件。
-h, --help
关于此命令的帮助。

migctl migration get-artifacts

获取迁移工件,例如 Deployment/StatefulSet 规范 YAML 和 Dockerfile。

摘要

migctl migration get-artifacts migration-name [--output-directory directory-path] [--overwrite]

位置参数

migration-name
要获取其工件的迁移。

标志

--output-directory directory-path
输出目录路径。默认值为“.”。
--overwrite
覆盖现有本地文件。
-h, --help
关于此命令的帮助。

另请参阅

检查已生成的部署文件

migctl migration list

列出迁移。

摘要

migctl migration list [--all-namespaces]

标志

-A, --all-namespaces
列出所有命名空间的迁移。
-h, --help
关于此命令的帮助。

另请参阅

监控迁移

migctl migration list-types

列出可用的迁移类型

摘要

migctl migration list-types [flags]

标志

-h, --help
有关列表类型的帮助。

另请参阅

监控迁移

migctl migration status

获取迁移计划状态。

摘要

migctl migration status migration-name  [--verbose]

位置参数

migration-name
要获取其状态的迁移的名称。

标志

-v, --verbose
详细状态。
-h, --help
关于此命令的帮助。

另请参阅

监控迁移

migctl migration update

更新迁移规范。

摘要

migctl migration update migration-name --main-config migration-spec.yaml --data-config data-spec.yaml

位置参数

migration-name
要更新的迁移的名称。

标志

--main-config migration-spec.yaml
包含已更新的迁移计划规范的 YAML 文件。
--data-config data-spec.yaml
包含已更新的数据配置规范的 YAML 文件。
-h, --help
关于此命令的帮助。

另请参阅

migctl setup

命令 说明
setup install 在当前集群上安装 Migrate to Containers。
setup uninstall 从集群中卸载 Migrate to Containers。
设置升级 在集群上升级 Migrate to Containers。
setup proxy 配置 Migrate to Containers 使用的 HTTPs 代理。

migctl setup install

在当前集群上安装 Migrate to Containers。

摘要

migctl setup install [--runtime] [--json-key service-account-json] [--node-selectors string] [--tolerations string] [--version version-number]

标志

--runtime
在具有 Container-Optimized OS 节点的工作负载集群上安装运行时支持。
--json-key service-account-json
具有安装 Migrate to Containers 所必需权限的服务账号的 JSON 密钥文件。如需了解详情,请参阅为迁移创建服务账号
--node-selectors string
由 Migrate for Containers 部署的组件的节点选择器,格式为:LABEL1=VALUE1,LABEL2=VALUE2,....。如需了解详情,请参阅安装选项
--tolerations string
由 Migrate for Containers 部署的组件的容忍设置,格式为:KEY1=VALUE1:EFFECT1,KEY2=VALUE2:EFFECT2,....。如需了解详情,请参阅安装选项
--version version-number
要安装的 Migrate to Containers 版本(默认值为“1.15.0”)。
-h, --help
关于此命令的帮助。

示例

在处理集群上安装 Migrate to Containers。

migctl setup install

在具有 COS 节点的工作负载集群上安装运行时支持。

migctl setup install --runtime

另请参阅

安装 Migrate to Containers

migctl setup uninstall

从集群中卸载 Migrate to Containers。

摘要

migctl setup uninstall [-f]

标志

-f
在迁移过程中强制卸载。
-h, --help
关于此命令的帮助。

示例

卸载 Migrate to Containers。

migctl setup uninstall

在迁移过程中强制卸载 Migrate to Containers。

migctl setup uninstall --force

另请参阅

卸载 Migrate to Containers

migctl 设置升级

在集群上升级 Migrate to Containers。

摘要

migctl setup upgrade

标志

--runtime
在具有 COS 节点的工作负载集群上安装运行时支持。
-f, --force
如果任何迁移处于错误状态,请在升级过程中重新创建,看看是否可以完成。
--gcp-project string
用于上传到 Container Registry 和 Cloud Storage 的 Google Cloud 项目。
--gcp-region string
用于上传到 Cloud Storage 的 Google Cloud 区域。
--json-key string
用于上传到 Container Registry 和 Cloud Storage 的服务账号的 JSON 密钥。
--node-selectors string
由 Migrate to Containers 部署的组件的 node-selector,格式为 LABEL1=VALUE1,LABEL2=VALUE2,...
--skip-validation
替换集群部署验证。
--tolerations string
由 Migrate to Containers 部署的组件的容忍设置,格式为 KEY1=VALUE1:EFFECT1,KEY2=VALUE2:EFFECT2,...
--version string
要安装的 Migrate to Containers 版本(默认值为“1.15.0”)。
-h, --help
关于此命令的帮助。

示例

将 Migrate to Containers 升级到当前版本。

migctl setup upgrade

将 Migrate to Containers 升级到特定版本。

migctl setup upgrade --version 1.15.0

另请参阅

升级 Migrate to Containers

migctl setup proxy

配置代理服务器以访问 Migrate to Containers 存储库。Migrate to Containers 仅支持通过 HTTPS 发送的代理请求。不支持 HTTP。

使用 HTTPS 代理时,Migrate to Containers 不支持自签名证书。您必须通过 HTTPS 代理使用签名证书。

摘要

migctl setup proxy --https-proxy proxy-address
    [--proxy-basic-authentication] [--no-proxy address] [--remove]

标志

--https-proxy proxy-address
指定用于路由请求的 IP 或代理服务器地址,并省略 https:// 前缀。如果您的代理使用基本身份验证,则可以在 proxy-address 中包含用户名和密码。例如:
user:password@proxy-address
或者,您可以使用 --proxy-basic-authentication 选项在控制台中以交互方式指定这些值。
--no-proxy address
指定不使用代理的英文逗号分隔 IP 或网域的可选列表。
--remove
移除代理配置。
--proxy-basic-authentication
如果代理需要身份验证,请使用此选项以交互方式指定用户名和密码。然后,在您输入命令时,输入访问代理所需的用户名和密码。或者,您可以使用 --https-proxy 选项将这些值指定为 proxy-address 的一部分。
--h, --help
关于此命令的帮助。

示例

如需配置无需进行身份验证的 HTTPS 代理,请运行以下命令:

migctl setup proxy --https-proxy myproxy.com

如需配置 HTTPS 代理,同时指定未使用代理的网域,请运行以下命令:

migctl setup proxy --https-proxy myproxy.com --no-proxy localhost,mydomain.com

如果代理使用基本身份验证:

migctl setup proxy --https-proxy myproxy.com --proxy-basic-authentication

系统会提示您输入用户名和密码。

或者,您也可以在 proxy-address 中输入凭据:

migctl setup proxy --https-proxy user:pword@myproxy.com

如需移除代理配置,请运行以下命令:

migctl setup proxy --remove 

另请参阅

配置 HTTPS 代理

migctl source

执行与迁移来源相关的操作。

命令 说明
source create 将迁移来源添加到处理集群。
source delete 从处理集群中删除迁移来源。
source list 列出处理集群中的迁移来源配置。
来源状态 获取处理集群的迁移来源状态。

migctl source create

将迁移来源添加到处理集群。

命令 说明
source create compute-engine 将 Compute Engine 添加为迁移来源。
source create local-vmware 将 VMware 作为迁移来源添加到处理集群。
source create m2vm 将 Migrate to Virtual Machines 作为迁移来源添加到处理集群。

另请参阅

添加迁移来源

migctl source create compute-engine

将 Compute Engine 作为迁移来源添加到处理集群。

摘要

migctl source create compute-engine name --project project [--json-key service-account-json ]

位置参数

name
来源的名称。

标志

--project project
Compute Engine 来源类型的默认项目。
--json-key service-account-json
用于创建 Compute Engine 来源的服务账号的 JSON 密钥文件。如需了解详情,请参阅创建服务账号以将 Compute Engine 用作迁移来源
-h, --help
关于此命令的帮助。

示例

将 Compute Engine 添加为迁移来源。

migctl source create compute-engine my-ce-src --project myproject --zone us-west1-a

另请参阅

添加迁移来源

migctl source create local-vmware

将 VMware 作为迁移来源添加到处理集群。

摘要

migctl source create local-vmware name --vc vcenter --user user [flags]

位置参数

name
来源的名称。

标志

--dc datacenter
--vc host
指定 vCenter DNS 名称或 vCenter IP 地址。
--username user
有权访问 vCenter 的用户的名称。系统会提示您输入用户密码。
-h, --help
关于此命令的帮助。

示例

将 VMware 添加为迁移来源。

migctl source create local-vmware local-vmware-src --vc '1.2.3.4' --username 'admin'

另请参阅

添加迁移来源

migctl source create m2vm

将 Migrate to Virtual Machines 作为迁移来源添加到处理集群。

摘要

migctl source create m2vm name --project m2vm-service-project
--json-key path --location m2vm-service-location --m2vm-source m2vm-service-source
[ --target-project target-project ][ --target-json-key path ] [ --target-zone target-zone ]
[ --target-network target-network ] [ --target-subnet target-subnet ] [flags]

位置参数

name
来源的名称。

标志

-h, --help
有关 m2vm 的帮助。
--json-key string
用于 Migrate to Virtual Machines 项目的服务账号 json 密钥的路径。请参阅使用 Migrate to Virtual Machines 作为迁移来源
--location string
Migrate to Virtual Machines 服务位置,例如 us-central1。
--m2vm-source string
Migrate to Virtual Machines 来源名称。
--project string
Migrate to Virtual Machines 项目。
--target-json-key string
用于目标项目的服务账号 json 密钥的路径。如果留空,将与 Migrate to Virtual Machines 的 json 密钥相同。
--target-network string
克隆虚拟机部署的目标网络。
--target-project string
克隆虚拟机部署的目标项目。如果留空,将与 Migrate to Virtual Machines 项目相同。
--target-subnet string
克隆虚拟机部署的目标子网。
--target-zone string
克隆虚拟机部署的目标可用区。

示例

添加 Migrate to Virtual Machines 作为迁移来源。

migctl source create m2vm name --project m2vm-service-project --json-key m2vm-service-sa.json --location m2vm-service-location --m2vm-source m2vm-service-source

另请参阅

添加迁移来源

migctl source delete

从处理集群中删除迁移来源。

摘要

migctl source delete source-name [-f]

位置参数

source-name
要删除的源的名称,是您使用 migctl source create 创建源时指定的名称。

标志

-f
忽略错误并强制删除。
-h, --help
关于此命令的帮助。

示例

删除迁移来源。

migctl source delete my-source

尝试强制删除来源。

migctl source delete my-source -f

migctl source list

列出处理集群中的迁移来源配置。

摘要

migctl source list

标志

-h, --help
关于此命令的帮助。

migctl source list-vms

列出要迁移的虚拟机候选项。

摘要

migctl source list-vms [flags]

标志

--help
关于此命令的帮助。
--refresh
刷新库存,而不是使用缓存结果。
--wide
显示有关虚拟机的更多信息。

migctl 来源状态

获取处理集群的迁移来源状态。

摘要

migctl source status 

标志

-h, --help
关于此命令的帮助。
-v, --verbose
此命令的详细输出。

migctl version

输出 Migrate to Containers 和 migctl 的版本。

摘要

migctl version

标志

-h, --help
关于此命令的帮助。