1.9. 主机清单简介
主机清单管理和内部集群安装可使用多集群引擎 operator 中央基础架构管理功能。
继续阅读以了解有关主机清单和中央基础架构管理的更多信息:
1.9.1. 主机清单概览 复制链接链接已复制到粘贴板!
中央基础设施管理功能是 Red Hat OpenShift Container Platform 在多集群引擎操作员中安装的体验,专注于在裸机主机的生命周期内对其进行管理。
辅助安装程序是 OpenShift 容器平台的一种安装方法,它使用代理在目标主机上运行安装前验证,并使用中央服务来评估和跟踪安装进度。
Red Hat OpenShift 的基础架构 Operator 是一个多集群引擎 operator 组件,它管理和安装运行 Assisted Installer 服务的工作负载。
您可以使用控制台创建主机清单,它是裸机或虚拟机池,可用于创建本地 OpenShift Container Platform 集群。这些集群可以是独立的,具有用于控制平面的专用机器,也可以是托管控制平面,其中控制平面作为中心集群上的 pod 运行。
您可以使用 Zero Touch Provisioning (ZTP)使用控制台、API 或 GitOps 安装独立集群。有关 ZTP 的更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的在断开连接的环境中安装 GitOps ZTP 。
使用发现镜像引导后,机器将加入主机清单。Discovery Image 是一个 Red Hat CoreOS live 镜像,包含以下内容:
- 执行发现、验证和安装任务的代理。
- 在 hub 集群中访问服务所需的配置,包括端点、令牌和静态网络配置(如果适用)。
您为每个基础架构环境有一个发现镜像,这是一组共享一组通用属性的主机。InfraEnv 自定义资源定义表示此基础架构环境和关联的发现镜像。您可以通过在 InfraEnv 自定义资源中设置 osImageVersion 字段来指定用于 Discovery Image 的 Red Hat Core OS 版本。如果没有指定值,则使用最新的 Red Hat Core OS 版本。
主机引导和代理联系该服务后,该服务会在代表该主机的 hub 集群上创建一个新的 Agent 自定义资源。Agent 资源组成主机清单。
您可以稍后将清单中的主机作为 OpenShift 节点安装。代理将操作系统写入磁盘,以及必要的配置,并重启主机。
注意: Red Hat Advanced Cluster Management 和中央基础设施管理通过使用AgentClusterInstall资源支持 Nutanix 平台,这需要通过创建 Nutanix 虚拟机进行额外的配置。要了解更多信息,请参阅辅助安装程序文档中的可选:在 Nutanix 上安装。
1.9.2. 启用中央基础架构管理服务 复制链接链接已复制到粘贴板!
中央基础架构管理服务由 multicluster engine operator 提供,并部署 OpenShift Container Platform 集群。如果您安装了 Red Hat Advanced Cluster Management 并在中心集群上启用了MultiClusterHub Operator,则中央基础设施管理服务会自动部署,但在这种情况下您必须手动启用该服务。
请参见以下部分:
1.9.2.1. 先决条件 复制链接链接已复制到粘贴板!
在启用中央基础架构管理服务前,请查看以下先决条件:
- 您必须在受支持的 OpenShift Container Platform 版本中部署了 hub 集群,以及一个受支持的 Red Hat Advanced Cluster Management for Kubernetes 版本。
- 您的集线器集群需要访问互联网。
- 如果您在断开连接的环境中工作,则需要连接到具有互联网连接的内部或镜像注册表,以检索创建环境所需的图像。
- 您必须为裸机置备打开所需的端口。请参阅 OpenShift Container Platform 文档中的确保所需端口已打开。
- 您需要裸机主机自定义资源定义。
- 您需要 OpenShift Container Platform pull secret。如需更多信息,请参阅使用镜像 pull secret。
- 您需要一个配置的默认存储类。
- 仅对于断开连接的环境,请完成 OpenShift Container Platform 文档中网络远边缘集群的流程。
1.9.2.2. 创建裸机主机自定义资源定义 复制链接链接已复制到粘贴板!
在启用中央基础架构管理服务前,您需要一个裸机主机自定义资源定义。
运行以下命令,检查您已有一个裸机主机自定义资源定义:
oc get crd baremetalhosts.metal3.io
oc get crd baremetalhosts.metal3.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您有裸机主机自定义资源定义,输出会显示创建资源的日期。
- 如果没有资源,您会收到类似如下的错误:
Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "baremetalhosts.metal3.io" not found
Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "baremetalhosts.metal3.io" not foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您没有裸机主机自定义资源定义,请下载 metal3.io_baremetalhosts.yaml 文件,并通过运行以下命令来创建资源来应用内容:
oc apply -f
oc apply -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.2.3. 创建或修改 置备 资源 复制链接链接已复制到粘贴板!
在启用中央基础架构管理服务前,您需要一个 Provisioning 资源。
运行以下命令检查是否有
Provisioning资源:oc get provisioning
oc get provisioningCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您已有
Provisioning资源,请修改Provisioning资源。 -
如果您没有
Provisioning资源,您会收到No resources found错误。继续创建Provisioning资源。
-
如果您已有
修改
Provisioning资源。如果您已经有一个
Provisioning资源,如果 hub 集群安装在以下平台上之一,则必须修改资源:- 裸机
- Red Hat OpenStack Platform
- VMware vSphere
用户置备的基础架构(UPI)方法,平台为
None如果在其他平台上安装了 hub 集群,请继续 在断开连接的环境中启用中央基础架构管理,或者在连接的环境中启用中央基础架构管理。
运行以下命令,修改
Provisioning资源以允许 Bare Metal Operator 监视所有命名空间:
oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您没有
Provisioning资源,请创建Provisioning资源。创建以下
Provisioning资源 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 运行以下命令来应用内容:
oc apply -f
oc apply -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.2.4. 在断开连接的环境中启用中央基础架构管理 复制链接链接已复制到粘贴板!
要在断开连接的环境中启用中央基础架构管理,请完成以下步骤:
在与基础架构 Operator 相同的命名空间中创建
ConfigMap,为镜像 registry 指定ca-bundle.crt和registry.conf的值。您的文件ConfigMap可能类似以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注: 您必须将
mirror-by-digest-only设置为true,因为发行镜像是使用摘要指定的。unqualified-search-registries列表中的 registry 会自动添加到PUBLIC_CONTAINER_REGISTRIES环境变量中的身份验证忽略列表中。当验证受管集群的 pull secret 时,指定的 registry 不需要身份验证。-
编写代表您要使用每个
osImage请求发送的标头和查询参数的密钥对。如果您不需要这两个参数,请只针对标头或查询参数写入密钥对。
重要: 只有使用 HTTPS 时,才会加密标头和查询参数。确保使用 HTTPS 来避免安全问题。
创建名为
headers的文件并添加类似以下示例的内容:{ "Authorization": "Basic xyz" }{ "Authorization": "Basic xyz" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
query_params的文件并添加类似以下示例的内容:{ "api_key": "myexampleapikey", }{ "api_key": "myexampleapikey", }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从您创建的参数文件创建 secret。如果您只创建一个参数文件,请删除您尚未创建的文件的参数:
oc create secret generic -n multicluster-engine os-images-http-auth --from-file=./query_params --from-file=./headers
oc create secret generic -n multicluster-engine os-images-http-auth --from-file=./query_params --from-file=./headersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将 HTTPS
osImages与自签名或第三方 CA 证书搭配使用,请将证书添加到image-service-additional-caConfigMap中。要创建证书,请运行以下命令:oc -n multicluster-engine create configmap image-service-additional-ca --from-file=<file-name>
oc -n multicluster-engine create configmap image-service-additional-ca --from-file=<file-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在
agent_service_config.yaml文件中保存以下 YAML 内容来创建AgentServiceConfig自定义资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- 将
mirror_config替换为包含您的镜像 registry 配置详情的ConfigMap名称。 - 2
- 如果您使用不需要身份验证的镜像 registry,请包含可选的
unauthenticated_registry参数。此列表上的条目不会被验证,或者需要在 pull secret 中有一个条目。 - 3
- 将
img_volume_size替换为imageStorage字段的卷大小。此值指定分配多少存储空间来存储基本 Red Hat Enterprise Linux CoreOS 映像。最小值为10Gi,但最佳实践的值至少为50Gi,特别是当您选择默认图像集而不是使用osImages定义有限集合时。您需要为osImages中配置的每个 Red Hat Enterprise Linux CoreOS 实例至少留出2Gi的图像存储空间。 - 4
- 将
ocp_version替换为要安装的受支持的 OpenShift Container Platform 版本。 - 5
- 将
ocp_release_version替换为特定的安装版本,例如:49.83.202103251640-0。 - 6
- 使用 ISO url 替换
iso_url。您可以在 rhoc 中找到 ISO url 值。
如果您使用带有自签名或第三方 CA 证书的 HTTPS osImages,请在 OSImageCACertRef spec 中引用证书。
重要提示:如果您使用后期绑定功能,则创建集群时使用的 OpenShift Container Platform 发布映像必须相同。
您可以通过检查 assisted-service 和 assisted-image-service 部署并确保其 pod 已就绪,来验证您的中央基础架构管理服务是否健康。
1.9.2.5. 在连接的环境中启用中央基础架构管理 复制链接链接已复制到粘贴板!
要在连接的环境中启用中央基础架构管理,请通过在 agent_service_config.yaml 文件中保存以下 YAML 内容来创建 AgentServiceConfig 自定义资源:
- 1
- 使用
databaseStorage字段的卷大小替换db_volume_size,如10Gi。这个值指定为存储集群分配的存储量,如数据库表和数据库视图。所需的最小值为1Gi。如果有多个集群,您可能需要使用较高的值。 - 2
- 将
fs_volume_size替换为filesystemStorage字段的卷大小,例如每个集群为200M,每个受支持的 OpenShift Container Platform 版本为2-3Gi。所需的最小值为1Gi,但推荐的值为至少100Gi。这个值指定为存储集群的日志、清单和kubeconfig文件分配了多少存储。如果有多个集群,您可能需要使用较高的值。 - 3
- 将
img_volume_size替换为imageStorage字段的卷大小。此值指定分配多少存储空间来存储基本 Red Hat Enterprise Linux CoreOS 映像。最小值为10Gi,但最佳实践的值至少为50Gi,特别是当您选择默认图像集而不是使用osImages定义有限集合时。您需要为osImages中配置的每个 Red Hat Enterprise Linux CoreOS 实例至少留出2Gi的图像存储空间。
有关如何在osImages中定义自定义映像集的详细信息,请参阅在断开连接的环境中启用中央基础设施管理。
您的中央基础架构管理服务已配置。您可以通过检查 assisted-service 和 assisted-image-service 部署,确定 pod 已就绪并在运行,来验证其状态是否正常。
1.9.2.6. 使用 Assisted Installer 安装启用了 FIPS 的集群 复制链接链接已复制到粘贴板!
当您安装处于 FIPS 模式的受支持的 OpenShift Container Platform 集群时,请不要为安装程序指定任何 Red Hat Enterprise Linux 版本。
需要的访问权限: 您必须有权访问 AgentServiceConfig 和 AgentClusterInstall 资源。
If you install a {ocp-short} cluster version 4.15 and earlier, complete the following steps to update the `AgentServiceConfig` resource:
If you install a {ocp-short} cluster version 4.15 and earlier, complete the following steps to update the `AgentServiceConfig` resource:
使用以下命令登录到受管集群:
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
AgentServiceConfig资源中添加agent-install.openshift.io/service-image-base: el8注解。您的
AgentServiceConfig资源可能类似以下 YAML:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果安装了 OpenShift Container Platform 集群版本 4.16 及更新的版本,请完成以下步骤以更新 AgentServiceConfig 资源:
使用以下命令登录到受管集群:
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果
AgentServiceConfig资源中存在agent-install.openshift.io/service-image-base: el8注解,请删除注解。
1.9.2.7. 其他资源 复制链接链接已复制到粘贴板!
- 有关零接触配置的更多信息,请参阅 OpenShift Container Platform 文档中的网络远端挑战。
- 使用镜像 pull secret
1.9.3. 在 Amazon Web Services 上启用中央基础架构管理 复制链接链接已复制到粘贴板!
如果您在 Amazon Web Services 上运行 hub 集群并希望启用中央基础架构管理服务,请在 启用中央基础架构管理服务 后完成以下步骤:
运行以下命令,确保您在 hub 集群中登录,并查找在
assisted-image-service上配置的唯一域:oc get routes --all-namespaces | grep assisted-image-service
oc get routes --all-namespaces | grep assisted-image-serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您的域可能类似以下示例:
assisted-image-service-multicluster-engine.apps.<yourdomain>.com确保您已在 hub 集群中登录,并使用
NLBtype参数创建带有唯一域的新IngressController。请参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<yourdomain>添加到IngressController中的domain参数,方法是使用<yourdomain>替换nlb-apps.<domain>.com的<domain>。 运行以下命令来应用新的
IngressController:oc apply -f ingresscontroller.yaml
oc apply -f ingresscontroller.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过完成以下步骤,确保新
IngressController的spec.domain参数的值不与现有IngressController冲突:运行以下命令列出所有
IngressController:oc get ingresscontroller -n openshift-ingress-operator
oc get ingresscontroller -n openshift-ingress-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在每个
IngressController上运行以下命令,除了您刚才创建的ingress-controller-with-nlb外:oc edit ingresscontroller <name> -n openshift-ingress-operator
oc edit ingresscontroller <name> -n openshift-ingress-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果缺少
spec.domain报告,请添加一个与集群中公开的所有路由匹配的默认域,但nlb-apps.<domain>.com除外。如果提供了
spec.domain报告,请确保从指定范围中排除nlb-apps.<domain>.com路由。
运行以下命令来编辑
assisted-image-service路由以使用nlb-apps位置:oc edit route assisted-image-service -n <namespace>
oc edit route assisted-image-service -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认命名空间是您安装 multicluster engine operator 的位置。
在
assisted-image-service路由中添加以下行:metadata: labels: router-type: nlb name: assisted-image-servicemetadata: labels: router-type: nlb name: assisted-image-serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
assisted-image-service路由中,找到spec.host的 URL 值。URL 可能类似以下示例:assisted-image-service-multicluster-engine.apps.<yourdomain>.com
assisted-image-service-multicluster-engine.apps.<yourdomain>.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 URL 中的
apps替换为nlb-apps,以匹配新IngressController中配置的域。 要验证中央基础架构管理服务是否在 Amazon Web Services 上启用了,请运行以下命令来验证 pod 是否健康:
oc get pods -n multicluster-engine | grep assist
oc get pods -n multicluster-engine | grep assistCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
创建新主机清单,并确保下载 URL 使用新的
nlb-appsURL。
1.9.4. 使用控制台创建主机清单 复制链接链接已复制到粘贴板!
您可以创建一个主机清单(基础架构环境)来发现您可以在 OpenShift Container Platform 集群上安装的物理或虚拟机。
1.9.4.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
1.9.4.2. 创建主机清单 复制链接链接已复制到粘贴板!
完成以下步骤,使用控制台创建主机清单:
- 从控制台导航到 Infrastructure > Host inventory,再点 Create infrastructure environment。
在主机清单设置中添加以下信息:
- Name
-
您的基础设施环境的唯一名称。使用控制台创建基础架构环境也会使用您选择的名称为
InfraEnv资源创建新命名空间。如果使用命令行界面创建InfraEnv资源,并希望监控控制台中的资源,请对命名空间和InfraEnv使用相同的名称。 - Network type
- 指定添加到基础架构环境的主机是否使用 DHCP 或静态网络。静态网络配置需要额外的步骤。
- 位置
- 指定主机的地理位置。地理位置可用于定义主机所在的数据中心。
- 标签
- 可选字段,您可以在其中向使用此基础架构环境发现的主机添加标签。指定的位置会自动添加到标签列表中。
- 基础设施提供商凭证
- 选择基础设施提供商凭证会自动使用凭证中的信息填充拉取机密和 SSH 公钥字段。如需更多信息,请参阅为内部环境创建凭证。
- 拉取机密
- 您的 OpenShift Container Platform拉取密钥使您能够访问 OpenShift Container Platform 资源。如果您选择了基础架构供应商凭证,则会自动填充此字段。
- SSH 公钥
实现与主机安全通信的 SSH 密钥。您可以使用它来连接到主机以进行故障排除。安装集群后,您无法使用 SSH 密钥连接到主机。密钥通常位于您的
id_rsa.pub文件中。默认文件路径为~/.ssh/id_rsa.pub。如果您选择了包含 SSH 公钥值的基础架构供应商凭证,则会自动填充此字段。如果要为主机启用代理设置,请选择设置来启用它,并输入以下信息:
- HTTP 代理 URL
- HTTP 请求的代理 URL。
- HTTPS 代理 URL
- HTTP 请求的代理 URL。URL 必须以 HTTP 开头。不支持 HTTPS。如果没有提供值,则 HTTP 代理 URL 默认用于 HTTP 和 HTTPS 连接。
- 无代理域
-
您不想使用代理的域的列表,以逗号分隔。使用一个句点(
.)启动域名,以包含该域中的所有子域。添加一个星号(*)以绕过所有目的地的代理。您可以选择通过提供 NTP 池或服务器的 IP 或域名的逗号分隔列表来添加您自己的网络时间协议 (NTP) 源。
如果您需要控制台中不可用的高级配置选项,请继续使用命令行界面创建主机清单。
如果不需要高级配置选项,您可以继续配置静态网络(如果需要),并开始将主机添加到基础架构环境中。
1.9.4.3. 访问主机清单 复制链接链接已复制到粘贴板!
要访问主机清单,请在控制台中选择 Infrastructure > Host inventory。从列表中选择您的基础架构环境,以查看详情和主机。
1.9.4.4. 其他资源 复制链接链接已复制到粘贴板!
如果您作为裸机上配置托管的 control plane 的一部分创建了主机清单,请完成以下步骤:
1.9.5. 使用命令行界面创建主机清单 复制链接链接已复制到粘贴板!
您可以创建一个主机清单(基础架构环境)来发现您可以在 OpenShift Container Platform 集群上安装的物理或虚拟机。使用命令行界面而不是控制台进行自动部署,或用于以下高级配置选项:
- 自动将发现的主机绑定到现有集群定义
- 覆盖发现镜像的 ignition 配置
- 控制 iPXE 行为
- 为发现镜像修改内核参数
- 在发现阶段传递您希望主机信任的额外证书
- 选择要引导的 Red Hat CoreOS 版本用于测试,它不是最新版本的默认选项
1.9.5.1. 先决条件 复制链接链接已复制到粘贴板!
您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
1.9.5.2. 创建主机清单 复制链接链接已复制到粘贴板!
完成以下步骤,使用命令行界面创建主机清单(infrastructure 环境):
运行以下命令登录到您的 hub 集群:
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的资源创建一个命名空间。
创建名为
namespace.yaml的文件并添加以下内容:apiVersion: v1 kind: Namespace metadata: name: <your_namespace>
apiVersion: v1 kind: Namespace metadata: name: <your_namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对命名空间和基础架构环境使用相同的名称来监控您的控制台中的清单。
运行以下命令来应用 YAML 内容:
oc apply -f namespace.yaml
oc apply -f namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建包含 OpenShift Container Platform pull secret 的
Secret自定义资源。创建基础架构环境。
创建
infra-env.yaml文件并添加以下内容:根据需要替换值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
参阅 InfraEnv 表中的以下字段描述:
| 字段 | 可选或必需的 | 描述 |
|---|---|---|
|
| 选填 |
定义使用 |
|
| 选填 |
HTTP 请求的代理 URL。URL 必须以 |
|
| 选填 |
HTTP 请求的代理 URL。URL 必须以 |
|
| 选填 | 您不想用代理分开的域和 CIDR 列表。 |
|
| 选填 | 要添加到所有主机的网络时间协议(NTP)源(主机名或 IP)的列表。它们添加到使用其他选项(如 DHCP)配置的 NTP 源中。 |
|
| 选填 | 添加到所有主机中的 SSH 公钥,以便在发现阶段用于调试。发现阶段是主机引导发现镜像时。 |
|
| 必填 | 包含 pull secret 的 Kubernetes secret 名称。 |
|
| 选填 |
自动添加到 |
|
| 选填 |
合并高级网络配置,如主机的静态 IP、网桥和绑定。主机网络配置使用您选择的标签在一个或多个 |
|
| 选填 |
引用描述内部集群的现有 |
|
| 选填 |
修改 Red Hat CoreOS live 镜像的 ignition 配置,如添加文件。如果需要,请确保只使用 |
|
| 选填 | 选择以下支持的 CPU 架构之一:x86_64、aarch64、ppc64le 或 s390x。默认值为 x86_64。 |
|
| 选填 |
当设置为 |
|
| 选填 |
允许在发现镜像引导时修改内核参数。 |
|
| 选填 |
如果主机位于带有重新加密 man-in-the-middle (MITM)代理的网络中,或者主机需要为其他目的信任证书(如容器镜像 registry),则通常需要 PEM 编码的 X.509 证书。您的 |
|
| 选填 |
用于 |
|
| 选填 |
选择要下载的 ISO 文件类型。可能的选项包括 |
运行以下命令来应用 YAML 内容:
oc apply -f infra-env.yaml
oc apply -f infra-env.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证主机清单是否已创建,请使用以下命令检查状态:
oc describe infraenv myinfraenv -n <your_namespace>
oc describe infraenv myinfraenv -n <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
请参阅以下可显著属性列表:
-
条件:指示镜像是否已成功创建的标准 Kubernetes 条件。 -
isoDownloadURL:下载发现镜像的 URL。 -
createdTime:镜像最后一次创建的时间。如果您修改了InfraEnv,请确保在下载新镜像前更新时间戳。
注: 如果您修改 InfraEnv 资源,请通过查看 createdTime 属性来确保 InfraEnv 已创建新的 Discovery 镜像。如果您已经引导的主机,请使用最新的发现镜像再次引导它们。
如果需要,您可以继续配置静态网络,并开始将主机添加到基础架构环境中。
1.9.5.3. 其他资源 复制链接链接已复制到粘贴板!
1.9.6. 为基础架构环境配置高级网络 复制链接链接已复制到粘贴板!
对于在单个接口上需要 DHCP 之外的主机,您必须配置高级网络。所需的配置包括创建一个或多个 NMStateConfig 资源实例,用于描述一个或多个主机的网络。
每个 NMStateConfig 资源都必须包含一个与 InfraEnv 资源上的 nmStateConfigLabelSelector 匹配的标签。请参阅使用命令行界面创建主机清单, 以了解更多有关 nmStateConfigLabelSelector 的信息。
Discovery 镜像包含所有引用的 NMStateConfig 资源中定义的网络配置。启动后,每个主机会将每个配置与其网络接口进行比较,并应用适当的配置。
1.9.6.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
- 您必须创建主机清单。如需更多信息 ,请参阅使用控制台创建主机清单。
1.9.6.2. 使用命令行界面配置高级网络 复制链接链接已复制到粘贴板!
要使用命令行界面为您的基础架构环境配置高级网络,请完成以下步骤:
创建名为
nmstateconfig.yaml的文件并添加类似以下模板的内容。根据需要替换值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
| 字段 | 可选或必需的 | 描述 |
|---|---|---|
|
| 必填 | 使用与您要配置的主机或主机相关的名称。 |
|
| 必填 |
命名空间必须与 |
|
| 必填 |
添加一个或多个与 |
|
| 选填 |
描述 |
|
| 选填 |
描述主机上指定 |
注: 镜像服务会在更新任何 InfraEnv 属性时自动创建新镜像,或更改与其标签选择器匹配的 NMStateConfig 资源。如果您在创建 InfraEnv 资源后添加 NMStateConfig 资源,请通过检查 InfraEnv 中的 createdTime 属性来确保 InfraEnv 创建新的 Discovery 镜像。如果您已经引导的主机,请使用最新的发现镜像再次引导它们。
运行以下命令来应用 YAML 内容:
oc apply -f nmstateconfig.yaml
oc apply -f nmstateconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.6.3. 其他资源 复制链接链接已复制到粘贴板!
1.9.7. 使用发现镜像将主机添加到主机清单中 复制链接链接已复制到粘贴板!
创建主机清单(基础架构环境)后,您可以发现主机并将其添加到清单中。
要将主机添加到清单中,请选择下载 ISO 文件的方法并将其附加到每个服务器。例如,您可以使用虚拟介质下载 ISO 文件,或者将 ISO 文件写入 USB 驱动器。
重要: 要防止安装失败,请在安装过程中保持发现 ISO 介质连接到该设备,并将每个主机设置为一次从设备引导。
1.9.7.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
- 您必须创建主机清单。如需更多信息 ,请参阅使用控制台创建主机清单。
1.9.7.2. 使用控制台添加主机 复制链接链接已复制到粘贴板!
通过完成以下步骤下载 ISO 文件:
- 在控制台中选择 Infrastructure > Host inventory。
- 从列表中选择您的基础架构环境。
- 点 Add hosts 并选择 With Discovery ISO。
- 选择 Minimal 镜像文件 或 Full image file。
点 Generate Discovery ISO。
注意: 引导的主机出现在主机清单表中。显示主机可能需要几分钟时间。
- 批准每个主机,以便您可以使用它。您可以单击 Actions 并选择 Approve,从 inventory 表中选择主机。
1.9.7.3. 使用命令行界面添加主机 复制链接链接已复制到粘贴板!
在 isoDownloadURL 属性中下载 ISO 文件的 URL 处于 InfraEnv 资源的状态。如需有关 InfraEnv 资源的更多信息 ,请参阅使用命令行界面创建主机清单。
每个引导的主机在同一命名空间中创建一个 Agent 资源。
运行以下命令,以查看
InfraEnv自定义资源中的下载 URL:oc get infraenv -n <infra env namespace> <infra env name> -o jsonpath='{.status.isoDownloadURL}'oc get infraenv -n <infra env namespace> <infra env name> -o jsonpath='{.status.isoDownloadURL}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请参见以下输出:
https://assisted-image-service-assisted-installer.apps.example-acm-hub.com/byapikey/eyJhbGciOiJFUzI1NiIsInC93XVCJ9.eyJpbmZyYV9lbnZfaWQcTA0Y38sWVjYi02MTA0LTQ4NDMtODasdkOGIxYTZkZGM5ZTUifQ.3ydTpHaXJmTasd7uDp2NvGUFRKin3Z9Qct3lvDky1N-5zj3KsRePhAM48aUccBqmucGt3g/4.17/x86_64/minimal.iso
https://assisted-image-service-assisted-installer.apps.example-acm-hub.com/byapikey/eyJhbGciOiJFUzI1NiIsInC93XVCJ9.eyJpbmZyYV9lbnZfaWQcTA0Y38sWVjYi02MTA0LTQ4NDMtODasdkOGIxYTZkZGM5ZTUifQ.3ydTpHaXJmTasd7uDp2NvGUFRKin3Z9Qct3lvDky1N-5zj3KsRePhAM48aUccBqmucGt3g/4.17/x86_64/minimal.isoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意: 默认情况下,会提供最小的 ISO。您可以通过在
InfraEnv资源中将ImageType设置为full-iso来指定完整的 ISO。请参阅附加资源部分中的 命令行界面创建主机清单,以了解更多信息。使用 URL 下载 ISO 文件并使用 ISO 文件引导主机。
接下来,您需要批准每个主机。请参见以下步骤:
运行以下命令列出所有
代理:oc get agent -n <infra env namespace>
oc get agent -n <infra env namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会收到类似以下输出的输出:
NAME CLUSTER APPROVED ROLE STAGE 24a92a6f-ea35-4d6f-9579-8f04c0d3591e false auto-assign
NAME CLUSTER APPROVED ROLE STAGE 24a92a6f-ea35-4d6f-9579-8f04c0d3591e false auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用错误批准状态,从列表中
批准任何代理。运行以下命令:oc patch agent -n <infra env namespace> <agent name> -p '{"spec":{"approved":true}}' --type mergeoc patch agent -n <infra env namespace> <agent name> -p '{"spec":{"approved":true}}' --type mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认批准状态:
oc get agent -n <infra env namespace>
oc get agent -n <infra env namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会收到一个类似于以下输出的输出,其值为
true:NAME CLUSTER APPROVED ROLE STAGE 173e3a84-88e2-4fe1-967f-1a9242503bec true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 173e3a84-88e2-4fe1-967f-1a9242503bec true auto-assignCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.7.4. 使用 HTTP 或 HTTPS 托管 iPXE 工件 复制链接链接已复制到粘贴板!
您可以通过编辑 AgentServiceConfig 自定义资源中的 spec.iPXEHTTPRoute 字段来更改如何托管 iPXE 工件。
将该字段设置为 enabled,以将 HTTP 用于 iPXE 工件。
将该字段设置为 disabled,以将 HTTPS 用于 iPXE 工件。
默认值为 Disabled。请参阅以下示例,其中 spec.iPXEHTTPRoute 字段设置为 enabled :
如果将值设为 启用,则通过 HTTP 公开以下端点:
-
api/assisted-installer/v2/infra-envs/<id>/downloads/files?file_name=ipxe-scriptinassisted-service -
assisted-image-service中的boot-artifacts/和 images/<infra-env-id>/pxe-initrd
1.9.7.5. 其他资源 复制链接链接已复制到粘贴板!
-
要了解更多有关
InfraEnv资源的信息 ,请参阅 使用命令行界面创建主机清单。
1.9.8. 自动将裸机主机添加到主机清单中 复制链接链接已复制到粘贴板!
创建基础架构环境后,您可以发现主机并将其添加到主机清单中。您可以通过使裸机 Operator 与每个裸机主机的 Baseboard Management Controller (BMC)通信来自动引导基础架构环境的发现镜像。为每个主机创建一个 BareMetalHost 资源和相关 BMC secret。自动化由 BareMetalHost 上的标签设置,该标签引用您的基础架构环境。
自动化执行以下操作:
- 使用基础架构环境代表的发现镜像引导每个裸机主机
- 如果基础架构环境或任何关联的网络配置更新,请使用最新的发现镜像重启每个主机
-
在发现时,将每个
Agent资源与对应的BareMetalHost资源关联 -
根据
BareMetalHost的信息更新代理资源属性,如主机名、角色和安装磁盘 -
批准用作集群节点的
Agent
1.9.8.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
- 您必须创建主机清单。如需更多信息 ,请参阅使用控制台创建主机清单。
1.9.8.2. 使用控制台添加裸机主机 复制链接链接已复制到粘贴板!
完成以下步骤,使用控制台自动将裸机主机添加到主机清单中:
- 在控制台中选择 Infrastructure > Host inventory。
- 从列表中选择您的基础架构环境。
- 点 Add hosts 并选择 With BMC Form。
- 添加所需信息并点 Create。
要了解更多有关 BMC 地址格式的信息,请参阅附加资源部分中的 BMC 寻址。
1.9.8.3. 使用命令行界面添加裸机主机 复制链接链接已复制到粘贴板!
完成以下步骤,使用命令行界面自动将裸机主机添加到主机清单中。
通过应用以下 YAML 内容并替换需要的值来创建 BMC secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 命名空间必须与
InfraEnv的命名空间相同。
通过应用以下 YAML 内容并在需要时替换值来创建裸机主机:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 命名空间必须与
InfraEnv的命名空间相同。 - 2
- 可选: 使用主机名称替换。
- 3
- 可选: 可能的值为
master或worker。 - 4
- 名称必须与您的
InfrEnv的名称匹配,并位于同一命名空间中。 - 5
- 如果没有设置值,则会自动使用
metadata值。 - 6
- 确保 MAC 地址与您的其中一个主机接口的 MAC 地址匹配。
- 7
- 使用 BMC 的地址。如需更多信息,请参阅附加资源部分中的 带外管理 IP 地址和 BMC 寻址 的端口访问。
- 8
- 确保
credentialsName值与您创建的 BMC secret 的名称匹配。 - 9
- 可选: 选择安装磁盘。有关可用的 root 设备提示,请参阅 BareMetalHost spec。使用发现镜像引导主机并创建对应的
Agent资源后,会根据此提示设置安装磁盘。
打开主机后,镜像开始下载。这可能需要几分钟时间。主机被发现后,会自动创建 Agent 自定义资源。
1.9.8.4. 使用命令行界面删除受管集群节点 复制链接链接已复制到粘贴板!
要从受管集群中删除受管集群,需要一个在受支持的 OpenShift Container Platform 版本上运行的 hub 集群。节点引导所需的静态网络配置都必须可用。在删除代理和裸机主机时,请确保不会删除 NMStateConfig 资源。
1.9.8.4.1. 使用裸机主机删除受管集群节点 复制链接链接已复制到粘贴板!
如果您在 hub 集群中有一个裸机主机,并希望从受管集群中删除受管集群,请完成以下步骤:
在您要删除的节点的
BareMetalHost资源中添加以下注解:bmac.agent-install.openshift.io/remove-agent-and-node-on-delete: true
bmac.agent-install.openshift.io/remove-agent-and-node-on-delete: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除
BareMetalHost资源。将<bmh-name> 替换为BareMetalHost的名称:oc delete bmh <bmh-name>
oc delete bmh <bmh-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.8.4.2. 在没有裸机主机的情况下删除受管集群节点 复制链接链接已复制到粘贴板!
如果您没有 hub 集群上的裸机主机,并希望从受管集群中删除受管集群节点,您可以通过从 Agent 规格中删除 clusterDeploymentName 字段来取消绑定代理,或删除与您要删除的节点对应的 Agent 自定义资源。
如果要从 hub 集群中删除 Agent 资源,但不想从受管集群中删除该节点,您可以在删除前将 Agent 资源上的注解 agent.agent-install.openshift.io/skip-spoke-cleanup 设置为 true。
请参阅 OpenShift Container Platform 文档中的删除节点说明。
1.9.8.5. 绑定和取消绑定主机 复制链接链接已复制到粘贴板!
您可以通过在 Agent 自定义资源中设置 spec.clusterDeploymentName 字段或设置 {}bmac.agent-install.openshift.io/cluster-reference 裸机主机注解来将主机绑定到 Red Hat OpenShift Container Platform 集群。
{}bmac.agent-install.openshift.io/cluster-reference 裸机主机注解控制到 OpenShift Container Platform 集群的连接,并将主机绑定到特定的集群。
您可以使用以下三种方法之一使用 {}bmac.agent-install.openshift.io/cluster-reference 注解:
- 如果您没有在裸机主机中设置注解,则不会对主机应用更改。
- 如果您使用空字符串值设置注解,则主机 unbinds。
-
如果您设置了注解并使用 <
cluster-namespace>/<cluster-name> 格式的字符串值,主机绑定到ClusterDeployment自定义资源所代表的集群。
注: 如果主机所属的 InfraEnv 包含 cluster-reference 注解,则忽略 {}bmac.agent-install.openshift.io/cluster-reference 注解。
1.9.8.6. 其他资源 复制链接链接已复制到粘贴板!
- 有关零接触配置的更多信息,请参阅 OpenShift Container Platform 文档中的网络远边缘的集群。
- 要了解使用裸机主机所需的端口,请参阅 OpenShift Container Platform 文档中的带外管理 IP 地址的端口访问。
- 要了解根设备提示,请参阅 OpenShift Container Platform 文档中的安装后配置概述。
- 使用镜像 pull secret
- 为内部环境创建凭证
- 要了解有关扩展计算机器的更多信息,请参阅 OpenShift Container Platform 文档中的手动扩展计算机器集。
- 要了解有关 BMC 格式寻址的更多信息,请参阅 OpenShift Container Platform 文档中的BMC 寻址。
1.9.9. 管理主机清单 复制链接链接已复制到粘贴板!
您可以使用控制台管理主机清单并编辑现有主机,或者使用命令行界面并编辑 Agent 资源。
1.9.9.1. 使用控制台管理主机清单 复制链接链接已复制到粘贴板!
使用 Discovery ISO 成功引导的每个主机都显示为主机清单中的一行。您可以使用控制台编辑和管理您的主机。如果您手动引导主机且没有使用裸机 Operator 自动化,则必须在控制台中批准主机,才能使用它。已准备好作为 OpenShift 节点安装的主机具有 Available 状态。
1.9.9.2. 使用命令行界面管理主机清单 复制链接链接已复制到粘贴板!
Agent 资源代表每个主机。您可以在 Agent 资源中设置以下属性:
clusterDeploymentName如果要将此属性设置为您要使用的
ClusterDeployment的命名空间和名称,如果要将主机作为集群中的节点安装。可选:
role设置集群中主机的角色。可能的值有
master、worker和auto-assign。默认值为auto-assign。hostname设置主机的主机名。可选:如果主机自动被分配了有效的主机名,例如使用 DHCP。
已批准指明主机是否可以安装为 OpenShift 节点。此属性是一个布尔值,默认值为
False。如果您手动引导主机且没有使用裸机 Operator 自动化,则必须在安装主机前将此属性设置为True。installation_disk_id您选择的安装磁盘的 ID 在主机清单中可见。
installerArgs包含主机的 coreos-installer 参数的 JSON 格式的字符串。您可以使用此属性修改内核参数。请参见以下示例语法:
["--append-karg", "ip=192.0.2.2::192.0.2.254:255.255.255.0:core0.example.com:enp1s0:none", "--save-partindex", "4"]
["--append-karg", "ip=192.0.2.2::192.0.2.254:255.255.255.0:core0.example.com:enp1s0:none", "--save-partindex", "4"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ignitionConfigOverrides包含主机的 ignition 配置覆盖的 JSON 格式字符串。您可以使用此属性使用 ignition 将文件添加到主机。请参见以下示例语法:
{"ignition": "version": "3.1.0"}, "storage": {"files": [{"path": "/tmp/example", "contents": {"source": "data:text/plain;base64,aGVscGltdHJhcHBlZGluYXN3YWdnZXJzcGVj"}}]}}{"ignition": "version": "3.1.0"}, "storage": {"files": [{"path": "/tmp/example", "contents": {"source": "data:text/plain;base64,aGVscGltdHJhcHBlZGluYXN3YWdnZXJzcGVj"}}]}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow nodeLabels主机安装后应用到节点的标签列表。
Agent 资源的状态具有以下属性:
role设置集群中主机的角色。如果您之前在
Agent资源中设置了角色,则该值将显示在状态中。清单(inventory)包含主机上运行的代理发现的主机属性。
progress主机安装进度。
ntpSources主机的配置的网络时间协议(NTP)源。
conditions包含以下标准 Kubernetes 条件,并带有
True或False值:-
SpecSynced:如果成功应用所有指定的属性,则为
True。如果遇到一些错误,则为 false。 -
connected: 如果代理连接到安装服务没有混淆,则为
True。如果代理一段时间未联系安装服务,则为 false。 -
RequirementsMet:如果主机准备好开始安装,则为
True。 -
validated: 如果所有主机验证都通过,则为
True。 -
installed :如果主机作为 OpenShift 节点安装,则为
True。 -
Bound :如果主机绑定到集群,则为
True。 -
cleanup:如果删除
Agentresouce 的请求失败,则为False。
-
SpecSynced:如果成功应用所有指定的属性,则为
debugInfo包含下载安装日志和事件的 URL。
validationsInfo包含有关验证的信息,代理在主机被发现后运行,以确保安装成功。如果值为
False,则进行故障排除。installation_disk_id您选择的安装磁盘的 ID 在主机清单中可见。
1.9.9.3. 其他资源 复制链接链接已复制到粘贴板!
1.9.10. 为每个集群配置镜像注册表 复制链接链接已复制到粘贴板!
使用镜像注册表功能通过从每个AgentClusterInstall和InfraEnv资源引用专用镜像注册表配置对象来配置和管理每个集群的自定义注册表。
您可以在需要隔离注册表配置的多集群环境中为每个集群配置镜像注册表。
1.9.10.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须启用中央基础架构管理服务。如需更多信息 ,请参阅启用中央基础架构管理服务。
- 您必须设置您的镜像注册表。
-
辅助服务必须以KubeAPI模式运行。
1.9.10.2. 镜像所需图像 复制链接链接已复制到粘贴板!
确保所需的图像已镜像到注册表。完成以下步骤:
通过运行以下命令来镜像 Red Hat OpenShift Container Platform 发布映像:
oc adm release mirror \ -a pull_secret.json \ --from=quay.io/openshift-release-dev/ocp-release:$OCP_TAG \ --to=$REGISTRY_IP:$REGISTRY_PORT/openshift-release-dev/ocp-release \ --to-release-image=$REGISTRY_IP:$REGISTRY_PORT/openshift-release-dev/ocp-release:$OCP_TAG \
oc adm release mirror \ -a pull_secret.json \ --from=quay.io/openshift-release-dev/ocp-release:$OCP_TAG \ --to=$REGISTRY_IP:$REGISTRY_PORT/openshift-release-dev/ocp-release \ --to-release-image=$REGISTRY_IP:$REGISTRY_PORT/openshift-release-dev/ocp-release:$OCP_TAG \Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意:确保镜像注册表中的 OpenShift Container Platform 版本与映像集配置中的版本匹配。
通过运行以下命令来镜像辅助安装程序图像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.10.3. 应用具有更新配置的自定义资源定义 复制链接链接已复制到粘贴板!
设置镜像注册表后,应用所需的自定义资源定义来配置集群以使用镜像。完成以下步骤:
-
创建一个名为
mirror_registry.yaml的ConfigMap文件,其内容如下。根据需要替换值:
-
通过运行以下命令应用
ConfigMap:
oc apply -f mirror_registry.yaml
oc apply -f mirror_registry.yaml
确保您的
AgentClusterInstall和InfraEnv自定义资源定义引用镜像注册表配置。请参阅以下aci.yaml和infraenv.yaml的示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过运行以下命令更新并应用自定义资源定义:
oc apply -f aci.yaml oc apply -f infraenv.yaml
oc apply -f aci.yaml oc apply -f infraenv.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.10.4. 其他资源 复制链接链接已复制到粘贴板!
- 请参阅 OpenShift Container Platform 文档中的断开连接安装的镜像以了解有关镜像的更多信息。