us-east-1
在 OpenShift Container Platform 4.17 版本中,您可以使用安装程序预配的基础架构以及自定义的网络配置选项,在您的 VMware vSphere 实例上安装集群。通过自定义网络配置,您的集群可以与环境中现有的 IP 地址分配共存,并与现有的 MTU 和 VXLAN 配置集成。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您必须在安装过程中设置大多数网络配置参数,并且只能在运行的集群中修改kubeProxy
配置参数。
对多个 vCenter 的支持仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您提前访问即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。 |
您已完成使用安装程序预配的基础架构准备安装集群中的任务。
您已查看 VMware 平台许可证。Red Hat 不会对您的 VMware 许可证施加任何限制,但某些 VMware 基础架构组件需要许可证。
您已查看有关OpenShift Container Platform 安装和更新过程的详细信息。
您已阅读有关选择集群安装方法并为用户准备集群的文档。
您已为您的集群预配了持久性存储。要部署私有镜像注册表,您的存储必须提供ReadWriteMany
访问模式。
OpenShift Container Platform 安装程序需要访问 vCenter 和 ESXi 主机上的 443 端口。您已验证 443 端口是否可访问。
如果您使用防火墙,请与管理员确认 443 端口是否可访问。控制平面节点必须能够通过 443 端口访问 vCenter 和 ESXi 主机,安装才能成功。
如果您使用防火墙,请配置它以允许您的集群需要访问的站点。
如果您正在配置代理,请务必也检查此站点列表。 |
在 OpenShift Container Platform 4.17 中,您需要访问互联网才能安装集群。
您必须具有互联网访问权限才能:
访问OpenShift 集群管理器以下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您没有禁用遥测,则该服务会自动授权您的集群。
访问Quay.io以获取安装集群所需的软件包。
获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,您可以在您配置的某些类型的基础架构上执行受限网络安装。在此过程中,您将下载所需的内容并使用它来填充镜像注册表中的安装包。对于某些安装类型,您安装集群的环境将不需要互联网访问。在更新集群之前,您需要更新镜像注册表的内容。 |
您可以将 OpenShift Container Platform 集群部署到多个 vSphere 数据中心。每个数据中心可以运行多个集群。此配置降低了硬件故障或网络中断可能导致集群故障的风险。要启用区域和区域,您必须为 OpenShift Container Platform 集群定义多个故障域。
VMware vSphere 区域和区域启用功能需要 vSphere Container Storage Interface (CSI) 驱动程序作为集群中的默认存储驱动程序。因此,此功能仅在新安装的集群上可用。 对于从先前版本升级的集群,您必须为集群启用 CSI 自动迁移。然后,您可以为升级的集群配置多个区域和区域。 |
默认安装配置将集群部署到单个 vSphere 数据中心。如果您想将集群部署到多个 vSphere 数据中心,则必须创建一个启用区域和区域功能的安装配置文件。
默认的 install-config.yaml
文件包含 vcenters
和 failureDomains
字段,您可以在其中为 OpenShift Container Platform 集群指定多个 vSphere 数据中心和集群。如果您想在由单个数据中心组成的 vSphere 环境中安装 OpenShift Container Platform 集群,则可以将这些字段留空。
以下列表描述了与为集群定义区域和区域相关的术语
故障域:建立区域和区域之间的关系。您可以使用 vCenter 对象(例如 datastore
对象)来定义故障域。故障域定义 OpenShift Container Platform 集群节点的 vCenter 位置。
区域:指定 vCenter 数据中心。您可以使用 openshift-region
标签类别中的标签来定义区域。
区域:指定 vCenter 群集。您可以使用 openshift-zone
标签类别中的标签来定义区域。
如果您计划在 |
您必须为每个 vCenter 数据中心创建一个 vCenter 标签,该标签代表一个区域。此外,您必须为在数据中心中运行的每个群集创建一个 vCenter 标签,该标签代表一个区域。创建标签后,您必须将每个标签附加到它们各自的数据中心和群集。
下表概述了在单个 VMware vCenter 中运行多个 vSphere 数据中心的配置中区域、区域和标签之间关系的示例。
数据中心(区域) | 群集(区域) | 标签 |
---|---|---|
us-east |
us-east-1 |
us-east-1a |
us-east-1b |
||
us-east-2 |
us-east-2a |
|
us-east-2b |
||
us-west |
us-west-1 |
us-west-1a |
us-west-1b |
||
us-west-2 |
us-west-2a |
|
us-west-2b |
您可以自定义在 VMware vSphere 上安装的 OpenShift Container Platform 集群。
您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。
创建 install-config.yaml
文件。
更改到包含安装程序的目录并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> (1)
1 | 对于 <installation_directory> ,请指定用于存储安装程序创建的文件的目录名称。 |
指定目录时:
验证该目录是否具有 execute
权限。此权限是安装目录下运行 Terraform 二进制文件所必需的。
使用空目录。某些安装资产(例如引导 X.509 证书)具有较短的过期时间间隔,因此您不能重用安装目录。如果您想重用来自另一个集群安装的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名在不同版本之间可能会更改。从早期 OpenShift Container Platform 版本复制安装文件时,请务必小心。
在提示符下,提供云的配置详细信息。
可选:选择要用于访问集群机器的 SSH 密钥。
对于要执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定您的 |
选择 **vsphere** 作为目标平台。
指定 vCenter 实例的名称。
指定具有创建集群所需权限的 vCenter 帐户的用户名和密码。
安装程序将连接到您的 vCenter 实例。
选择要连接到的 vCenter 实例中的数据中心。
创建安装配置文件后,您可以修改该文件以创建多个 vSphere 数据中心环境。这意味着您可以将 OpenShift Container Platform 集群部署到多个 vSphere 数据中心。有关创建此环境的更多信息,请参阅名为“VMware vSphere 区域和区域启用”的部分。 |
选择要使用的默认 vCenter 数据存储。
您可以指定数据存储集群中存在的任何数据存储的路径。默认情况下,使用 Storage vMotion 的存储分布式资源调度程序 (SDRS) 会自动为数据存储集群启用。Red Hat 不支持 Storage vMotion,因此您必须禁用 Storage DRS 以避免 OpenShift Container Platform 集群的数据丢失问题。 您不能指定多个数据存储路径。如果您必须在多个数据存储中指定虚拟机,请使用 |
选择要在其中安装 OpenShift Container Platform 集群的 vCenter 群集。安装程序将使用 vSphere 群集的根资源池作为默认资源池。
选择 vCenter 实例中包含您已配置的虚拟 IP 地址和 DNS 记录的网络。
输入您为控制平面 API 访问配置的虚拟 IP 地址。
输入您为集群入口配置的虚拟 IP 地址。
输入基础域。此基础域必须与您在已配置的 DNS 记录中使用的基础域相同。
输入集群的描述性名称。
您输入的集群名称必须与您在配置 DNS 记录时指定的集群名称匹配。
修改install-config.yaml
文件。您可以在“安装配置参数”部分找到有关可用参数的更多信息。
备份install-config.yaml
文件,以便您可以使用它安装多个集群。
|
install-config.yaml
文件示例您可以自定义install-config.yaml
文件以指定有关 OpenShift Container Platform 集群平台的更多详细信息,或修改所需参数的值。
apiVersion: v1
baseDomain: example.com (1)
compute: (2)
- architecture: amd64
name: <worker_node>
platform: {}
replicas: 3
controlPlane: (2)
architecture: amd64
name: <parent_node>
platform: {}
replicas: 3
metadata:
creationTimestamp: null
name: test (3)
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes (11)
serviceNetwork:
- 172.30.0.0/16
platform:
vsphere: (4)
apiVIPs:
- 10.0.0.1
failureDomains: (5)
- name: <failure_domain_name>
region: <default_region_name>
server: <fully_qualified_domain_name>
topology:
computeCluster: "/<data_center>/host/<cluster>"
datacenter: <data_center>
datastore: "/<data_center>/datastore/<datastore>" (6)
networks:
- <VM_Network_name>
resourcePool: "/<data_center>/host/<cluster>/Resources/<resourcePool>" (7)
folder: "/<data_center_name>/vm/<folder_name>/<subfolder_name>"
tagIDs: (8)
- <tag_id> (9)
zone: <default_zone_name>
ingressVIPs:
- 10.0.0.2
vcenters:
- datacenters:
- <data_center>
password: <password>
port: 443
server: <fully_qualified_domain_name>
user: [email protected]
diskType: thin (10)
fips: false
pullSecret: '{"auths": ...}'
sshKey: 'ssh-ed25519 AAAA...'
1 | 集群的基本域名。所有 DNS 记录都必须为此基本域名的子域名,并且包含集群名称。 | ||
2 | controlPlane 部分是一个单映射,但compute 部分是映射序列。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。只使用一个控制平面池。 |
||
3 | 您在 DNS 记录中指定的集群名称。 | ||
4 | 可选:为计算和控制平面机器的机器池参数提供附加配置。 | ||
5 | 建立区域和区域之间的关系。您可以使用 vCenter 对象(例如datastore 对象)来定义故障域。故障域定义 OpenShift Container Platform 集群节点的 vCenter 位置。 |
||
6 | 保存虚拟机文件、模板和 ISO 映像的 vSphere 数据存储的路径。
|
||
7 | 可选:为机器创建提供现有的资源池。如果您未指定值,则安装程序将使用 vSphere 集群的根资源池。 | ||
8 | 可选:OpenShift Container Platform 创建的每个 VM 都被分配一个特定于集群的唯一标记。分配的标记使安装程序能够在集群停用时识别和删除关联的 VM。您可以列出最多十个要附加到安装程序预配的 VM 的附加标记 ID。 | ||
9 | 安装程序要关联的标记的 ID。例如,urn:vmomi:InventoryServiceTag:208e713c-cae3-4b7f-918e-4051ca7d1f97:GLOBAL 。有关确定标记 ID 的更多信息,请参阅vSphere 标记和属性文档。 |
||
10 | vSphere 磁盘预配方法。 | ||
11 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一受支持的值。 |
在 OpenShift Container Platform 4.12 及更高版本中, |
生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在install-config.yaml
文件中配置代理设置来配置新的 OpenShift Container Platform 集群以使用代理。
您拥有现有的install-config.yaml
文件。
您已查看集群需要访问的站点,并确定其中任何站点是否需要绕过代理。默认情况下,所有集群出站流量都使用代理,包括对托管云提供商 API 的调用。如有必要,您已将站点添加到Proxy
对象的spec.noProxy
字段以绕过代理。
对于 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure 和 Red Hat OpenStack Platform (RHOSP) 上的安装, |
编辑您的install-config.yaml
文件并添加代理设置。例如
apiVersion: v1
baseDomain: my.domain.com
proxy:
httpProxy: http://<username>:<pswd>@<ip>:<port> (1)
httpsProxy: https://<username>:<pswd>@<ip>:<port> (2)
noProxy: example.com (3)
additionalTrustBundle: | (4)
-----BEGIN CERTIFICATE-----
<MY_TRUSTED_CA_CERT>
-----END CERTIFICATE-----
additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> (5)
1 | 用于在集群外部创建 HTTP 连接的代理 URL。URL 方案必须为http 。 |
2 | 用于在集群外部创建 HTTPS 连接的代理 URL。 |
3 | 要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域名前加. 以仅匹配子域名。例如,.y.com 匹配x.y.com ,但不匹配y.com 。使用* 绕过所有目标的代理。您必须包含 vCenter 的 IP 地址以及您用于其机器的 IP 范围。 |
4 | 如果提供,安装程序将在openshift-config 命名空间中生成名为user-ca-bundle 的配置映射,其中包含代理 HTTPS 连接所需的额外 CA 证书。集群网络操作员然后创建一个trusted-ca-bundle 配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,并且此配置映射在Proxy 对象的trustedCA 字段中引用。除非代理的身份证书由 RHCOS 信任捆绑包中的机构签名,否则需要additionalTrustBundle 字段。 |
5 | 可选:确定Proxy 对象的配置以在trustedCA 字段中引用user-ca-bundle 配置映射的策略。允许的值为Proxyonly 和Always 。使用Proxyonly 仅在配置http/https 代理时引用user-ca-bundle 配置映射。使用Always 始终引用user-ca-bundle 配置映射。默认值为Proxyonly 。 |
安装程序不支持代理 |
如果安装程序超时,请重新启动,然后使用安装程序的
|
保存文件并在安装 OpenShift Container Platform 时引用它。
安装程序创建一个名为cluster
的集群范围代理,该代理使用提供的install-config.yaml
文件中的代理设置。如果未提供代理设置,则仍然会创建cluster
Proxy
对象,但它将具有空spec
。
仅支持名为 |
对于 OpenShift Container Platform 集群中的双栈网络,您可以为集群节点配置 IPv4 和 IPv6 地址端点。要为集群节点配置 IPv4 和 IPv6 地址端点,请编辑install-config.yaml
文件中的machineNetwork
、clusterNetwork
和serviceNetwork
配置设置。每个设置都必须有两个 CIDR 条目。对于以 IPv4 族作为主地址族的集群,请先指定 IPv4 设置。对于以 IPv6 族作为主地址族的集群,请先指定 IPv6 设置。
machineNetwork:
- cidr: {{ extcidrnet }}
- cidr: {{ extcidrnet6 }}
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
- cidr: fd02::/48
hostPrefix: 64
serviceNetwork:
- 172.30.0.0/16
- fd03::/112
为了为使用 IPv4 和 IPv6 地址的应用程序提供集群接口,请为 Ingress VIP 和 API VIP 服务配置 IPv4 和 IPv6 虚拟 IP (VIP) 地址端点。要配置 IPv4 和 IPv6 地址端点,请编辑install-config.yaml
文件中的apiVIPs
和ingressVIPs
配置设置。apiVIPs
和ingressVIPs
配置设置使用列表格式。列表的顺序指示每项服务的首要和次要 VIP 地址。
platform:
vsphere:
apiVIPs:
- <api_ipv4>
- <api_ipv6>
ingressVIPs:
- <wildcard_ipv4>
- <wildcard_ipv6>
对于具有双栈网络配置的集群,必须将 IPv4 和 IPv6 地址都分配给同一个接口。 |
您可以修改默认的安装配置文件,以便您可以将 OpenShift Container Platform 集群部署到多个 vSphere 数据中心。
先前版本的 OpenShift Container Platform 中的默认install-config.yaml
文件配置已弃用。您可以继续使用已弃用的默认配置,但openshift-installer
将提示您一条警告消息,指示配置文件中使用了已弃用的字段。
此示例使用 |
您有一个现有的install-config.yaml
安装配置文件。
您必须为 OpenShift Container Platform 集群指定至少一个故障域,以便您可以为 VMware vCenter 服务器预配数据中心对象。如果您需要在不同的数据中心、集群、数据存储和其他组件中预配虚拟机节点,请考虑指定多个故障域。要启用区域和区域,您必须为 OpenShift Container Platform 集群定义多个故障域。 |
输入以下govc
命令行工具命令以创建openshift-region
和openshift-zone
vCenter 标签类别。
如果您为 |
$ govc tags.category.create -d "OpenShift region" openshift-region
$ govc tags.category.create -d "OpenShift zone" openshift-zone
要为要部署集群的每个区域 vSphere 数据中心创建一个区域标签,请在您的终端中输入以下命令。
$ govc tags.create -c <region_tag_category> <region_tag>
要为要部署集群的每个 vSphere 集群创建一个区域标签,请输入以下命令。
$ govc tags.create -c <zone_tag_category> <zone_tag>
通过输入以下命令,将区域标签附加到每个 vCenter 数据中心对象。
$ govc tags.attach -c <region_tag_category> <region_tag_1> /<data_center_1>
通过输入以下命令,将区域标签附加到每个 vCenter 数据中心对象。
$ govc tags.attach -c <zone_tag_category> <zone_tag_1> /<data_center_1>/host/vcs-mdcnc-workload-1
更改到包含安装程序的目录,并根据您选择的安装要求初始化集群部署。
install-config.yaml
文件。---
compute:
---
vsphere:
zones:
- "<machine_pool_zone_1>"
- "<machine_pool_zone_2>"
---
controlPlane:
---
vsphere:
zones:
- "<machine_pool_zone_1>"
- "<machine_pool_zone_2>"
---
platform:
vsphere:
vcenters:
---
datacenters:
- <data_center_1_name>
- <data_center_2_name>
failureDomains:
- name: <machine_pool_zone_1>
region: <region_tag_1>
zone: <zone_tag_1>
server: <fully_qualified_domain_name>
topology:
datacenter: <data_center_1>
computeCluster: "/<data_center_1>/host/<cluster1>"
networks:
- <VM_Network1_name>
datastore: "/<data_center_1>/datastore/<datastore1>"
resourcePool: "/<data_center_1>/host/<cluster1>/Resources/<resourcePool1>"
folder: "/<data_center_1>/vm/<folder1>"
- name: <machine_pool_zone_2>
region: <region_tag_2>
zone: <zone_tag_2>
server: <fully_qualified_domain_name>
topology:
datacenter: <data_center_2>
computeCluster: "/<data_center_2>/host/<cluster2>"
networks:
- <VM_Network2_name>
datastore: "/<data_center_2>/datastore/<datastore2>"
resourcePool: "/<data_center_2>/host/<cluster2>/Resources/<resourcePool2>"
folder: "/<data_center_2>/vm/<folder2>"
---
在安装 OpenShift Container Platform 之前,有两个阶段可以自定义网络配置。
在创建清单文件之前,您可以在install-config.yaml
文件中自定义以下与网络相关的字段。
networking.networkType
networking.clusterNetwork
networking.serviceNetwork
networking.machineNetwork
有关更多信息,请参阅“安装配置参数”。
将 |
CIDR 范围 |
通过运行openshift-install create manifests
创建清单文件后,您可以仅使用要修改的字段定义自定义的集群网络运算符清单。您可以使用清单来指定高级网络配置。
在阶段 2 中,您无法覆盖在阶段 1 中在install-config.yaml
文件中指定的 value。但是,您可以在阶段 2 中自定义网络插件。
您可以使用网络插件的高级网络配置将您的集群集成到您现有的网络环境中。
您只能在安装集群之前指定高级网络配置。
不支持通过修改安装程序创建的 OpenShift Container Platform 清单文件来自定义网络配置。支持应用您创建的清单文件,如下面的过程所示。 |
您已创建install-config.yaml
文件并完成了对其的任何修改。
更改到包含安装程序的目录并创建清单。
$ ./openshift-install create manifests --dir <installation_directory> (1)
1 | <installation_directory> 指定包含集群install-config.yaml 文件的目录的名称。 |
为高级网络配置创建一个存根清单文件,该文件名为cluster-network-03-config.yml
,位于<installation_directory>/manifests/
目录中。
apiVersion: operator.openshift.io/v1
kind: Network
metadata:
name: cluster
spec:
在cluster-network-03-config.yml
文件中指定集群的高级网络配置,例如以下示例。
apiVersion: operator.openshift.io/v1
kind: Network
metadata:
name: cluster
spec:
defaultNetwork:
ovnKubernetesConfig:
ipsecConfig:
mode: Full
可选:备份manifests/cluster-network-03-config.yml
文件。当您创建 Ignition 配置文件时,安装程序会使用manifests/
目录。
删除定义控制平面机器和计算 MachineSet 的 Kubernetes 清单文件。
$ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml openshift/99_openshift-cluster-api_worker-machineset-*.yaml
因为您自己创建和管理这些资源,所以您不必初始化它们。
您可以保留 MachineSet 文件以使用机器 API 创建计算机器,但您必须更新对它们的引用以匹配您的环境。
在您在 vSphere 主机上安装 OpenShift Container Platform 集群之前,您可以为网络实现指定多个子网,以便 vSphere 云控制器管理器 (CCM) 可以为给定的网络情况选择合适的子网。vSphere 可以使用子网来管理集群上的 Pod 和服务。
对于此配置,您必须在 vSphere CCM 配置中指定内部和外部无类别域间路由 (CIDR) 实现。每个 CIDR 实现都列出了 CCM 用于确定哪些子网与来自内部和外部网络的流量交互的 IP 地址范围。
未能配置 vSphere CCM 配置中的内部和外部 CIDR 实现会导致 vSphere CCM 选择错误的子网。这种情况会导致以下错误。 ERROR Bootstrap failed to complete: timed out waiting for the condition ERROR Failed to wait for bootstrapping to complete. This error usually happens when there is a problem with control plane hosts that prevents the control plane operators from creating the control plane. 此配置可能会导致与具有单个子网的 |
您已为 OpenShift Container Platform 集群创建了 Kubernetes 清单文件。
在存储 OpenShift Container Platform 集群清单文件的目录中,打开manifests/cluster-infrastructure-02-config.yml
清单文件。
向文件中添加一个nodeNetworking
对象,并为该对象指定内部和外部网络子网 CIDR 实现。
对于大多数网络场景,建议设置标准的多子网配置。此配置要求您在 |
cluster-infrastructure-02-config.yml
清单文件示例apiVersion: config.openshift.io/v1
kind: Infrastructure
metadata:
name: cluster
spec:
cloudConfig:
key: config
name: cloud-provider-config
platformSpec:
type: VSphere
vsphere:
failureDomains:
- name: generated-failure-domain
...
nodeNetworking:
external:
networkSubnetCidr:
- <machine_network_cidr_ipv4>
- <machine_network_cidr_ipv6>
internal:
networkSubnetCidr:
- <machine_network_cidr_ipv4>
- <machine_network_cidr_ipv6>
# ...
集群网络的配置指定为集群网络操作员 (CNO) 配置的一部分,并存储在一个名为cluster
的自定义资源 (CR) 对象中。CR 指定operator.openshift.io
API 组中Network
API 的字段。
在集群安装过程中,CNO 配置从Network.config.openshift.io
API 组中的Network
API 继承以下字段
clusterNetwork
分配 Pod IP 地址的 IP 地址池。
serviceNetwork
服务的 IP 地址池。
defaultNetwork.type
集群网络插件。安装过程中,唯一支持的插件是OVNKubernetes
。
您可以通过设置名为cluster
的 CNO 对象中defaultNetwork
对象的字段来指定集群的集群网络插件配置。
集群网络操作员 (CNO) 的字段在下面的表格中描述
字段 | 类型 | 描述 |
---|---|---|
|
|
CNO 对象的名称。此名称始终为 |
|
|
指定用于分配 Pod IP 地址的 IP 地址块以及分配给集群中每个节点的子网前缀长度的列表。例如
|
|
|
服务的 IP 地址块。OVN-Kubernetes 网络插件仅支持服务网络的单个 IP 地址块。例如
您只能在创建清单文件之前在 |
|
|
配置集群网络的网络插件。 |
|
|
此对象的字段指定 kube-proxy 配置。如果您使用的是 OVN-Kubernetes 集群网络插件,则 kube-proxy 配置无效。 |
对于需要跨多个网络部署对象的集群,请确保为 |
defaultNetwork
对象的值在下面的表格中定义
字段 | 类型 | 描述 | ||
---|---|---|---|---|
|
|
|
||
|
|
此对象仅对 OVN-Kubernetes 网络插件有效。 |
下表描述了 OVN-Kubernetes 网络插件的配置字段
字段 | 类型 | 描述 | ||
---|---|---|---|---|
|
|
Geneve(通用网络虚拟化封装)覆盖网络的最大传输单元 (MTU)。这是根据主网络接口的 MTU 自动检测的。您通常不需要覆盖检测到的 MTU。 如果自动检测到的值与您的预期不符,请确认节点上主网络接口上的 MTU 是否正确。您不能使用此选项更改节点上主网络接口的 MTU 值。 如果您的集群需要为不同的节点指定不同的 MTU 值,则必须将此值设置为集群中最低 MTU 值减去 |
||
|
|
用于所有 Geneve 数据包的端口。默认值为 |
||
|
|
指定一个配置对象,用于自定义 IPsec 配置。 |
||
|
|
指定 IPv4 设置的配置对象。 |
||
|
|
指定 IPv6 设置的配置对象。 |
||
|
|
指定一个配置对象,用于自定义网络策略审计日志记录。如果未设置,则使用默认审计日志设置。 |
||
|
|
可选:指定一个配置对象,用于自定义如何将出站流量发送到节点网关。
|
字段 | 类型 | 描述 |
---|---|---|
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
字段 | 类型 | 描述 |
---|---|---|
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
字段 | 类型 | 描述 |
---|---|---|
|
整数 |
每个节点每秒生成的最多消息数。默认值为每秒 |
|
整数 |
审计日志的最大大小(字节)。默认值为 |
|
整数 |
保留的最大日志文件数量。 |
|
字符串 |
以下附加审计日志目标之一
|
|
字符串 |
syslog设备,例如 |
字段 | 类型 | 描述 |
---|---|---|
|
|
将此字段设置为 此字段与Open vSwitch硬件卸载功能存在交互。如果将此字段设置为 |
|
|
您可以使用 |
|
|
可选:指定一个对象来配置用于主机到服务流量(IPv4地址)的内部OVN-Kubernetes伪装地址。 |
|
|
可选:指定一个对象来配置用于主机到服务流量(IPv6地址)的内部OVN-Kubernetes伪装地址。 |
字段 | 类型 | 描述 | ||
---|---|---|---|---|
|
|
在内部用于启用主机到服务流量的伪装IPv4地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为
|
字段 | 类型 | 描述 | ||
---|---|---|---|---|
|
|
在内部用于启用主机到服务流量的伪装IPv6地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为
|
字段 | 类型 | 描述 |
---|---|---|
|
|
指定IPsec实现的行为。必须是以下值之一
|
defaultNetwork:
type: OVNKubernetes
ovnKubernetesConfig:
mtu: 1400
genevePort: 6081
ipsecConfig:
mode: Full
您可以将OpenShift Container Platform集群配置为使用用户管理的负载均衡器来代替默认负载均衡器。
配置用户管理的负载均衡器取决于您的供应商的负载均衡器。 本节中的信息和示例仅供指导。有关供应商负载均衡器的更多具体信息,请咨询供应商文档。 |
Red Hat支持以下用户管理负载均衡器的服务
入口控制器
OpenShift API
OpenShift MachineConfig API
您可以选择是否要为用户管理的负载均衡器配置一项或所有这些服务。仅配置入口控制器服务是一种常见的配置选项。为了更好地理解每项服务,请查看以下图表
以下配置选项受用户管理的负载均衡器支持
使用节点选择器将入口控制器映射到特定节点集。您必须为此集合中的每个节点分配一个静态IP地址,或者将每个节点配置为从动态主机配置协议 (DHCP) 接收相同的IP地址。基础设施节点通常会收到此类配置。
目标子网上的所有IP地址。此配置可以减少维护开销,因为您可以在这些网络中创建和销毁节点而无需重新配置负载均衡器目标。如果您使用机器集在较小的网络(例如/27
或/28
)上部署入口Pod,则可以简化负载均衡器目标。
您可以通过检查机器配置池的资源来列出网络中存在的所有IP地址。 |
在为OpenShift Container Platform集群配置用户管理的负载均衡器之前,请考虑以下信息
对于前端IP地址,您可以使用相同的IP地址作为前端IP地址、入口控制器的负载均衡器和API负载均衡器。检查供应商文档以了解此功能。
对于后端IP地址,请确保OpenShift Container Platform控制平面节点的IP地址在用户管理的负载均衡器的生命周期内不会更改。您可以通过完成以下操作之一来实现此目的
为每个控制平面节点分配一个静态IP地址。
配置每个节点以每次节点请求DHCP租约时从DHCP接收相同的IP地址。根据供应商的不同,DHCP租约可能采用IP预留或静态DHCP分配的形式。
手动在入口控制器后端服务的用户管理负载均衡器中定义运行入口控制器的每个节点。例如,如果入口控制器移动到未定义的节点,则可能会发生连接中断。
您可以将OpenShift Container Platform集群配置为使用用户管理的负载均衡器来代替默认负载均衡器。
在配置用户管理的负载均衡器之前,请确保您已阅读“用户管理的负载均衡器的服务”部分。 |
阅读以下适用于您要为用户管理的负载均衡器配置的服务的先决条件。
MetalLB 在集群上运行,充当用户管理的负载均衡器。 |
您已定义一个前端 IP 地址。
TCP 端口 6443 和 22623 在负载均衡器的前端 IP 地址上公开。请检查以下项目:
端口 6443 提供对 OpenShift API 服务的访问。
端口 22623 可以向节点提供启动配置。
前端 IP 地址和端口 6443 可被系统中所有位于 OpenShift Container Platform 集群外部的用户访问。
前端 IP 地址和端口 22623 仅可被 OpenShift Container Platform 节点访问。
负载均衡器后端可以通过端口 6443 和 22623 与 OpenShift Container Platform 控制平面节点通信。
您已定义一个前端 IP 地址。
TCP 端口 443 和 80 在负载均衡器的前端 IP 地址上公开。
前端 IP 地址、端口 80 和端口 443 可被系统中所有位于 OpenShift Container Platform 集群外部的用户访问。
前端 IP 地址、端口 80 和端口 443 可被 OpenShift Container Platform 集群中运行的所有节点访问。
负载均衡器后端可以通过端口 80、443 和 1936 与运行 Ingress Controller 的 OpenShift Container Platform 节点通信。
您可以通过设置健康检查 URL 来配置大多数负载均衡器,这些 URL 用于确定服务是可用还是不可用。OpenShift Container Platform 为 OpenShift API、机器配置 API 和 Ingress Controller 后端服务提供这些健康检查。
以下示例显示了前面列出的后端服务的健康检查规范
Path: HTTPS:6443/readyz
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 10
Interval: 10
Path: HTTPS:22623/healthz
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 10
Interval: 10
Path: HTTP:1936/healthz/ready
Healthy threshold: 2
Unhealthy threshold: 2
Timeout: 5
Interval: 10
配置 HAProxy Ingress Controller,以便您可以通过负载均衡器在端口 6443、22623、443 和 80 上访问集群。根据您的需求,您可以在 HAProxy 配置中指定单个子网的 IP 地址或多个子网的 IP 地址。
# ...
listen my-cluster-api-6443
bind 192.168.1.100:6443
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /readyz
http-check expect status 200
server my-cluster-master-2 192.168.1.101:6443 check inter 10s rise 2 fall 2
server my-cluster-master-0 192.168.1.102:6443 check inter 10s rise 2 fall 2
server my-cluster-master-1 192.168.1.103:6443 check inter 10s rise 2 fall 2
listen my-cluster-machine-config-api-22623
bind 192.168.1.100:22623
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz
http-check expect status 200
server my-cluster-master-2 192.168.1.101:22623 check inter 10s rise 2 fall 2
server my-cluster-master-0 192.168.1.102:22623 check inter 10s rise 2 fall 2
server my-cluster-master-1 192.168.1.103:22623 check inter 10s rise 2 fall 2
listen my-cluster-apps-443
bind 192.168.1.100:443
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz/ready
http-check expect status 200
server my-cluster-worker-0 192.168.1.111:443 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-1 192.168.1.112:443 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-2 192.168.1.113:443 check port 1936 inter 10s rise 2 fall 2
listen my-cluster-apps-80
bind 192.168.1.100:80
mode tcp
balance roundrobin
option httpchk
http-check connect
http-check send meth GET uri /healthz/ready
http-check expect status 200
server my-cluster-worker-0 192.168.1.111:80 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-1 192.168.1.112:80 check port 1936 inter 10s rise 2 fall 2
server my-cluster-worker-2 192.168.1.113:80 check port 1936 inter 10s rise 2 fall 2
# ...
# ...
listen api-server-6443
bind *:6443
mode tcp
server master-00 192.168.83.89:6443 check inter 1s
server master-01 192.168.84.90:6443 check inter 1s
server master-02 192.168.85.99:6443 check inter 1s
server bootstrap 192.168.80.89:6443 check inter 1s
listen machine-config-server-22623
bind *:22623
mode tcp
server master-00 192.168.83.89:22623 check inter 1s
server master-01 192.168.84.90:22623 check inter 1s
server master-02 192.168.85.99:22623 check inter 1s
server bootstrap 192.168.80.89:22623 check inter 1s
listen ingress-router-80
bind *:80
mode tcp
balance source
server worker-00 192.168.83.100:80 check inter 1s
server worker-01 192.168.83.101:80 check inter 1s
listen ingress-router-443
bind *:443
mode tcp
balance source
server worker-00 192.168.83.100:443 check inter 1s
server worker-01 192.168.83.101:443 check inter 1s
listen ironic-api-6385
bind *:6385
mode tcp
balance source
server master-00 192.168.83.89:6385 check inter 1s
server master-01 192.168.84.90:6385 check inter 1s
server master-02 192.168.85.99:6385 check inter 1s
server bootstrap 192.168.80.89:6385 check inter 1s
listen inspector-api-5050
bind *:5050
mode tcp
balance source
server master-00 192.168.83.89:5050 check inter 1s
server master-01 192.168.84.90:5050 check inter 1s
server master-02 192.168.85.99:5050 check inter 1s
server bootstrap 192.168.80.89:5050 check inter 1s
# ...
使用 `curl` CLI 命令验证用户管理的负载均衡器及其资源是否正常运行
通过运行以下命令并观察响应,验证 Kubernetes API 服务器资源是否可以访问集群机器配置 API
$ curl https://<loadbalancer_ip_address>:6443/version --insecure
如果配置正确,您将收到一个 JSON 对象作为响应
{
"major": "1",
"minor": "11+",
"gitVersion": "v1.11.0+ad103ed",
"gitCommit": "ad103ed",
"gitTreeState": "clean",
"buildDate": "2019-01-09T06:44:10Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
通过运行以下命令并观察输出,验证机器配置服务器资源是否可以访问集群机器配置 API
$ curl -v https://<loadbalancer_ip_address>:22623/healthz --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
Content-Length: 0
通过运行以下命令并观察输出,验证控制器是否可以通过端口 80 访问 Ingress Controller 资源
$ curl -I -L -H "Host: console-openshift-console.apps.<cluster_name>.<base_domain>" http://<load_balancer_front_end_IP_address>
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 302 Found
content-length: 0
location: https://console-openshift-console.apps.ocp4.private.opequon.net/
cache-control: no-cache
通过运行以下命令并观察输出,验证控制器是否可以通过端口 443 访问 Ingress Controller 资源
$ curl -I -L --insecure --resolve console-openshift-console.apps.<cluster_name>.<base_domain>:443:<Load Balancer Front End IP Address> https://console-openshift-console.apps.<cluster_name>.<base_domain>
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=UlYWOyQ62LWjw2h003xtYSKlh1a0Py2hhctw0WmV2YEdhJjFyQwWcGBsja261dGLgaYO0nxzVErhiXt6QepA7g==; Path=/; Secure; SameSite=Lax
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Wed, 04 Oct 2023 16:29:38 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=1bf5e9573c9a2760c964ed1659cc1673; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
将集群的 DNS 记录配置为指向用户管理的负载均衡器的前端 IP 地址。您必须更新集群 API 和通过负载均衡器的应用程序的 DNS 服务器记录。
<load_balancer_ip_address> A api.<cluster_name>.<base_domain>
A record pointing to Load Balancer Front End
<load_balancer_ip_address> A apps.<cluster_name>.<base_domain>
A record pointing to Load Balancer Front End
每个 DNS 记录的传播可能需要一些时间才能可用。请确保每个 DNS 记录都已传播后再进行验证。 |
要使您的 OpenShift Container Platform 集群使用用户管理的负载均衡器,您必须在集群的 `install-config.yaml` 文件中指定以下配置
# ...
platform:
vsphere:
loadBalancer:
type: UserManaged (1)
apiVIPs:
- <api_ip> (2)
ingressVIPs:
- <ingress_ip> (3)
# ...
1 | 为 `type` 参数设置 `UserManaged` 以指定集群的用户管理的负载均衡器。该参数默认为 `OpenShiftManagedDefault`,表示默认的内部负载均衡器。对于在 `openshift-kni-infra` 命名空间中定义的服务,用户管理的负载均衡器可以将 `coredns` 服务部署到集群中的 Pod,但会忽略 `keepalived` 和 `haproxy` 服务。 |
2 | 指定用户管理的负载均衡器时所需的参数。指定用户管理的负载均衡器的公共 IP 地址,以便 Kubernetes API 可以与用户管理的负载均衡器通信。 |
3 | 指定用户管理的负载均衡器时所需的参数。指定用户管理的负载均衡器的公共 IP 地址,以便用户管理的负载均衡器可以管理集群的入口流量。 |
使用 `curl` CLI 命令验证用户管理的负载均衡器和 DNS 记录配置是否正常运行
通过运行以下命令并观察输出,验证您是否可以访问集群 API
$ curl https://api.<cluster_name>.<base_domain>:6443/version --insecure
如果配置正确,您将收到一个 JSON 对象作为响应
{
"major": "1",
"minor": "11+",
"gitVersion": "v1.11.0+ad103ed",
"gitCommit": "ad103ed",
"gitTreeState": "clean",
"buildDate": "2019-01-09T06:44:10Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
通过运行以下命令并观察输出,验证您是否可以访问集群机器配置
$ curl -v https://api.<cluster_name>.<base_domain>:22623/healthz --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
Content-Length: 0
通过运行以下命令并观察输出,验证您是否可以通过端口 80 访问每个集群应用程序
$ curl http://console-openshift-console.apps.<cluster_name>.<base_domain> -I -L --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 302 Found
content-length: 0
location: https://console-openshift-console.apps.<cluster-name>.<base domain>/
cache-control: no-cacheHTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=39HoZgztDnzjJkq/JuLJMeoKNXlfiVv2YgZc09c3TBOBU4NI6kDXaJH1LdicNhN1UsQWzon4Dor9GWGfopaTEQ==; Path=/; Secure
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Tue, 17 Nov 2020 08:42:10 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=9b714eb87e93cf34853e87a92d6894be; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
通过运行以下命令并观察输出,验证您是否可以通过端口 443 访问每个集群应用程序
$ curl https://console-openshift-console.apps.<cluster_name>.<base_domain> -I -L --insecure
如果配置正确,命令的输出将显示以下响应
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
set-cookie: csrf-token=UlYWOyQ62LWjw2h003xtYSKlh1a0Py2hhctw0WmV2YEdhJjFyQwWcGBsja261dGLgaYO0nxzVErhiXt6QepA7g==; Path=/; Secure; SameSite=Lax
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-frame-options: DENY
x-xss-protection: 1; mode=block
date: Wed, 04 Oct 2023 16:29:38 GMT
content-type: text/html; charset=utf-8
set-cookie: 1e2670d92730b515ce3a1bb65da45062=1bf5e9573c9a2760c964ed1659cc1673; path=/; HttpOnly; Secure; SameSite=None
cache-control: private
您可以在兼容的云平台上安装 OpenShift Container Platform。
您只能在初始安装期间运行安装程序的 `create cluster` 命令一次。 |
您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。
您已验证主机上的云提供商帐户具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。
可选:在创建集群之前,配置外部负载均衡器以代替默认负载均衡器。
您不需要为安装程序指定 API 和 Ingress 静态地址。如果您选择此配置,则必须采取其他措施来定义接受来自每个引用的 vSphere 子网的 IP 地址的网络目标。请参阅“配置用户管理的负载均衡器”部分。 |
更改到包含安装程序的目录并初始化集群部署
$ ./openshift-install create cluster --dir <installation_directory> \ (1)
--log-level=info (2)
1 | 对于 `<installation_directory>`,请指定您自定义的 `./install-config.yaml` 文件的位置。 |
2 | 要查看不同的安装详细信息,请指定 `warn`、`debug` 或 `error` 来代替 `info`。 |
集群部署成功完成后
终端将显示访问集群的说明,包括指向 Web 控制台的链接和 `kubeadmin` 用户的凭据。
凭据信息也会输出到 `<installation_directory>/.openshift_install.log`。
请勿删除安装程序或安装程序创建的文件。两者都需要删除集群。 |
...
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig'
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com
INFO Login to the console with user: "kubeadmin", and password: "password"
INFO Time elapsed: 36m22s
|
您可以通过导出集群kubeconfig
文件以默认系统用户的身份登录到您的集群。kubeconfig
文件包含集群信息,CLI 使用这些信息将客户端连接到正确的集群和API服务器。该文件特定于某个集群,并在OpenShift Container Platform安装期间创建。
您已部署了一个OpenShift Container Platform集群。
您已安装了oc
CLI。
导出kubeadmin
凭据
$ export KUBECONFIG=<installation_directory>/auth/kubeconfig (1)
1 | 对于<installation_directory> ,请指定您存储安装文件的目录的路径。 |
验证您可以使用导出的配置成功运行oc
命令
$ oc whoami
system:admin
安装集群后,必须为注册表 Operator 创建存储。
在不提供可共享对象存储的平台上,OpenShift Image Registry Operator 将自身引导为Removed
。这允许openshift-installer
在这些平台类型上完成安装。
安装后,必须编辑 Image Registry Operator 配置,将managementState
从Removed
切换到Managed
。完成后,必须配置存储。
对于不提供默认存储的平台,Image Registry Operator 最初不可用。安装后,必须配置注册表以使用存储,以便使注册表 Operator 可用。
显示了配置持久卷的说明,这是生产集群所必需的。在适用的情况下,将显示将空目录配置为存储位置的说明,这仅适用于非生产集群。
提供了其他说明,用于通过在升级期间使用Recreate
滚动策略来允许镜像注册表使用块存储类型。
作为集群管理员,安装后必须配置注册表以使用存储。
集群管理员权限。
VMware vSphere 上的集群。
为您的集群预配的持久性存储,例如 Red Hat OpenShift Data Foundation。
当您只有一个副本时,OpenShift Container Platform 支持镜像注册表存储的 |
必须具有“100Gi”容量。
测试表明,使用 RHEL 上的 NFS 服务器作为核心服务的存储后端存在问题。这包括 OpenShift Container Registry 和 Quay、用于监控存储的 Prometheus 以及用于日志存储的 Elasticsearch。因此,不建议使用 RHEL NFS 支持核心服务使用的 PV。 市场上的其他 NFS 实现可能没有这些问题。请联系各个 NFS 实现供应商,以获取有关可能针对这些 OpenShift Container Platform 核心组件完成的任何测试的更多信息。 |
要配置注册表以使用存储,请更改configs.imageregistry/cluster
资源中的spec.storage.pvc
。
使用共享存储时,请查看您的安全设置以防止外部访问。 |
验证您没有注册表 pod
$ oc get pod -n openshift-image-registry -l docker-registry=default
No resourses found in openshift-image-registry namespace
如果您的输出中确实有注册表 pod,则无需继续执行此过程。 |
检查注册表配置
$ oc edit configs.imageregistry.operator.openshift.io
storage:
pvc:
claim: (1)
1 | 保留claim 字段为空白,以允许自动创建image-registry-storage 持久卷声明 (PVC)。PVC 是根据默认存储类生成的。但是,请注意,默认存储类可能提供 ReadWriteOnce (RWO) 卷,例如 RADOS 块设备 (RBD),当您复制到多个副本时,这可能会导致问题。 |
检查clusteroperator
状态
$ oc get clusteroperator image-registry
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
image-registry 4.7 True False False 6h50m
要允许镜像注册表在升级期间作为集群管理员使用块存储类型(例如 vSphere 虚拟机磁盘 (VMDK)),可以使用Recreate
滚动策略。
块存储卷受支持,但不建议在生产集群中与镜像注册表一起使用。在块存储上配置注册表的安装不是高可用的,因为注册表不能拥有多个副本。 |
输入以下命令以将镜像注册表存储设置为块存储类型,修补注册表以便它使用Recreate
滚动策略,并仅使用1
个副本运行
$ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'
为块存储设备预配 PV,并为该卷创建 PVC。请求的块卷使用 ReadWriteOnce (RWO) 访问模式。
创建一个包含以下内容的pvc.yaml
文件,以定义 VMware vSphere PersistentVolumeClaim
对象
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: image-registry-storage (1)
namespace: openshift-image-registry (2)
spec:
accessModes:
- ReadWriteOnce (3)
resources:
requests:
storage: 100Gi (4)
1 | 代表PersistentVolumeClaim 对象的唯一名称。 |
2 | PersistentVolumeClaim 对象的命名空间,即openshift-image-registry 。 |
3 | 持久卷声明的访问模式。使用ReadWriteOnce ,卷可以由单个节点以读写权限挂载。 |
4 | 持久卷声明的大小。 |
输入以下命令以从文件创建PersistentVolumeClaim
对象
$ oc create -f pvc.yaml -n openshift-image-registry
输入以下命令以编辑注册表配置,使其引用正确的 PVC
$ oc edit config.imageregistry.operator.openshift.io -o yaml
storage:
pvc:
claim: (1)
1 | 通过创建自定义 PVC,您可以将claim 字段保留为空白,以默认自动创建image-registry-storage PVC。 |
有关配置注册表存储以使其引用正确的 PVC 的说明,请参阅为 vSphere 配置注册表。
在 OpenShift Container Platform 4.17 中,默认情况下运行的遥测服务(用于提供有关集群健康状况和更新成功的指标)需要互联网访问。如果您的集群连接到互联网,则遥测会自动运行,并且您的集群会注册到OpenShift Cluster Manager。
确认您的OpenShift Cluster Manager清单正确后(由遥测自动维护或手动使用 OpenShift Cluster Manager 维护),使用订阅监控来跟踪您在帐户或多集群级别上的 OpenShift Container Platform 订阅。
有关遥测服务的更多信息,请参阅关于远程健康监控
您可以配置网络组件,使其只在控制平面节点上运行。默认情况下,OpenShift Container Platform 允许机器配置池中的任何节点托管ingressVIP
虚拟 IP 地址。但是,某些环境会在与控制平面节点不同的子网中部署计算节点,这需要将ingressVIP
虚拟 IP 地址配置为在控制平面节点上运行。
您可以通过在单独的子网中创建计算机器集来扩展远程节点。 |
在单独的子网中部署远程节点时,必须将 |
切换到存储install-config.yaml
文件的目录
$ cd ~/clusterconfigs
切换到manifests
子目录
$ cd manifests
创建一个名为cluster-network-avoid-workers-99-config.yaml
的文件
$ touch cluster-network-avoid-workers-99-config.yaml
在编辑器中打开cluster-network-avoid-workers-99-config.yaml
文件,并输入描述 Operator 配置的自定义资源 (CR)
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
name: 50-worker-fix-ipi-rwn
labels:
machineconfiguration.openshift.io/role: worker
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- path: /etc/kubernetes/manifests/keepalived.yaml
mode: 0644
contents:
source: data:,
此清单将ingressVIP
虚拟 IP 地址放置在控制平面节点上。此外,此清单仅在控制平面节点上部署以下进程:
openshift-ingress-operator
keepalived
保存cluster-network-avoid-workers-99-config.yaml
文件。
创建一个manifests/cluster-ingress-default-ingresscontroller.yaml
文件
apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
name: default
namespace: openshift-ingress-operator
spec:
nodePlacement:
nodeSelector:
matchLabels:
node-role.kubernetes.io/master: ""
建议备份manifests
目录。安装程序在创建集群时会删除manifests/
目录。
修改cluster-scheduler-02-config.yml
清单,通过将mastersSchedulable
字段设置为true
来使控制平面节点可调度。默认情况下,控制平面节点不可调度。例如:
$ sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml
如果完成此过程后控制平面节点仍然不可调度,则集群部署将失败。 |
如有必要,您可以选择退出远程健康报告。
可选:查看 vSphere 问题检测器 Operator 的事件,以确定集群是否存在权限或存储配置问题。