基于代理的安装方法提供了灵活性,您可以通过任何您选择的方式启动本地服务器。它结合了辅助安装服务的易用性和脱机运行的能力,包括在隔离的环境中。基于代理的安装是 OpenShift Container Platform 安装程序的子命令。它生成一个可启动的 ISO 镜像,其中包含部署 OpenShift Container Platform 集群所需的所有信息,以及可用的发行版镜像。
配置格式与安装程序配置的基础架构和用户配置的基础架构安装方法相同。基于代理的安装程序还可以选择生成或接受零接触配置 (ZTP) 自定义资源。ZTP 允许您使用裸机设备的声明式配置来配置新的边缘站点。
CPU 架构 | 连接安装 | 断开连接安装 |
---|---|---|
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
作为 OpenShift Container Platform 用户,您可以在断开连接的环境中利用辅助安装程序托管服务的优势。
基于代理的安装包含一个可启动的 ISO,其中包含辅助发现代理和辅助服务。两者都是执行集群安装所必需的,但后者仅在一个主机上运行。
目前,IBM Z® ( |
openshift-install agent create image
子命令根据您提供的输入生成一个临时 ISO。您可以选择通过以下清单提供输入
首选
install-config.yaml
agent-config.yaml
可选:ZTP 清单
cluster-manifests/cluster-deployment.yaml
cluster-manifests/agent-cluster-install.yaml
cluster-manifests/pull-secret.yaml
cluster-manifests/infraenv.yaml
cluster-manifests/cluster-image-set.yaml
cluster-manifests/nmstateconfig.yaml
mirror/registries.conf
mirror/ca-bundle.crt
在引导过程开始时,其中一个控制平面主机运行 Assisted Service,最终成为引导主机。此节点称为**Rendezvous 主机**(节点 0)。Assisted Service 确保所有主机都满足要求,并触发 OpenShift Container Platform 集群部署。所有节点都将 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像写入磁盘。非引导节点重新引导并启动集群部署。节点重新引导后,Rendezvous 主机重新引导并加入集群。引导完成,集群部署完成。
您可以通过openshift-install agent create image
子命令为以下拓扑安装断开连接的 OpenShift Container Platform 集群
**单节点 OpenShift Container Platform 集群 (SNO)**:充当主节点和工作节点的节点。
**三节点 OpenShift Container Platform 集群**: 一个紧凑型集群,具有三个也充当工作节点的主节点。
**高可用性 OpenShift Container Platform 集群 (HA)**:三个主节点和任意数量的工作节点。
以下拓扑的推荐集群资源
拓扑 | 控制平面节点数 | 计算节点数 | vCPU | 内存 | 存储 |
---|---|---|---|---|---|
单节点集群 |
1 |
0 |
8 个 vCPU |
16 GB RAM |
120 GB |
紧凑型集群 |
3 |
0 或 1 |
8 个 vCPU |
16 GB RAM |
120 GB |
HA 集群 |
3 |
2 个及以上 |
8 个 vCPU |
16 GB RAM |
120 GB |
在install-config.yaml
中,指定要执行安装的平台。支持以下平台:
baremetal (裸机)
vsphere
none
对于平台
|
对于许多 OpenShift Container Platform 客户而言,在任何系统投入生产之前,都需要某种程度的合规性或法规遵从性。这种合规性可能由国家标准、行业标准或组织的企业治理框架强制执行。联邦信息处理标准 (FIPS) 合规性是在高度安全的环境中确保仅允许使用受支持的加密技术的最关键组件之一。
要为您的集群启用 FIPS 模式,必须从配置为在 FIPS 模式下运行的 Red Hat Enterprise Linux (RHEL) 计算机运行安装程序。有关在 RHEL 上配置 FIPS 模式的更多信息,请参阅将 RHEL 切换到 FIPS 模式。 在 FIPS 模式下启动 Red Hat Enterprise Linux (RHEL) 或 Red Hat Enterprise Linux CoreOS (RHCOS) 时,OpenShift Container Platform 核心组件仅在 x86_64、ppc64le 和 s390x 架构上使用已提交给 NIST 进行 FIPS 140-2/140-3 验证的 RHEL 加密库。 |
在集群部署期间,当在您的集群中部署 Red Hat Enterprise Linux CoreOS (RHCOS) 机器时,将应用联邦信息处理标准 (FIPS) 更改。对于 Red Hat Enterprise Linux (RHEL) 机器,您必须在计划用作工作机的机器上安装操作系统时启用 FIPS 模式。
您可以通过首选方法install-config.yaml
和agent-config.yaml
启用 FIPS 模式。
您必须在install-config.yaml
文件中将fips
字段的值设置为True
apiVersion: v1
baseDomain: test.example.com
metadata:
name: sno-cluster
fips: True
可选:如果您使用的是 GitOps ZTP 清单,则必须在agent-cluster-install.yaml
文件中的Agent-install.openshift.io/install-config-overrides
字段中将fips
的值设置为True
apiVersion: extensions.hive.openshift.io/v1beta1
kind: AgentClusterInstall
metadata:
annotations:
agent-install.openshift.io/install-config-overrides: '{"fips": True}'
name: sno-cluster
namespace: sno-cluster-test
您可以在agent-config.yaml
文件中为集群上的每个主机进行其他配置,例如网络配置和根设备提示。
对于您配置的每个主机,您必须提供主机上接口的 MAC 地址以指定您正在配置的主机。 |
集群中的每个主机都分配有master
或worker
的角色。您可以使用role
参数在agent-config.yaml
文件中为每个主机定义角色。如果您不为主机分配角色,则将在安装期间随机分配角色。
建议您明确定义主机角色。
必须将rendezvousIP
分配给具有master
角色的主机。这可以通过手动方式完成,也可以通过允许基于 Agent 的安装程序分配角色来完成。
您不需要为 Rendezvous 主机明确定义 例如,如果您有 4 个主机,其中 3 个主机明确定义为具有 |
apiVersion: v1beta1
kind: AgentConfig
metadata:
name: example-cluster
rendezvousIP: 192.168.111.80
hosts:
- hostname: master-1
role: master
interfaces:
- name: eno1
macAddress: 00:ef:44:21:e6:a5
- hostname: master-2
role: master
interfaces:
- name: eno1
macAddress: 00:ef:44:21:e6:a6
- hostname: master-3
role: master
interfaces:
- name: eno1
macAddress: 00:ef:44:21:e6:a7
- hostname: worker-1
role: worker
interfaces:
- name: eno1
macAddress: 00:ef:44:21:e6:a8
rootDeviceHints
参数使安装程序能够将 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像置备到特定设备。安装程序按发现设备的顺序检查设备,并将发现的值与提示值进行比较。安装程序使用第一个与提示值匹配的已发现设备。配置可以组合多个提示,但设备必须匹配所有提示才能使安装程序选择它。
子字段 | 描述 |
---|---|
|
包含 Linux 设备名称(例如 |
|
包含 SCSI 总线地址(如 |
|
包含供应商特定设备标识符的字符串。提示可以是实际值的子字符串。 |
|
包含设备供应商或制造商名称的字符串。提示可以是实际值的子字符串。 |
|
包含设备序列号的字符串。提示必须与实际值完全匹配。 |
|
表示设备以千兆字节为单位的最小大小的整数。 |
|
包含唯一存储标识符的字符串。提示必须与实际值完全匹配。如果您使用 |
|
一个布尔值,指示设备是否应为旋转磁盘 (true) 或不是 (false)。 |
- name: master-0
role: master
rootDeviceHints:
deviceName: "/dev/sda"
生成 agent ISO 时必须知道 **Rendezvous IP**,以便在初始引导期间所有主机都可以检查辅助服务。如果使用动态主机配置协议 (DHCP) 服务器分配 IP 地址,则必须将 `rendezvousIP` 字段设置为将成为已部署控制平面一部分的主机之一的 IP 地址。在没有 DHCP 服务器的环境中,您可以静态定义 IP 地址。
除了静态 IP 地址外,您还可以应用任何 NMState 格式的网络配置。这包括 VLAN 和网卡绑定。
您必须指定 `rendezvousIP` 字段的值。`networkConfig` 字段可以留空。
apiVersion: v1alpha1
kind: AgentConfig
metadata:
name: sno-cluster
rendezvousIP: 192.168.111.80 (1)
1 | Rendezvous 主机的 IP 地址。 |
首选方法:`install-config.yaml` 和 `agent-config.yaml`
cat > agent-config.yaml << EOF
apiVersion: v1alpha1
kind: AgentConfig
metadata:
name: sno-cluster
rendezvousIP: 192.168.111.80 (1)
hosts:
- hostname: master-0
interfaces:
- name: eno1
macAddress: 00:ef:44:21:e6:a5 (2)
networkConfig:
interfaces:
- name: eno1
type: ethernet
state: up
mac-address: 00:ef:44:21:e6:a5
ipv4:
enabled: true
address:
- ip: 192.168.111.80 (3)
prefix-length: 23 (4)
dhcp: false
dns-resolver:
config:
server:
- 192.168.111.1 (5)
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.111.1 (6)
next-hop-interface: eno1
table-id: 254
EOF
1 | 如果未为 `rendezvousIP` 字段指定值,则将从 `networkConfig` 字段中指定的静态 IP 地址中选择一个地址。 |
2 | 主机上接口的 MAC 地址,用于确定将配置应用于哪个主机。 |
3 | 目标裸机主机的静态 IP 地址。 |
4 | 目标裸机主机的静态 IP 地址的子网前缀。 |
5 | 目标裸机主机的 DNS 服务器。 |
6 | 节点流量的下一跳地址。这必须与为指定接口设置的 IP 地址位于同一子网中。 |
可选方法:GitOps ZTP 清单
GitOps ZTP 自定义资源的可选方法包含 6 个自定义资源;您可以在 `nmstateconfig.yaml` 文件中配置静态 IP。
apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
name: master-0
namespace: openshift-machine-api
labels:
cluster0-nmstate-label-name: cluster0-nmstate-label-value
spec:
config:
interfaces:
- name: eth0
type: ethernet
state: up
mac-address: 52:54:01:aa:aa:a1
ipv4:
enabled: true
address:
- ip: 192.168.122.2 (1)
prefix-length: 23 (2)
dhcp: false
dns-resolver:
config:
server:
- 192.168.122.1 (3)
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.122.1 (4)
next-hop-interface: eth0
table-id: 254
interfaces:
- name: eth0
macAddress: 52:54:01:aa:aa:a1 (5)
1 | 目标裸机主机的静态 IP 地址。 |
2 | 目标裸机主机的静态 IP 地址的子网前缀。 |
3 | 目标裸机主机的 DNS 服务器。 |
4 | 节点流量的下一跳地址。这必须与为指定接口设置的 IP 地址位于同一子网中。 |
5 | 主机上接口的 MAC 地址,用于确定将配置应用于哪个主机。 |
Rendezvous IP 从 `config` 字段中指定的静态 IP 地址中选择。
本节介绍配置为使用平台 `none` 选项的基于 Agent 的 OpenShift Container Platform 安装的要求。
在尝试在虚拟化或云环境中安装 OpenShift Container Platform 集群之前,请查看在未经测试的平台上部署 OpenShift Container Platform 的指南中的信息。 |
在 OpenShift Container Platform 部署中,以下组件需要 DNS 名称解析
Kubernetes API
OpenShift Container Platform 应用通配符
控制平面和计算机器
Kubernetes API、控制平面机器和计算机器也需要反向 DNS 解析。
DNS A/AAAA 或 CNAME 记录用于名称解析,PTR 记录用于反向名称解析。反向记录很重要,因为 Red Hat Enterprise Linux CoreOS (RHCOS) 使用反向记录设置所有节点的主机名,除非主机名由 DHCP 提供。此外,反向记录用于生成 OpenShift Container Platform 运行所需的证书签名请求 (CSR)。
建议使用 DHCP 服务器为每个集群节点提供主机名。 |
使用平台 `none` 选项的 OpenShift Container Platform 集群需要以下 DNS 记录,并且必须在安装之前到位。在每个记录中,`
组件 | 记录 | 描述 | |
---|---|---|---|
Kubernetes API |
|
一个 DNS A/AAAA 或 CNAME 记录和一个 DNS PTR 记录,用于标识 API 负载均衡器。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 |
|
|
一个 DNS A/AAAA 或 CNAME 记录和一个 DNS PTR 记录,用于在内部标识 API 负载均衡器。集群内的所有节点都必须能够解析这些记录。
|
||
路由 |
|
一个通配符 DNS A/AAAA 或 CNAME 记录,它引用应用程序入口负载均衡器。应用程序入口负载均衡器以运行 Ingress Controller Pod 的机器为目标。Ingress Controller Pod 默认情况下运行在计算机器上。集群外部的客户端和集群内的所有节点都必须能够解析这些记录。 例如,`console-openshift-console.apps.<cluster_name>.<base_domain>` 用作指向 OpenShift Container Platform 控制台的通配符路由。 |
|
控制平面机器 |
|
DNS A/AAAA 或 CNAME 记录和 DNS PTR 记录,用于标识每个控制平面节点的机器。集群内的节点必须能够解析这些记录。 |
|
计算机器 |
|
DNS A/AAAA 或 CNAME 记录和 DNS PTR 记录,用于标识每个工作节点的机器。集群内的节点必须能够解析这些记录。 |
在 OpenShift Container Platform 4.4 及更高版本中,您无需在 DNS 配置中指定 etcd 主机和 SRV 记录。 |
您可以使用 `dig` 命令来验证名称和反向名称解析。 |
本节提供满足使用平台 `none` 选项部署 OpenShift Container Platform 的 DNS 要求的 A 和 PTR 记录配置示例。这些示例并非旨在提供有关选择一种 DNS 解决方案而不是另一种解决方案的建议。
在示例中,集群名称为 `ocp4`,基域为 `example.com`。
以下示例是一个 BIND 区域文件,它显示了使用平台 `none` 选项的集群中名称解析的示例 A 记录。
$TTL 1W
@ IN SOA ns1.example.com. root (
2019070700 ; serial
3H ; refresh (3 hours)
30M ; retry (30 minutes)
2W ; expiry (2 weeks)
1W ) ; minimum (1 week)
IN NS ns1.example.com.
IN MX 10 smtp.example.com.
;
;
ns1.example.com. IN A 192.168.1.5
smtp.example.com. IN A 192.168.1.5
;
helper.example.com. IN A 192.168.1.5
helper.ocp4.example.com. IN A 192.168.1.5
;
api.ocp4.example.com. IN A 192.168.1.5 (1)
api-int.ocp4.example.com. IN A 192.168.1.5 (2)
;
*.apps.ocp4.example.com. IN A 192.168.1.5 (3)
;
master0.ocp4.example.com. IN A 192.168.1.97 (4)
master1.ocp4.example.com. IN A 192.168.1.98 (4)
master2.ocp4.example.com. IN A 192.168.1.99 (4)
;
worker0.ocp4.example.com. IN A 192.168.1.11 (5)
worker1.ocp4.example.com. IN A 192.168.1.7 (5)
;
;EOF
1 | 提供 Kubernetes API 的名称解析。该记录引用 API 负载均衡器的 IP 地址。 | ||
2 | 提供 Kubernetes API 的名称解析。该记录引用 API 负载均衡器的 IP 地址,并用于内部集群通信。 | ||
3 | 提供通配符路由的名称解析。该记录引用应用程序入口负载均衡器的 IP 地址。应用程序入口负载均衡器以运行 Ingress Controller Pod 的机器为目标。Ingress Controller Pod 默认情况下运行在计算机器上。
|
||
4 | 为控制平面机器提供名称解析。 | ||
5 | 为计算机器提供名称解析。 |
下面的示例 BIND 区域文件显示了使用平台none
选项的集群中反向名称解析的示例 PTR 记录。
$TTL 1W
@ IN SOA ns1.example.com. root (
2019070700 ; serial
3H ; refresh (3 hours)
30M ; retry (30 minutes)
2W ; expiry (2 weeks)
1W ) ; minimum (1 week)
IN NS ns1.example.com.
;
5.1.168.192.in-addr.arpa. IN PTR api.ocp4.example.com. (1)
5.1.168.192.in-addr.arpa. IN PTR api-int.ocp4.example.com. (2)
;
97.1.168.192.in-addr.arpa. IN PTR master0.ocp4.example.com. (3)
98.1.168.192.in-addr.arpa. IN PTR master1.ocp4.example.com. (3)
99.1.168.192.in-addr.arpa. IN PTR master2.ocp4.example.com. (3)
;
11.1.168.192.in-addr.arpa. IN PTR worker0.ocp4.example.com. (4)
7.1.168.192.in-addr.arpa. IN PTR worker1.ocp4.example.com. (4)
;
;EOF
1 | 为 Kubernetes API 提供反向 DNS 解析。PTR 记录引用 API 负载均衡器的记录名称。 |
2 | 为 Kubernetes API 提供反向 DNS 解析。PTR 记录引用 API 负载均衡器的记录名称,并用于内部集群通信。 |
3 | 为控制平面机器提供反向 DNS 解析。 |
4 | 为计算机器提供反向 DNS 解析。 |
OpenShift Container Platform 应用程序通配符不需要 PTR 记录。 |
在安装 OpenShift Container Platform 之前,您必须预配 API 和应用程序入口负载均衡基础设施。在生产环境中,您可以分别部署 API 和应用程序入口负载均衡器,以便您可以独立地扩展每个负载均衡器的基础设施。
这些要求不适用于使用平台 |
如果您想使用 Red Hat Enterprise Linux (RHEL) 实例部署 API 和应用程序入口负载均衡器,则必须单独购买 RHEL 订阅。 |
负载均衡基础设施必须满足以下要求
API 负载均衡器:为用户(包括人和机器)提供一个与平台交互和配置平台的通用端点。配置以下条件
仅限 4 层负载均衡。这可以称为原始 TCP、SSL 直通或 SSL Bridge 模式。如果您使用 SSL Bridge 模式,则必须为 API 路由启用服务器名称指示 (SNI)。
无状态负载均衡算法。选项根据负载均衡器的实现而有所不同。
不要为 API 负载均衡器配置会话持久性。 |
在负载均衡器的前面和后面配置以下端口
端口 | 后端机器(池成员) | 内部 | 外部 | 描述 |
---|---|---|---|---|
|
控制平面。您必须为 API 服务器运行状况检查探针配置 |
X |
X |
Kubernetes API 服务器 |
|
控制平面。 |
X |
机器配置服务器 |
负载均衡器必须配置为在 API 服务器关闭 |
应用程序入口负载均衡器:为从集群外部流入的应用程序流量提供入口点。OpenShift Container Platform 集群需要 Ingress 路由器的正常配置。
配置以下条件
仅限 4 层负载均衡。这可以称为原始 TCP、SSL 直通或 SSL Bridge 模式。如果您使用 SSL Bridge 模式,则必须为入口路由启用服务器名称指示 (SNI)。
建议基于可用的选项和将在平台上托管的应用程序类型,使用基于连接或基于会话的持久性。
如果应用程序入口负载均衡器可以看到客户端的真实 IP 地址,则启用基于源 IP 的会话持久性可以提高使用端到端 TLS 加密的应用程序的性能。 |
在负载均衡器的前面和后面配置以下端口
端口 | 后端机器(池成员) | 内部 | 外部 | 描述 |
---|---|---|---|---|
|
默认情况下运行 Ingress Controller Pod 的机器,计算或工作节点。 |
X |
X |
HTTPS 流量 |
|
默认情况下运行 Ingress Controller Pod 的机器,计算或工作节点。 |
X |
X |
HTTP 流量 |
如果您要部署一个具有零计算节点的三节点集群,则 Ingress Controller Pod 将在控制平面节点上运行。在三节点集群部署中,您必须将应用程序入口负载均衡器配置为将 HTTP 和 HTTPS 流量路由到控制平面节点。 |
本节提供了一个示例 API 和应用程序入口负载均衡器配置,该配置满足使用平台none
选项的集群的负载均衡要求。该示例是 HAProxy 负载均衡器的/etc/haproxy/haproxy.cfg
配置。该示例并非旨在提供关于选择一种负载均衡解决方案而不是另一种解决方案的建议。
示例中,Kubernetes API 和应用程序入口流量使用相同的负载均衡器。在生产环境中,您可以分别部署 API 和应用程序入口负载均衡器,以便您可以独立地扩展每个负载均衡器的基础设施。
如果您使用 HAProxy 作为负载均衡器并且 SELinux 设置为 |
global
log 127.0.0.1 local2
pidfile /var/run/haproxy.pid
maxconn 4000
daemon
defaults
mode http
log global
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen api-server-6443 (1)
bind *:6443
mode tcp
server master0 master0.ocp4.example.com:6443 check inter 1s
server master1 master1.ocp4.example.com:6443 check inter 1s
server master2 master2.ocp4.example.com:6443 check inter 1s
listen machine-config-server-22623 (2)
bind *:22623
mode tcp
server master0 master0.ocp4.example.com:22623 check inter 1s
server master1 master1.ocp4.example.com:22623 check inter 1s
server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 (3)
bind *:443
mode tcp
balance source
server worker0 worker0.ocp4.example.com:443 check inter 1s
server worker1 worker1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 (4)
bind *:80
mode tcp
balance source
server worker0 worker0.ocp4.example.com:80 check inter 1s
server worker1 worker1.ocp4.example.com:80 check inter 1s
1 | 端口6443 处理 Kubernetes API 流量并指向控制平面机器。 |
||
2 | 端口22623 处理机器配置服务器流量并指向控制平面机器。 |
||
3 | 端口443 处理 HTTPS 流量并指向运行 Ingress Controller Pod 的机器。Ingress Controller Pod 默认情况下在计算机器上运行。 |
||
4 | 端口80 处理 HTTP 流量并指向运行 Ingress Controller Pod 的机器。Ingress Controller Pod 默认情况下在计算机器上运行。
|
如果您使用 HAProxy 作为负载均衡器,则可以通过在 HAProxy 节点上运行 |
以下agent-config.yaml
文件是 bond 和 VLAN 接口清单的示例。
apiVersion: v1alpha1
kind: AgentConfig
rendezvousIP: 10.10.10.14
hosts:
- hostname: master0
role: master
interfaces:
- name: enp0s4
macAddress: 00:21:50:90:c0:10
- name: enp0s5
macAddress: 00:21:50:90:c0:20
networkConfig:
interfaces:
- name: bond0.300 (1)
type: vlan (2)
state: up
vlan:
base-iface: bond0
id: 300
ipv4:
enabled: true
address:
- ip: 10.10.10.14
prefix-length: 24
dhcp: false
- name: bond0 (1)
type: bond (3)
state: up
mac-address: 00:21:50:90:c0:10 (4)
ipv4:
enabled: false
ipv6:
enabled: false
link-aggregation:
mode: active-backup (5)
options:
miimon: "150" (6)
port:
- enp0s4
- enp0s5
dns-resolver: (7)
config:
server:
- 10.10.10.11
- 10.10.10.12
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 10.10.10.10 (8)
next-hop-interface: bond0.300 (9)
table-id: 254
1 | 接口名称。 |
2 | 接口类型。此示例创建一个 VLAN。 |
3 | 接口类型。此示例创建一个 bond。 |
4 | 接口的 MAC 地址。 |
5 | mode 属性指定绑定模式。 |
6 | 指定 MII 链路监控频率(毫秒)。此示例每 150 毫秒检查一次 bond 链路。 |
7 | 可选:指定 DNS 服务器的搜索和服务器设置。 |
8 | 节点流量的下一跳地址。这必须与为指定接口设置的 IP 地址位于同一子网中。 |
9 | 节点流量的下一跳接口。 |
以下agent-config.yaml
文件是具有 bond 和 SR-IOV 接口的双端口网卡清单的示例
apiVersion: v1alpha1
kind: AgentConfig
rendezvousIP: 10.10.10.14
hosts:
- hostname: worker-1
interfaces:
- name: eno1
macAddress: 0c:42:a1:55:f3:06
- name: eno2
macAddress: 0c:42:a1:55:f3:07
networkConfig: (1)
interfaces: (2)
- name: eno1 (3)
type: ethernet (4)
state: up
mac-address: 0c:42:a1:55:f3:06
ipv4:
enabled: true
dhcp: false (5)
ethernet:
sr-iov:
total-vfs: 2 (6)
ipv6:
enabled: false
- name: sriov:eno1:0
type: ethernet
state: up (7)
ipv4:
enabled: false (8)
ipv6:
enabled: false
dhcp: false
- name: sriov:eno1:1
type: ethernet
state: down
- name: eno2
type: ethernet
state: up
mac-address: 0c:42:a1:55:f3:07
ipv4:
enabled: true
ethernet:
sr-iov:
total-vfs: 2
ipv6:
enabled: false
- name: sriov:eno2:0
type: ethernet
state: up
ipv4:
enabled: false
ipv6:
enabled: false
- name: sriov:eno2:1
type: ethernet
state: down
- name: bond0
type: bond
state: up
min-tx-rate: 100 (9)
max-tx-rate: 200 (10)
link-aggregation:
mode: active-backup (11)
options:
primary: sriov:eno1:0 (12)
port:
- sriov:eno1:0
- sriov:eno2:0
ipv4:
address:
- ip: 10.19.16.57 (13)
prefix-length: 23
dhcp: false
enabled: true
ipv6:
enabled: false
dns-resolver:
config:
server:
- 10.11.5.160
- 10.2.70.215
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 10.19.17.254
next-hop-interface: bond0 (14)
table-id: 254
1 | networkConfig 字段包含有关主机网络配置的信息,其子字段包括interfaces 、dns-resolver 和routes 。 |
2 | interfaces 字段是为主机定义的网络接口数组。 |
3 | 接口名称。 |
4 | 接口类型。此示例创建一个以太网接口。 |
5 | 如果不需要,将其设置为false 以禁用物理功能 (PF) 的 DHCP。 |
6 | 将其设置为要实例化的 SR-IOV 虚拟功能 (VF) 的数量。 |
7 | 将其设置为up 。 |
8 | 将其设置为false 以禁用连接到 bond 的 VF 的 IPv4寻址。 |
9 | 设置 VF 的最小传输速率(以 Mbps 为单位)。此示例值设置速率为 100 Mbps。
|
10 | 设置 VF 的最大传输速率(以 Mbps 为单位)。此示例值设置速率为 200 Mbps。 |
11 | 设置所需的绑定模式。 |
12 | 设置绑定接口的首选端口。主设备是第一个使用的绑定接口,除非它发生故障,否则不会被放弃。当绑定接口中的一个网卡速度更快,因此能够处理更大的负载时,此设置特别有用。此设置仅在绑定接口处于active-backup 模式(模式 1)和balance-tlb (模式 5)时有效。 |
13 | 为绑定接口设置静态 IP 地址。这是节点 IP 地址。 |
14 | 将bond0 设置为默认路由的网关。 |
install-config.yaml
文件示例您可以自定义install-config.yaml
文件以指定有关 OpenShift Container Platform 集群平台的更多详细信息,或修改所需参数的值。
apiVersion: v1
baseDomain: example.com (1)
compute: (2)
- name: worker
replicas: 0 (3)
controlPlane: (2)
name: master
replicas: 1 (4)
metadata:
name: sno-cluster (5)
networking:
clusterNetwork:
- cidr: 10.128.0.0/14 (6)
hostPrefix: 23 (7)
networkType: OVNKubernetes (8)
serviceNetwork: (9)
- 172.30.0.0/16
platform:
none: {} (10)
fips: false (11)
pullSecret: '{"auths": ...}' (12)
sshKey: 'ssh-ed25519 AAAA...' (13)
1 | 集群的基本域名。所有 DNS 记录都必须为此基本域名的子域名,并且包含集群名称。 | ||
2 | controlPlane 部分是一个单一映射,但compute 部分是一系列映射。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。只使用一个控制平面池。 |
||
3 | 此参数控制基于代理的安装在触发安装过程之前等待发现的计算机的数量。这是必须使用生成的 ISO 启动的计算机的数量。
|
||
4 | 您添加到集群的控制平面机器的数量。由于集群使用这些值作为集群中 etcd 端点的数量,因此该值必须与您部署的控制平面机器的数量相匹配。 | ||
5 | 您在 DNS 记录中指定的集群名称。 | ||
6 | 分配 Pod IP 地址的 IP 地址块。此块不得与现有物理网络重叠。这些 IP 地址用于 Pod 网络。如果您需要从外部网络访问 Pod,则必须配置负载均衡器和路由器来管理流量。
|
||
7 | 分配给每个节点的子网前缀长度。例如,如果hostPrefix 设置为23 ,则每个节点都将从给定的cidr 分配一个/23 子网,这允许 510 (2^(32 - 23) - 2) 个 Pod IP 地址。如果您需要从外部网络访问节点,请配置负载均衡器和路由器来管理流量。 |
||
8 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一受支持的值。 |
||
9 | 用于服务 IP 地址的 IP 地址池。您只能输入一个 IP 地址池。此块不得与现有物理网络重叠。如果您需要从外部网络访问服务,则必须配置负载均衡器和路由器来管理流量。 | ||
10 | 对于单节点集群,您必须将平台设置为none 。对于多节点集群,您可以将平台设置为vsphere 、baremetal 或none 。
|
||
11 | 是否启用或禁用 FIPS 模式。默认情况下,FIPS 模式未启用。如果启用了 FIPS 模式,则运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS (RHCOS) 机器将绕过默认的 Kubernetes 加密套件,并改用 RHCOS 提供的加密模块。
|
||
12 | 此拉取密钥允许您向包含的授权机构(包括提供 OpenShift Container Platform 组件的容器映像的 Quay.io)提供的服务进行身份验证。 | ||
13 | Red Hat Enterprise Linux CoreOS (RHCOS) 中core 用户的 SSH 公钥。
|
基于代理的安装程序在创建 ISO 之前会对用户定义的 YAML 文件执行验证检查。验证成功后,将创建代理 ISO。
install-config.yaml
支持baremetal
、vsphere
和none
平台。
对于none
平台,networkType
参数必须为OVNKubernetes
。
对于裸机和 vSphere 平台,必须设置apiVIPs
和ingressVIPs
参数。
裸机平台配置中的一些主机特定字段在agent-config.yaml
文件中具有等效项,将被忽略。如果设置了这些字段,则会记录警告消息。
agent-config.yaml
每个接口都必须定义一个 MAC 地址。此外,所有接口都必须具有不同的 MAC 地址。
每个主机必须至少定义一个接口。
根设备提示中不支持 WWN (World Wide Name) 供应商扩展。
host
对象中的role
参数必须具有master
或worker
的值。