1.7. 使用 Control Plane Migration Assistant (CPMA) 迁移 control plane 设置
1.7.1. 了解 Control Plane Migration Assistant
Control Plane Migration Assistant (CPMA) 是一个基于 CLI 的工具,它可帮助您将 control plane 从 OpenShift Container Platform 3.7(或更新版本)迁移到 OpenShift Container Platform 4.2。CPMA 处理 OpenShift Container Platform 3 配置文件并生成自定义资源 (CR) 清单文件,这些文件由 OpenShift Container Platform 4.2 Operator 使用。
因为 OpenShift Container Platform 3 和 4 的配置差别很大,所以不是所有的参数都会被处理。CPMA 可生成报告,描述功能是否被全面支持、部分支持或根本不支持。
配置字段
CPMA 使用 Kubernetes 和 OpenShift Container Platform API 来访问 OpenShift Container Platform 3 集群中的以下配置文件:
-
master 配置文件(默认为
/etc/origin/master/master-config.yaml
) -
CRI-O 配置文件(默认为
/etc/crio/crio.conf
) -
etcd 配置文件(默认为
/etc/etcd/etcd.conf
) -
镜像 registry 文件(默认为
/etc/containers/registries.conf
) 依赖性配置文件:
- 密码文件(例如: HTPasswd)
- ConfigMaps
- secret
CR 清单
CPMA 为以下配置生成 CR 清单:
API 服务器 CA 证书:
100_CPMA-cluster-config-APISecret.yaml
注意如果您使用的是未签名的 API 服务器 CA 证书,则必须手动将证书添加到目标集群中。
-
CRI-O:
100_CPMA-crio-config.yaml
-
集群资源配额:
100_CPMA-cluster-quota-resource-x.yaml
-
项目资源配额:
100_CPMA-resource-quota-x.yaml
-
可移植镜像 registry(
/etc/registries/registries.conf
)和可移植镜像策略(etc/origin/master/master-config.yam
):100_CPMA-cluster-config-image.yaml
-
OAuth 提供程序:
100_CPMA-cluster-config-oauth.yaml
-
项目配置:
100_CPMA-cluster-config-project.yaml
-
调度程序:
100_CPMA-cluster-config-scheduler.yaml
-
SDN:
100_CPMA-cluster-config-sdn.yaml
1.7.2. 安装 Control Plane Migration Assistant
您可以从红帽客户门户网站下载 Control Plane Migration Assistant (CPMA) 二进制文件,并在 Linux 、MacOSX 或者 Windows 操作系统中安装它。
流程
-
在 Red Hat 客户门户网站中,导航至 Downloads
Red Hat OpenShift Container Platform。 - 在 Download Red Hat OpenShift Container Platform 页面中,从 Product Variant 列表中选择 Red Hat OpenShift Container Platform 。
- 从 Version 列表中选择 CPMA 1.0 for RHEL 7。这个二进制文件适用于 RHEL 7 和 RHEL 8。
-
点 Download Now 为 Linux 或 MacOSX 下载
cpma
,或为 Windows 下载cpma.exe
。 -
对于 Linux 或 MacOSX,把文件保存在由
$PATH
定义的目录中;对于 Windows,把文件保存在由%PATH%
定义的目录中。 对于 Linux,把文件设置为可执行:
$ sudo chmod +x cpma
1.7.3. 使用 Control Plane Migration Assistant
Control Plane Migration Assistant (CPMA) 生成 CR 清单,由 OpenShift Container Platform 4.2 Operator 使用,并产生包括哪些 OpenShift Container Platform 3 的功能被完全支持、部分支持或根本不支持的报告。
CPMA 可在远程模式下运行,使用 SSH 从源集群中检索配置文件,也可以使用本地模式,使用源集群配置文件的本地副本获取配置文件。
先决条件
- 源集群必须是 OpenShift Container Platform 3.7 或更高版本。
- 必须将源集群更新至最新的同步版本。
- 必须在源集群中运行环境健康检查来确定没有诊断错误或警告。
- CPMA 二进制文件必须是可执行文件。
-
必须具有源集群的
cluster-admin
权限。
流程
登陆到 OpenShift Container Platform 3 集群:
$ oc login https://<master1.example.com> 1
- 1
- OpenShift Container Platform 3 主(master)节点。您必须登录到集群以接收 Kubernetes 和 OpenShift Container Platform API 的令牌。
运行 CPMA。根据每个提示输入,如下例所示:
$ cpma --manifests=false 1 ? Do you wish to save configuration for future use? true ? What will be the source for OCP3 config files? Remote host 2 ? Path to crio config file /etc/crio/crio.conf ? Path to etcd config file /etc/etcd/etcd.conf ? Path to master config file /etc/origin/master/master-config.yaml ? Path to node config file /etc/origin/node/node-config.yaml ? Path to registries config file /etc/containers/registries.conf ? Do wish to find source cluster using KUBECONFIG or prompt it? KUBECONFIG ? Select cluster obtained from KUBECONFIG contexts master1-example-com:443 ? Select master node master1.example.com ? SSH login root 3 ? SSH Port 22 ? Path to private SSH key /home/user/.ssh/openshift_key ? Path to application data, skip to use current directory . INFO[29 Aug 19 00:07 UTC] Starting manifest and report generation INFO[29 Aug 19 00:07 UTC] Transform:Starting for - API INFO[29 Aug 19 00:07 UTC] APITransform::Extract INFO[29 Aug 19 00:07 UTC] APITransform::Transform:Reports INFO[29 Aug 19 00:07 UTC] Transform:Starting for - Cluster INFO[29 Aug 19 00:08 UTC] ClusterTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportQuotas INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportPVs INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNamespaces INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNodes INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportRBAC INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportStorageClasses INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Crio INFO[29 Aug 19 00:08 UTC] CrioTransform::Extract WARN[29 Aug 19 00:08 UTC] Skipping Crio: No configuration file available INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Docker INFO[29 Aug 19 00:08 UTC] DockerTransform::Extract INFO[29 Aug 19 00:08 UTC] DockerTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Transform:Starting for - ETCD INFO[29 Aug 19 00:08 UTC] ETCDTransform::Extract INFO[29 Aug 19 00:08 UTC] ETCDTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Transform:Starting for - OAuth INFO[29 Aug 19 00:08 UTC] OAuthTransform::Extract INFO[29 Aug 19 00:08 UTC] OAuthTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Transform:Starting for - SDN INFO[29 Aug 19 00:08 UTC] SDNTransform::Extract INFO[29 Aug 19 00:08 UTC] SDNTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Image INFO[29 Aug 19 00:08 UTC] ImageTransform::Extract INFO[29 Aug 19 00:08 UTC] ImageTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Project INFO[29 Aug 19 00:08 UTC] ProjectTransform::Extract INFO[29 Aug 19 00:08 UTC] ProjectTransform::Transform:Reports INFO[29 Aug 19 00:08 UTC] Flushing reports to disk INFO[29 Aug 19 00:08 UTC] Report:Added: report.json INFO[29 Aug 19 00:08 UTC] Report:Added: report.html INFO[29 Aug 19 00:08 UTC] Successfully finished transformations
如果您没有指定输出目录,CPMA 会在当前目录中创建以下文件和目录:
-
cpma.yaml
文件:运行 CPMA 时提供的配置选项 -
master1.example.com/
: master 节点中的配置文件 -
report.json
: JSON 格式的报告 -
report.html
: HTML 格式的报告
-
-
在浏览器中打开
report.html
文件来查看 CPMA 报告。 如果生成 CR 清单,将 CR 清单应用到 OpenShift Container Platform 4.2 集群,如下例所示:
$ oc apply -f 100_CPMA-cluster-config-secret-htpasswd-secret.yaml