5.5. 注册新集群
要使用 API 注册新集群定义,请使用 /v2/clusters 端点。
以下参数是必需的:
-
name -
openshift-version -
pull_secret -
cpu_architecture
有关注册新集群时可设置的字段的详情,请参阅 API viewer 中的 cluster-create-params 模型。设置 olm_operators 字段时,请参阅 其它资源,以了解安装 Operator 的详情。
先决条件
-
您已生成了一个有效的
API_TOKEN。令牌每 15 分钟过期一次。 - 您已下载了 pull secret。
-
可选: 您已将 pull secret 分配给
$PULL_SECRET变量。
流程
刷新 API 令牌:
$ source refresh-token使用以下方法之一注册新集群:
在请求中引用 pull secret 文件:
$ curl -s -X POST https://api.openshift.com/api/assisted-install/v2/clusters \ -H "Authorization: Bearer ${API_TOKEN}" \ -H "Content-Type: application/json" \ -d "$(jq --null-input \ --slurpfile pull_secret ~/Downloads/pull-secret.txt ' \ { \ "name": "testcluster", \ "openshift_version": "<version>", \ "control_plane_count": "<number>", \ "cpu_architecture" : "<architecture_name>", \ "base_dns_domain": "example.com", \ "pull_secret": $pull_secret[0] | tojson \ } \ ')" | jq '.id'将配置写入 JSON 文件,然后在请求中引用它:
$ cat << EOF > cluster.json { "name": "testcluster", "openshift_version": "<version>", "control_plane_count": "<number>", "base_dns_domain": "example.com", "network_type": "examplenetwork", "cluster_network_cidr":"11.111.1.0/14" "cluster_network_host_prefix": 11, "service_network_cidr": "111.11.1.0/16", "api_vips":[{"ip": ""}], "ingress_vips": [{"ip": ""}], "vip_dhcp_allocation": false, "additional_ntp_source": "clock.redhat.com,clock2.redhat.com", "ssh_public_key": "$CLUSTER_SSHKEY", "pull_secret": $PULL_SECRET } EOF$ curl -s -X POST "https://api.openshift.com/api/assisted-install/v2/clusters" \ -d @./cluster.json \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_TOKEN" \ | jq '.id'对于以上两个方法:
将
<version> 替换为 OpenShift Container Platform 版本,如下所示:-
要安装最新的 OpenShift 版本,请使用
x.y格式,如4.16版本为4.16.10。要安装特定的 OpenShift 版本,请使用x.y.z格式,如4.16.3。 -
要安装多架构计算集群,请为特定版本添加
4.16扩展,如-multi4.16-multi。 - 如果您要从 iSCSI 驱动器引导,请输入 OpenShift Container Platform 版本 4.15 或更高版本。
-
要安装最新的 OpenShift 版本,请使用
将
<number> 替换为集群中的 control plane 数量。对于单节点 OpenShift 集群,选项包括1,2个或更多用于带有 Arbiter 集群的双节点 OpenShift,对于多节点 OpenShift Container Platform 集群,3、4或5。如果省略,默认设置为3。注意-
control_plane_count字段替换high_availability_mode字段,该字段已弃用。详情请参阅 API 弃用通知。 - 目前,IBM Z® 和 IBM Power® 平台上不支持单节点 OpenShift。
-
Assisted Installer 在带有 x86_64 CPU 架构的裸机或用户管理的网络平台上支持 OpenShift Container Platform 4.18 及之后的版本中的
4或5control plane 节点。详情请参阅关于指定 control plane 节点数量。 -
Assisted Installer 支持 OpenShift Container Platform 4.19 及之后的版本中的
2个 control plane 节点,用于带有 Arbiter 集群拓扑的 Two-Node OpenShift。如果集群的 control plane 节点数量为2,则必须至少有一个额外的仲裁程序主机。详情请参阅 带有 Arbiter 资源要求的两个节点 OpenShift。
-
-
对于上面的第一种方法,将 <
;architecture_name> 替换为 CPU 架构。选项包括x86_64,arm64,ppc64le,s390x, 或multi。为多架构计算集群指定 multi。
将返回的
cluster_id分配给CLUSTER_ID变量,并导出它:$ export CLUSTER_ID=<cluster_id>注意如果关闭终端会话,则需要在新的终端会话中再次导出
CLUSTER_ID变量。检查新集群的状态:
$ curl -s -X GET "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_TOKEN" \ | jq
注册新的集群定义后,为集群创建基础架构环境。
在创建基础架构环境前,您无法在 Assisted Installer 用户界面中看到集群配置设置。
5.5.1. 安装 Operator 复制链接链接已复制到粘贴板!
您可以在安装过程中将 Operator 添加到集群来自定义部署。您可以单独安装一个或多个 Operator,或添加组成捆绑包的一组 Operator。如果需要高级选项,请在安装集群后添加 Operator。
此步骤是可选的。
5.5.1.1. 安装独立 Operator 复制链接链接已复制到粘贴板!
在选择用于安装的 Operator 前,您可以验证辅助安装程序中有哪些 Operator 可用。您还可以检查是否支持特定 OCP 版本、CPU 架构或平台。
您可以使用 assisted-service/v2/clusters/{cluster_id} 端点的 POST 方法以及设置 olm_operators 参数来设置所需的 Operator 定义。
Assisted Installer 允许您安装以下独立 Operator:
| 类别 | Operator | API 值 | 注释 |
|---|---|---|---|
| Storage | 逻辑卷管理器存储 |
| |
| OpenShift Data Foundation |
| ||
| 虚拟化 | OpenShift Virtualization |
| OpenShift Virtualization Operator 需要后端存储,并可能会根据以下条件在后台自动激活存储 Operator:
目前,IBM Z® 和 IBM Power® 不支持 OpenShift Virtualization。 |
| Migration Toolkit for Virtualization |
| 安装 Migration Toolkit for Virtualization Operator 会自动激活 OpenShift Virtualization Operator。对于单节点 OpenShift 安装,辅助安装程序也会激活 LVM Storage Operator。 | |
| OpenShift 沙盒容器 |
| ||
| Artificial Intelligence (AI) | OpenShift AI |
| 开发人员预览功能. |
| AMD GPU |
|
| |
| NVIDIA GPU |
|
| |
| 网络 | Kubernetes NMState |
| 目前,您无法在 Nutanix 或 Oracle Cloud Infrastructure (OCI)第三方平台上安装 Kubernetes NMState Operator。 |
| 补救方案 | 自助服务修复 |
| 您只能通过 API 安装此 Operator。 |
| 安全性和访问控制 | 内核模块管理 |
| 开发人员预览功能. |
| 平台操作和生命周期 | 多集群引擎 |
| 在没有 OpenShift Data Foundation 的情况下部署多集群引擎会导致以下存储配置:
|
| 调度 | 节点功能发现 |
| 开发人员预览功能. |
OpenShift AI、AMD GPU、内核模块管理、Node Feature Discovery、自助节点修复和 NVIDIA GPU Operator 集成只是一个技术预览功能。Developer Preview(开发人员预览)功能不被红帽支持,其功能可能并不完善且不是生产环境就绪。不要将开发人员预览功能用于生产环境或业务关键型工作负载。开发人员预览功能可以在之前可能地包含在红帽产品产品中提前访问即将推出的产品功能,使客户能够测试功能并在开发过程中提供反馈。这些功能可能没有任何文档,可能会随时被更改或删除,测试也会受到限制。红帽可能会提供在没有关联 SLA 的情况下提交对开发人员预览功能的反馈。
有关可作为捆绑包的一部分选择的其他 Operator,请参阅 安装捆绑包 Operator。
先决条件
- 您已查看了 使用 Operator 自定义安装 以概述您要安装的每个 Operator,以及其前提条件和依赖项。
流程
可选:运行以下命令,检查辅助安装程序中可用的 Operator:
$ curl -s "https://api.openshift.com/api/assisted-install/v2/supported-operators" -H "Authorization: Bearer ${API_TOKEN}" | jq .运行以下命令,检查 Operator 是否支持指定的 OCP 版本、CPU 架构或平台:
$ curl -s "https://api.openshift.com/api/assisted-install/v2/support-levels/features?openshift_version=4.13&cpu_architecture=x86_64&platform_type=baremetal" -H "Authorization: Bearer ${API_TOKEN}" | jq .features.SNO根据需要替换示例中的值:
-
对于
openshift_version,请指定 OpenShift Container Platform 版本号。此属性是必需的。 -
对于
cpu_architecture,指定x86_64,aarch64,arm64,ppc64le,s390x, 或multi。此属性是可选的。 -
对于
platform_type,指定baremetal、none、nutanix、vsphere或外部。此属性是可选的。
-
对于
以大写形式指定 Operator,例如
.NODE-FEATURE-DISCOVERYfor Node Feature Discovery,.OPENSHIFT-AIfor OpenShift AI,.OSCfor OpenShift 沙盒容器 .SELF-NODE-REMED-REMEDIATIONfor Self Node Remediation, 或.MTVfor Migration Toolkit for Virtualization。输出示例
"supported"如果可能的状态是"支持","dev-preview"、"tech-preview"和"unavailable"。
运行以下命令,获取指定 OCP 版本、CPU 架构或平台支持的 Operator 和其他功能的完整列表:
$ curl -s "https://api.openshift.com/api/assisted-install/v2/support-levels/features?openshift_version=4.13&cpu_architecture=x86_64&platform_type=baremetal" -H "Authorization: Bearer ${API_TOKEN}" | jq运行以下命令指定要安装的 Operator:
$ curl -s -X POST https://api.openshift.com/api/assisted-install/v2/clusters \ -H "Authorization: Bearer ${API_TOKEN}" \ -H "Content-Type: application/json" \ -d "$(jq --null-input \ --slurpfile pull_secret ~/Downloads/pull-secret.txt ' { "name": "testcluster", "openshift_version": "4.15", "cpu_architecture" : "x86_64", "base_dns_domain": "example.com", "olm_operators": [ { "name": "mce" } , { "name": "odf" } , { "name": "amd-gpu" } ] "pull_secret": $pull_secret[0] | tojson } ')" | jq '.id'注意在
olm_operators数组中,列出您要安装的 Operator。为 OpenShift Virtualization 指定cnvfor OpenShift Virtualization,mtvfor Virtualization,mcefor multicluster engine,odffor Red Hat OpenShift Data Foundation,lvmfor Logical Volume Manager Storage,openshift-aifor OpenShift AI,oscfor OpenShift 沙盒容器,nmstatefor Kubernetes NMState,amd-gpufor AMD GPU,kmmfor Kernel Module Management,node-feature-discoveryfor Node Feature Discovery,nvidia-gpufor NVIDIA andself-node-remediation用于自助服务修复。安装 Operator 会自动激活任何依赖的 Operator。
5.5.1.2. 安装捆绑包 Operator 复制链接链接已复制到粘贴板!
虽然您无法直接通过 API 安装 Operator 捆绑包,但您可以验证哪些 Operator 包含在捆绑包中,并单独指定每个 Operator。
Assisted Installer 目前支持以下 Operator 捆绑包:
Virtualization Operator 捆绑包 - 包含以下 Operator:
-
kube Descheduler Operator (
kube-descheduler) -
节点维护 Operator (
节点维护) -
Migration Toolkit for Virtualization Operator (
mtv) -
Kubernetes NMState Operator (
nmstate) -
隔离代理修复 Operator (
fence-agents-remediation) -
OpenShift Virtualization Operator (
cnv) -
Node Health Check Operator (
node-healthcheck) -
Local Storage Operator (LSO) Operator (
lso) -
Cluster Observability Operator (
cluster-observability) -
MetalLB Operator (
metallb) -
NUMA Resources Operator (
numaresources) -
OpenShift API for Data Protection Operator (
oadp)
-
kube Descheduler Operator (
OpenShift AI Operator 捆绑包 - 包含以下 Operator:
-
Kubernetes Authorino Operator (
作者) -
OpenShift Data Foundation Operator (
odf) -
OpenShift AI Operator (
openshift-ai) -
AMD GPU Operator (
amd-gpu) -
Node Feature Discovery Operator (
node-feature-discovery) -
NVIDIA GPU Operator (
nvidia-gpu) -
OpenShift Pipelines Operator (
管道) -
OpenShift Service Mesh Operator (
servicemesh) -
OpenShift Serverless Operator (
无服务器) -
内核模块管理 Operator (
kmm)
-
Kubernetes Authorino Operator (
OpenShift AI Operator 捆绑包只是一个技术预览功能。Developer Preview(开发人员预览)功能不被红帽支持,其功能可能并不完善且不是生产环境就绪。不要将开发人员预览功能用于生产环境或业务关键型工作负载。开发人员预览功能可以在之前可能地包含在红帽产品产品中提前访问即将推出的产品功能,使客户能够测试功能并在开发过程中提供反馈。这些功能可能没有任何文档,可能会随时被更改或删除,测试也会受到限制。红帽可能会提供在没有关联 SLA 的情况下提交对开发人员预览功能的反馈。
先决条件
- 您已参阅 使用 Operator 捆绑包自定义安装,以概述 Operator 捆绑包及其前提条件和相关 Operator。
流程
可选:运行以下命令来检查辅助安装程序中可用的 Operator 捆绑包:
$ curl -s "https://api.openshift.com/api/assisted-install/v2/operators/bundles" -H "Authorization: Bearer ${API_TOKEN}" | jq .可选:运行以下命令来检查哪些 Operator 与一个特定的捆绑包关联:
$ curl -s "https://api.openshift.com/api/assisted-install/v2/operators/bundles/virtualization" -H "Authorization: Bearer ${API_TOKEN}" | jq .为 Virtualization Operator 捆绑包指定
虚拟化,或为 OpenShift AI Operator 捆绑包指定openshift-ai。示例指定了 Virtualization Operator 捆绑包。输出示例
{ "description": "Run virtual machines alongside containers on one platform.", "id": "virtualization", "operators": [ "kube-descheduler", "node-maintenance", "mtv", "nmstate", "fence-agents-remediation", "cnv", "node-healthcheck", "cluster-observability" "metallb" "numaresources" "oadp" ], "title": "Virtualization" }运行以下命令,安装与捆绑包关联的 Operator:
$ curl -s -X POST https://api.openshift.com/api/assisted-install/v2/clusters \ -H "Authorization: Bearer ${API_TOKEN}" \ -H "Content-Type: application/json" \ -d "$(jq --null-input \ --slurpfile pull_secret ~/Downloads/pull-secret.txt ' { "name": "testcluster", "openshift_version": "4.15", "cpu_architecture" : "x86_64", "base_dns_domain": "example.com", "olm_operators": [ { "name": "node-healthcheck" } { "name": "fence-agents-remediation" } { "name": "kube-descheduler" } { "name": "mtv" } { "name": "nmstate" } { "name": "node-maintenance" } { "name": "cnv" } { "name": "nmstate" } { "name": "cluster-observability" } { "name": "metallb" } { "name": "numaresources" } { "name": "oadp" } ] "pull_secret": $pull_secret[0] | tojson } ')" | jq '.id'其中:
-
olm_operators数组指定您要安装的捆绑包中的 Operator。示例列出了虚拟化捆绑包的 Operator。 -
在虚拟化捆绑包中,指定
cnv会在后台自动安装lso。 在 OpenShift AI Operator 捆绑包中:
-
指定
nvidia-gpu会自动安装node-feature-discovery。 -
指定
amd-gpu会自动安装kmm。
-
指定
-
5.5.2. 将工作负载调度到 control plane 节点上运行 复制链接链接已复制到粘贴板!
使用 schedulable_masters 属性启用工作负载在 control plane 节点上运行。
先决条件
-
您已生成了一个有效的
API_TOKEN。令牌每 15 分钟过期一次。 -
您已创建了
$PULL_SECRET变量。 - 您要安装 OpenShift Container Platform 4.14 或更高版本。
流程
- 按照使用 Assisted Installer API 安装辅助安装程序的说明进行操作。
当您到达注册新集群的步骤时,将
schedulable_masters值设置为true,如下所示:$ curl https://api.openshift.com/api/assisted-install/v2/clusters/${CLUSTER_ID} \ -X PATCH \ -H "Authorization: Bearer ${API_TOKEN}" \ -H "Content-Type: application/json" \ -d ' { "schedulable_masters": true } ' | jq
5.5.3. 配置网络管理类型 复制链接链接已复制到粘贴板!
您可以通过 Assisted Installer 安装以下网络管理类型:
此步骤是可选的。如果没有定义网络管理类型,辅助安装程序默认将集群管理的网络应用到所有高可用性集群。对于单节点 OpenShift,Assisted Installer 默认应用用户管理的网络。
您可以通过在集群定义中添加 user_managed_networking 和 load_balancer 属性来定义网络管理类型,如下例所示:
$ curl -s -X POST https://api.openshift.com/api/assisted-install/v2/clusters \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "Content-Type: application/json" \
-d "$(jq --null-input \
--slurpfile pull_secret ~/Downloads/pull-secret.txt '
{
"name": "testcluster",
"openshift_version": "4.18",
"cpu_architecture" : "x86_64",
"base_dns_domain": "example.com",
"user_managed_networking": "false",
"load_balancer": {
"type": "cluster-managed"
}
"pull_secret": $pull_secret[0] | tojson
}
')" | jq '.id'
其中:
-
user_managed_networking为true或false。 -
load_balancer可以具有用户管理的类型或集群管理的。
您可以查看 swagger.yaml 文件中的 user_managed_networking 和 load_balancer 有效值。
5.5.3.1. 安装集群管理的网络 复制链接链接已复制到粘贴板!
选择集群管理的网络意味着 Assisted Installer 将配置一个标准网络拓扑。此配置包括一个集成的负载均衡器和虚拟路由,用于管理 API 和 Ingress VIP 地址。详情请参阅 网络管理类型。
先决条件
您要安装三个或更多 control plane 节点的 OpenShift Container Platform 集群。
注意目前,IBM Z® 和 IBM Power® 不支持集群管理的网络。
流程
要定义集群管理的网络,在集群定义中添加以下属性和值:
"user_managed_networking": false, "load_balancer": { "type": "cluster-managed" }其中
load_balancer属性是可选的。如果为这个配置省略,则对于单节点 OpenShift 自动将type设置为user-managed,或针对所有其他实施自动设置为cluster-managed。
其他资源
5.5.3.2. 安装用户管理的网络 复制链接链接已复制到粘贴板!
选择用户管理的网络将使用非标准网络拓扑部署 OpenShift Container Platform。如果要使用外部负载均衡器和 DNS 部署集群,或者您要在多个不同子网中部署集群节点,请选择用户管理的网络。
详情请参阅 网络管理类型。
Assisted Installer 允许您为用户管理的网络部署多个外部负载均衡器。
Oracle Cloud Infrastructure (OCI)仅适用于带有用户管理的网络配置的 OpenShift Container Platform 4.14。
流程
要定义用户管理的网络,在集群定义中添加以下属性:
"user_managed_networking": true,注意当用户管理的网络设置为
true时,不需要load_balancer属性,因为您要置备自己的负载均衡器。
网络验证
当您启用用户管理的网络时,以下网络验证会改变:
- L3 连接检查(ICMP)替换了 L2 检查(ARP)。
- 最大传输单元(MTU)验证验证所有接口的 MTU 值,而不只验证机器网络的 MTU 值。
其他资源
5.5.3.3. 使用用户管理的负载均衡器安装集群管理的网络 复制链接链接已复制到粘贴板!
使用用户管理的负载均衡器进行集群管理的联网是一个混合网络管理类型,专为需要通过外部控制负载平衡进行自动集群网络的情况而设计。这种方法允许用户提供一个或多个外部负载均衡器(如 API 负载均衡器和入口负载均衡器),同时保留集群管理网络中的裸机功能。
详情请参阅 网络管理类型。
使用用户管理的负载均衡器进行集群管理的网络只是一个技术预览功能。Developer Preview(开发人员预览)功能不被红帽支持,其功能可能并不完善且不是生产环境就绪。不要将开发人员预览功能用于生产环境或业务关键型工作负载。开发人员预览功能可以在之前可能地包含在红帽产品产品中提前访问即将推出的产品功能,使客户能够测试功能并在开发过程中提供反馈。这些功能可能没有任何文档,可能会随时被更改或删除,测试也会受到限制。红帽可能会提供在没有关联 SLA 的情况下提交对开发人员预览功能的反馈。
使用 Assisted Installer API 在裸机或 vSphere 平台上使用用户管理的负载均衡器部署集群管理的网络。
先决条件
- 您要安装 OpenShift Container Platform 版本 4.16 或更高版本。
- 您要在裸机或 vSphere 平台上安装。
- 您使用 IPv4 单堆栈网络。
- 您要安装三个或更多 control plane 节点的 OpenShift Container Platform 集群。
- 对于 vSphere 平台安装,您需要满足 vSphere 安装要求中指定的额外要求。
流程
将负载均衡器配置为可以从所有主机访问,并可访问以下服务:
- OpenShift Machine Config Operator (MCO)- 在 control plane 节点上。
- OpenShift API - 在 control plane 节点上。
- Ingress Controller - 在 compute (worker)节点上。
详情请参阅 配置用户管理的负载均衡器(第 1 步和 2 步 )。
配置集群的 DNS 记录,使其以用户管理的负载均衡器的前端 IP 地址为目标。您必须在负载均衡器上为集群 API 和应用程序的 DNS 服务器更新记录:
配置 DNS 记录以使您的主 API 可以访问:
<load_balancer_ip_address> <record_name> api.<cluster_name>.<base_domain>配置 DNS 记录,通过入口控制器将外部流量路由到您的应用程序:
<load_balancer_ip_address> <record_name> apps.<cluster_name>.<base_domain>对于 vSphere,配置 DNS 记录以支持网络中的内部 API 访问:
<load_balancer_ip_address> <record_name> api-int.<cluster_name>.<base_domain>
详情请参阅 配置用户管理的负载均衡器(第 3 步)。
在 Assisted Installer API 集群定义中添加以下配置:
将
user_managed_networking和load_balancer字段设置为以下值:"user_managed_networking": false, "load_balancer": { "type": "user-managed" }详情请参阅 更改网络管理类型。
指定 Ingress 和 API VIP。它们应当与负载均衡器 IP 地址对应:
"ingress_vips": [ { "cluster_id": "<cluster-id>", "ip": "<load-balancer-ip>" } ], "api_vips": [ { "cluster_id": "<cluster-id>", "ip": "<load-balancer-ip>" } ]指定机器网络列表以确保以下内容:
- 每个节点至少有一个网卡(NIC),至少有一台机器网络 IP 地址。
负载均衡器 IP (也是 API VIP 和 Ingress VIP)至少包含在其中一个机器网络中。
Example
"machine_networks": [ { "cidr": "<hosts-cidr-1>", "cluster_id": "<cluster-id>" }, { "cidr": "<hosts-cidr-2>", "cluster_id": "<cluster-id>" }, { "cidr": "<load-balancer-cidr>", "cluster_id": "<cluster-id>" } ]
如需了解更多详细信息,请参阅 机器网络。
网络验证
当您启用此网络管理类型时,以下网络验证会改变:
- L3 连接检查(ICMP)替换了 L2 检查(ARP)。
- 最大传输单元(MTU)验证验证所有接口的 MTU 值,而不只验证机器网络的 MTU 值。