5.9. 在 Azure 上将集群安装到一个政府区域
				在 OpenShift Container Platform 版本 4.16 中,您可以在 Microsoft Azure 上将集群安装到一个政府区域。要配置政府区域,请在安装集群前修改 install-config.yaml 文件中的参数。
			
5.9.1. 先决条件
- 您可以参阅有关 OpenShift Container Platform 安装和更新 流程的详细信息。
- 您可以阅读有关 选择集群安装方法的文档,并为用户准备它。
- 您已 将 Azure 帐户配置为 托管集群,并确定要将集群部署到的经过测试和验证的政府区域。
- 如果使用防火墙,将其配置为允许集群需要访问的站点。
- 
							如果环境中无法访问云身份和访问管理(IAM)API,或者不想将管理员级别的凭证 secret 存储在 kube-system命名空间中,您可以 手动创建和维护 IAM 凭证。
- 如果您使用客户管理的加密密钥,准备了用于加密的 Azure 环境。
5.9.2. Azure 政府区域
OpenShift Container Platform 支持将集群部署到 Microsoft Azure Government(MAG) 区域。MAG 是专门为需要运行敏感负载的美国政府机构、企业、企业和其他美国客户特别设计的。MAG 由仅政府数据中心区域组成,它们都赋予了 影响级别 5 授权。
					安装到 MAG 区域需要在 install-config.yaml 文件中手动配置 Azure Government 专用云实例和区域。您还必须更新服务主体以引用适当的政府环境。
				
						Azure 政府区域不能使用安装程序的引导终端提示来选择。您必须在 install-config.yaml 文件中手动定义区域。记得还要根据指定的区域设置专用云实例,如 AzureUSrianCloud。
					
5.9.3. 私有集群
您可以部署不公开外部端点的私有 OpenShift Container Platform 集群。私有集群只能从内部网络访问,且无法在互联网中看到。
默认情况下,OpenShift Container Platform 被置备为使用可公开访问的 DNS 和端点。在部署集群时,私有集群会将 DNS、Ingress Controller 和 API 服务器设置为私有。这意味着集群资源只能从您的内部网络访问,且不能在互联网中看到。
如果集群有任何公共子网,管理员创建的负载均衡器服务可能会公开访问。为确保集群安全性,请验证这些服务是否已明确标注为私有。
要部署私有集群,您必须:
- 使用满足您的要求的现有网络。集群资源可能会在网络上的其他集群间共享。
- 从有权访问的机器中部署: - 您置备的云的 API 服务。
- 您调配的网络上的主机。
- 用于获取安装介质的互联网。
 
您可以使用符合这些访问要求的机器,并按照您的公司规定进行操作。例如,此机器可以是云网络上的堡垒主机,也可以是可通过 VPN 访问网络的机器。
5.9.3.1. Azure 中的私有集群
要在 Microsoft Azure 上创建私有集群,您必须提供一个现有的私有 VNet 和子网来托管集群。安装程序还必须能够解析集群所需的 DNS 记录。安装程序只为内部流量配置 Ingress Operator 和 API 服务器。
						根据您的网络如何连接到私有 VNET,您可能需要使用 DNS 转发器来解析集群的私有 DNS 记录。集群的机器在内部使用 168.63.129.16 进行 DNS 解析。如需更多信息,请参阅 Azure 文档中的 What is Azure Private DNS? 和 What is IP address 168.63.129.16??。
					
集群仍然需要访问互联网来访问 Azure API。
安装私有集群时不需要或创建以下项目:
- 
								BaseDomainResourceGroup,因为集群不会创建公共记录
- 公共 IP 地址
- 公共 DNS 记录
- 公共端点 - The cluster is configured so that the Operators do not create public records for the cluster and all cluster machines are placed in the private subnets that you specify. - The cluster is configured so that the Operators do not create public records for the cluster and all cluster machines are placed in the private subnets that you specify.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.9.3.1.1. 限制
Azure 上的私有集群只受到与使用现有 VNet 相关的限制。
5.9.3.2. 用户定义的出站路由
在 OpenShift Container Platform 中,您可以选择自己的出站路由来连接到互联网。这可让您跳过创建公共 IP 地址和公共负载均衡器的步骤。
						您可在安装集群前修改 install-config.yaml 文件中的参数来配置用户定义的路由。安装集群时,需要一个已存在的 VNet 来使用出站路由,安装程序不负责配置它。
					
当将集群配置为使用用户定义的路由时,安装程序不会创建以下资源:
- 用于访问互联网的出站规则。
- 公共负载均衡器的公共 IP。
- Kubernetes Service 对象,为出站请求将集群机器添加到公共负载均衡器中。
在设置用户定义的路由前,您必须确保以下项目可用:
- 出口到互联网可以拉取容器镜像,除非使用 OpenShift image registry 镜像。
- 集群可以访问 Azure API。
- 配置了各种允许列表端点。您可以在 配置防火墙 部分引用这些端点。
支持一些已存在的网络设置,使用用户定义的路由访问互联网。
5.9.4. 关于为 OpenShift Container Platform 集群重复使用 VNet
在 OpenShift Container Platform 4.16 中,您可以在 Microsoft Azure 中将集群部署到现有的 Azure Virtual Network(VNet)中。如果您这样做,还必须在 VNet 和路由规则中使用现有子网。
通过将 OpenShift Container Platform 部署到现有的 Azure VNet 中,您可以避免新帐户中的服务限制,或者更容易地利用公司所设置的操作限制。如果您无法获得创建 VNet 所需的基础架构创建权限,则可以使用这个选项。
5.9.4.1. 使用 VNet 的要求
当使用现有 VNet 部署集群时,必须在安装集群前执行额外的网络配置。在安装程序置备的基础架构集群中,安装程序通常会创建以下组件,但在安装到现有 VNet 时不会创建它们:
- 子网
- 路由表
- VNets
- 网络安全组
安装程序要求您使用由云提供的 DNS 服务器。不支持使用自定义 DNS 服务器,并导致安装失败。
如果使用自定义 VNet,您必须正确配置它及其子网,供安装程序和集群使用。安装程序不能为集群分配要使用的网络范围,为子网设置路由表,或者设置类似 DHCP 的 VNet 选项,因此您必须在安装集群前这样做。
集群必须能够访问包含现有 VNet 和子网的资源组。虽然集群创建的所有资源都放在它创建的单独资源组中,但有些网络资源则从单独的组中使用。有些集群 Operator 必须能够访问这两个资源组中的资源。例如,Machine API 控制器会为它创建的虚拟机附加 NICS,以便从网络资源组中进行子网。
您的 VNet 必须满足以下特征:
- 
								VNet 的 CIDR 块必须包含 Networking.MachineCIDR范围,它是集群机器的 IP 地址池。
- VNet 及其子网必须属于同一资源组,子网必须配置为使用 Azure 分配的 DHCP IP 地址,而不是静态 IP 地址。
您必须在 VNet 中提供两个子网,一个用于 control plane 机器,一个用于计算机器。因为 Azure 在您指定的区域内的不同可用区中分发机器,所以集群将默认具有高可用性。
							默认情况下,如果您在 install-config.yaml 文件中指定可用区,安装程序会在一个区(region)内的这些可用区间分发 control plane 机器和计算机器。要确保集群的高可用性,请选择至少含有三个可用区的区域。如果您的区域包含的可用区少于三个,安装程序将在可用区中放置多台 control plane 机器。
						
为确保您提供的子网适合,安装程序会确认以下数据:
- 所有指定的子网都存在。
- 有两个专用子网,一个用于 control plane 机器,一个用于计算机器。
- 子网 CIDR 属于您指定的机器 CIDR。机器不会在您不为其提供私有子网的可用区中置备。如果需要,安装程序会创建管理 control plane 和 worker 节点的公共负载均衡器,Azure 会为其分配一个公共 IP 地址。
如果您销毁了使用现有 VNet 的集群,则不会删除 VNet。
5.9.4.1.1. 网络安全组要求
托管 compute 和 control plane 机器的子网的网络安全组需要特定的访问权限,以确保集群通信正确。您必须创建规则以允许访问所需的集群通信端口。
在安装集群前,必须先设置网络安全组规则。如果您试图在没有所需访问权限的情况下安装集群,安装程序无法访问 Azure API,安装会失败。
| port | 描述 | Control plane(控制平面) | Compute | 
|---|---|---|---|
| 
											 | 允许 HTTP 流量 | x | |
| 
											 | 允许 HTTPS 流量 | x | |
| 
											 | 允许与 control plane 机器通信 | x | |
| 
											 | 允许内部与机器配置服务器通信以用于置备机器 | x | 
- 如果使用 Azure Firewall 来限制互联网访问,您可以将 Azure Firewall 配置为允许 Azure API。不需要网络安全组规则。
目前,不支持阻止或限制机器配置服务器端点。机器配置服务器必须公开给网络,以便新置备的机器没有现有配置或状态,才能获取其配置。在这个模型中,信任的根是证书签名请求 (CSR) 端点,即 kubelet 发送其证书签名请求以批准加入集群。因此,机器配置不应用于分发敏感信息,如 secret 和证书。
为确保机器配置服务器端点,端口 22623 和 22624 在裸机场景中是安全的,客户必须配置正确的网络策略。
由于集群组件不会修改 Kubernetes 控制器更新的用户提供的网络安全组,因此为 Kubernetes 控制器在不影响其余环境的情况下创建一个伪网络安全组。
| 协议 | port | 描述 | 
|---|---|---|
| ICMP | N/A | 网络可访问性测试 | 
| TCP | 
											 | 指标 | 
| 
											 | 
											主机级别的服务,包括端口 9  | |
| 
											 | Kubernetes 保留的默认端口 | |
| UDP | 
											 | VXLAN | 
| 
											 | Geneve | |
| 
											 | 
											主机级别的服务,包括端口  | |
| 
											 | IPsec IKE 数据包 | |
| 
											 | IPsec NAT-T 数据包 | |
| 
											 | 
											UDP 端口  
											如果配置外部 NTP 时间服务器,您必须打开 UDP 端口  | |
| TCP/UDP | 
											 | Kubernetes 节点端口 | 
| ESP | N/A | IPsec Encapsulating Security Payload(ESP) | 
| 协议 | port | 描述 | 
|---|---|---|
| TCP | 
											 | etcd 服务器和对等端口 | 
5.9.4.2. 权限划分
从 OpenShift Container Platform 4.3 开始,您不需要安装程序置备的基础架构集群部署所需的所有权限。这与您所在机构可能拥有的权限划分类似:一些个人可以在您的云中创建不同的资源。例如,您可以创建特定于应用程序的对象,如实例、存储和负载均衡器,但不能创建与网络相关的组件,如 VNets、子网或入站规则。
您在创建集群时使用的 Azure 凭证不需要 VNets 和核心网络组件(如子网、路由表、互联网网关、NAT 和 VPN)所需的网络权限。您仍然需要获取集群中的机器需要的应用程序资源的权限,如负载均衡器、安全组、存储帐户和节点。
5.9.4.3. 集群间隔离
因为集群无法修改现有子网中的网络安全组,所以无法在 VNet 中相互隔离集群。
5.9.5. OpenShift Container Platform 互联网访问
在 OpenShift Container Platform 4.16 中,您需要访问互联网来安装集群。
您必须具有以下互联网访问权限:
- 访问 OpenShift Cluster Manager 以下载安装程序并执行订阅管理。如果集群可以访问互联网,并且没有禁用 Telemetry,该服务会自动授权您的集群。
- 访问 Quay.io,以获取安装集群所需的软件包。
- 获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,则可以在置备的某些类型的基础架构上执行受限网络安装。在此过程中,您可以下载所需的内容,并使用它为镜像 registry 填充安装软件包。对于某些安装类型,集群要安装到的环境不需要访问互联网。在更新集群前,您要更新镜像 registry 的内容。
5.9.6. 为集群节点 SSH 访问生成密钥对
					在 OpenShift Container Platform 安装过程中,您可以为安装程序提供 SSH 公钥。密钥通过它们的 Ignition 配置文件传递给 Red Hat Enterprise Linux CoreOS(RHCOS)节点,用于验证对节点的 SSH 访问。密钥添加到每个节点上 core 用户的 ~/.ssh/authorized_keys 列表中,这将启用免密码身份验证。
				
					将密钥传递给节点后,您可以使用密钥对作为用户 核心 通过 SSH 连接到 RHCOS 节点。若要通过 SSH 访问节点,必须由 SSH 为您的本地用户管理私钥身份。
				
					如果要通过 SSH 连接到集群节点来执行安装调试或灾难恢复,则必须在安装过程中提供 SSH 公钥。./openshift-install gather 命令还需要在集群节点上设置 SSH 公钥。
				
不要在生产环境中跳过这个过程,在生产环境中需要灾难恢复和调试。
您必须使用本地密钥,而不是使用特定平台方法配置 的密钥,如 AWS 密钥对。
流程
- 如果您在本地计算机上没有可用于在集群节点上进行身份验证的现有 SSH 密钥对,请创建一个。例如,在使用 Linux 操作系统的计算机上运行以下命令: - ssh-keygen -t ed25519 -N '' -f <path>/<file_name> - $ ssh-keygen -t ed25519 -N '' -f <path>/<file_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 指定新 SSH 密钥的路径和文件名,如~/.ssh/id_ed25519。如果您已有密钥对,请确保您的公钥位于~/.ssh目录中。
 注意- 如果您计划在 - x86_64、- ppc64le和- s390x架构上安装使用 RHEL 加密库(这些加密库已提交给 NIST 用于 FIPS 140-2/140-3 验证)的 OpenShift Container Platform 集群,则不要创建使用- ed25519算法的密钥。相反,创建一个使用- rsa或- ecdsa算法的密钥。
- 查看公共 SSH 密钥: - cat <path>/<file_name>.pub - $ cat <path>/<file_name>.pub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如,运行以下命令来查看 - ~/.ssh/id_ed25519.pub公钥:- cat ~/.ssh/id_ed25519.pub - $ cat ~/.ssh/id_ed25519.pub- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 SSH 私钥身份添加到本地用户的 SSH 代理(如果尚未添加)。在集群节点上,或者要使用 - ./openshift-install gather命令,需要对该密钥进行 SSH 代理管理,才能在集群节点上进行免密码 SSH 身份验证。注意- 在某些发行版中,自动管理默认 SSH 私钥身份,如 - ~/.ssh/id_rsa和- ~/.ssh/id_dsa。- 如果 - ssh-agent进程尚未为您的本地用户运行,请将其作为后台任务启动:- eval "$(ssh-agent -s)" - $ eval "$(ssh-agent -s)"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Agent pid 31874 - Agent pid 31874- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果集群处于 FIPS 模式,则只使用 FIPS 兼容算法来生成 SSH 密钥。密钥必须是 RSA 或 ECDSA。 
 
- 将 SSH 私钥添加到 - ssh-agent:- ssh-add <path>/<file_name> - $ ssh-add <path>/<file_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 指定 SSH 私钥的路径和文件名,如~/.ssh/id_ed25519.pub
 - 输出示例 - Identity added: /home/<you>/<path>/<file_name> (<computer_name>) - Identity added: /home/<you>/<path>/<file_name> (<computer_name>)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
后续步骤
- 安装 OpenShift Container Platform 时,为安装程序提供 SSH 公钥。
5.9.7. 获取安装程序
在安装 OpenShift Container Platform 前,将安装文件下载到您用于安装的主机上。
先决条件
- 您有一台运行 Linux 或 macOS 的计算机,本地磁盘空间为 500 MB。
流程
- 访问 OpenShift Cluster Manager 站点的 Infrastructure Provider 页面。如果您有红帽帐户,请使用您的凭证登录。如果没有,请创建一个帐户。
- 选择您的基础架构供应商。
- 进入到安装类型的页面,下载与您的主机操作系统和架构对应的安装程序,并将该文件放在您要存储安装配置文件的目录中。 重要- 安装程序会在用来安装集群的计算机上创建几个文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。这两个文件都需要删除集群。 重要- 删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,请为特定云供应商完成 OpenShift Container Platform 卸载流程。 
- 提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令: - tar -xvf openshift-install-linux.tar.gz - $ tar -xvf openshift-install-linux.tar.gz- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。此 pull secret 允许您与所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。
5.9.8. 手动创建安装配置文件
安装集群要求您手动创建安装配置文件。
先决条件
- 您在本地机器上有一个 SSH 公钥来提供给安装程序。该密钥将用于在集群节点上进行 SSH 身份验证,以进行调试和灾难恢复。
- 已获取 OpenShift Container Platform 安装程序和集群的 pull secret。
流程
- 创建一个安装目录来存储所需的安装资产: - mkdir <installation_directory> - $ mkdir <installation_directory>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- 您必须创建一个目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。 
- 自定义提供的 - install-config.yaml文件模板示例,并将其保存在- <installation_directory>中。注意- 此配置文件必须命名为 - install-config.yaml。
- 备份 - install-config.yaml文件,以便您可以使用它安装多个集群。重要- install-config.yaml文件会在安装过程的下一步中使用。现在必须备份它。
5.9.8.1. 集群安装的最低资源要求
每台集群机器都必须满足以下最低要求:
| 机器 | 操作系统 | vCPU [1] | 虚拟内存 | Storage | 每秒输入/输出 (IOPS) [2] | 
|---|---|---|---|---|---|
| bootstrap | RHCOS | 4 | 16 GB | 100 GB | 300 | 
| Control plane(控制平面) | RHCOS | 4 | 16 GB | 100 GB | 300 | 
| Compute | RHCOS、RHEL 8.6 及更新版本 [3] | 2 | 8 GB | 100 GB | 300 | 
- 当未启用并发多线程 (SMT) 或超线程时,一个 vCPU 相当于一个物理内核。启用后,使用以下公式来计算对应的比例:(每个内核数的线程)× sockets = vCPU。
- OpenShift Container Platform 和 Kubernetes 对磁盘性能非常敏感,建议使用更快的存储速度,特别是 control plane 节点上需要 10 ms p99 fsync 持续时间的 etcd。请注意,在许多云平台上,存储大小和 IOPS 可一起扩展,因此您可能需要过度分配存储卷来获取足够的性能。
- 与所有用户置备的安装一样,如果您选择在集群中使用 RHEL 计算机器,则负责所有操作系统生命周期管理和维护,包括执行系统更新、应用补丁和完成所有其他必要的任务。RHEL 7 计算机器的使用已弃用,并已在 OpenShift Container Platform 4.10 及更新的版本中删除。
从 OpenShift Container Platform 版本 4.13 开始,RHCOS 基于 RHEL 版本 9.2,它更新了微架构要求。以下列表包含每个架构需要的最小指令集架构 (ISA):
- x86-64 体系结构需要 x86-64-v2 ISA
- ARM64 架构需要 ARMv8.0-A ISA
- IBM Power 架构需要 Power 9 ISA
- s390x 架构需要 z14 ISA
如需更多信息,请参阅 RHEL 架构。
							您需要使用将 PremiumIO 参数设置为 true 的 Azure 虚拟机。
						
如果平台的实例类型满足集群机器的最低要求,则 OpenShift Container Platform 支持使用它。
5.9.8.2. 为 Azure 测试的实例类型
以下 Microsoft Azure 实例类型已经 OpenShift Container Platform 测试。
例 5.36. 基于 64 位 x86 架构的机器类型
- 
									c4.*
- 
									c5.*
- 
									c5a.*
- 
									i3.*
- 
									m4.*
- 
									m5.*
- 
									m5a.*
- 
									m6a.*
- 
									m6i.*
- 
									r4.*
- 
									r5.*
- 
									r5a.*
- 
									r6i.*
- 
									t3.*
- 
									t3a.*
5.9.8.3. 为 Azure 虚拟机启用可信启动
在 Azure 上安装集群时,您可以启用两个可信启动功能: 安全引导 和虚拟化可信平台模块。
请参阅 Azure 文档中有关 虚拟机大小 的信息,以了解虚拟机支持这些功能的大小。
可信启动只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
- 
								您已创建了 install-config.yaml文件。
流程
- 在部署集群前,使用文本编辑器编辑 - install-config.yaml文件并添加以下小节:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.9.8.4. 启用机密虚拟机
您可在安装集群前启用机密虚拟机。您可以为计算节点、control plane 节点或所有节点启用机密虚拟机。
使用机密虚拟机只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以使用带有以下虚拟机大小的机密虚拟机:
- DCasv5-series
- DCadsv5-series
- ECasv5-series
- ECadsv5-series
64 位 ARM 架构目前不支持机密虚拟机。
先决条件
- 
								您已创建了 install-config.yaml文件。
流程
- 在部署集群前,使用文本编辑器编辑 - install-config.yaml文件并添加以下小节:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.9.8.5. Azure 的自定义 install-config.yaml 文件示例
						您可以自定义 install-config.yaml 文件,以指定有关 OpenShift Container Platform 集群平台的更多详情,或修改所需参数的值。
					
							此示例 YAML 文件仅供参考。您必须使用安装程序来获取 install-config.yaml 文件,并进行修改。
						
- 1 10 21
- 必需。
- 2 6
- 如果没有提供这些参数和值,安装程序会提供默认值。
- 3 7
- controlPlane部分是一个单个映射,但- compute部分是一系列映射。为满足不同数据结构的要求,- compute部分的第一行必须以连字符- -开头,controlPlane- 部分的第一行则不以连字符开头。仅使用一个 control plane 池。
- 4
- 是否要启用或禁用并发多线程或超线程。默认情况下,启用并发多线程以提高机器内核的性能。您可以通过将 参数值设置为Disabled来禁用它。如果在某些集群机器中禁用并发多线程,则必须在所有集群机器中禁用它。重要如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。如果您禁用并发多线程,请为您的机器使用较大的虚拟机类型,如 Standard_D8s_v3。
- 5 8
- 您可以指定要使用的磁盘大小(以 GB 为单位)。control plane 节点的最低推荐值为 1024 GB。
- 9
- 指定要将机器部署到的区域列表。如需高可用性,请至少指定两个区域。
- 11
- 要安装的集群网络插件。默认值OVNKubernetes是唯一支持的值。
- 12
- 可选:应该用来引导 control plane 和计算机器的自定义 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。platform.azure.defaultMachinePlatform.osImage下的publisher,offer,sku, 和version参数应用到 control plane 和计算机器。如果设置了controlPlane.platform.azure.osImage或compute.platform.azure.osImage下的参数,它们会覆盖platform.azure.defaultMachinePlatform.osImage参数。
- 13
- 指定包含基域的 DNS 区的资源组的名称。
- 14
- 指定要安装集群的现有资源组的名称。如果未定义,则会为集群创建新的资源组。
- 15
- 如果使用现有的 VNet,请指定包含它的资源组的名称。
- 16
- 如果使用现有的 VNet,请指定其名称。
- 17
- 如果使用现有的 VNet,请指定托管 control plane 机器的子网名称。
- 18
- 如果使用现有的 VNet,请指定托管计算机器的子网名称。
- 19
- 您可以自定义自己的出站路由。配置用户定义的路由可防止在集群中公开外部端点。出口的用户定义路由需要将集群部署到现有的 VNet。
- 20
- 指定要将集群部署到的 Azure 云环境的名称。将AzureUS GovernmentCloud设置为部署到 Microsoft Azure Government(MAG)区域。默认值为AzurePublicCloud。
- 22
- 是否启用或禁用 FIPS 模式。默认情况下不启用 FIPS 模式。如果启用了 FIPS 模式,运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS(RHCOS)机器会绕过默认的 Kubernetes 加密套件,并使用由 RHCOS 提供的加密模块。重要要为集群启用 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 核心组件使用 RHEL 加密库,在 x86_64、ppc64le 和 s390x 架构上提交到 NIST FIPS 140-2/140-3 Validation。 
- 23
- 您可以选择提供您用来访问集群中机器的sshKey值。注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent进程使用的 SSH 密钥。
- 24
- 如何发布集群的面向用户的端点。将publish设置为Internal以部署一个私有集群,它不能被互联网访问。默认值为External。
5.9.8.6. 在安装过程中配置集群范围的代理
						生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。
					
先决条件
- 
								您有一个现有的 install-config.yaml文件。
- 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在 - Proxy 对象的- spec.noProxy字段中添加站点来绕过代理。注意- Proxy对象- status.noProxy字段使用安装配置中的- networking.machineNetwork[].cidr、- networking.clusterNetwork[].cidr和- networking.serviceNetwork[]字段的值填充。- 对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装, - Proxy对象- status.noProxy字段也会使用实例元数据端点填充(- 169.254.169.254)。
流程
- 编辑 - install-config.yaml文件并添加代理设置。例如:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是http。
- 2
- 用于创建集群外 HTTPS 连接的代理 URL。
- 3
- 要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上.以仅匹配子域。例如,.y.com匹配x.y.com,但不匹配y.com。使用*绕过所有目的地的代理。
- 4
- 如果提供,安装程序会在openshift-config命名空间中生成名为user-ca-bundle的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建trusted-ca-bundle配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并,Proxy对象的trustedCA字段中也会引用此配置映射。additionalTrustBundle字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
- 5
- 可选:决定Proxy对象的配置以引用trustedCA字段中user-ca-bundle配置映射的策略。允许的值是Proxyonly和Always。仅在配置了http/https代理时,使用Proxyonly引用user-ca-bundle配置映射。使用Always始终引用user-ca-bundle配置映射。默认值为Proxyonly。
 注意- 安装程序不支持代理的 - readinessEndpoints字段。注意- 如果安装程序超时,重启并使用安装程序的 - wait-for命令完成部署。例如:- ./openshift-install wait-for install-complete --log-level debug - $ ./openshift-install wait-for install-complete --log-level debug- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 保存该文件并在安装 OpenShift Container Platform 时引用。
						安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec。
					
							只支持名为 cluster 的 Proxy 对象,且无法创建额外的代理。
						
5.9.9. 部署集群
您可以在兼容云平台上安装 OpenShift Container Platform。
						在初始安装过程中,您只能运行安装程序的 create cluster 命令一次。
					
先决条件
- 您已使用托管集群的云平台配置了帐户。
- 您有 OpenShift Container Platform 安装程序和集群的 pull secret。
- 您有一个 Azure 订阅 ID 和租户 ID。
- 如果要使用服务主体安装集群,则有其应用程序 ID 和密码。
- 如果您要使用系统分配的受管身份安装集群,需要在您要从其中运行安装程序的虚拟机上启用它。
- 如果您要使用用户分配的受管身份安装集群,需要满足以下先决条件: - 您有它的客户端 ID。
- 您已将其分配给您要从其运行安装程序的虚拟机。
 
流程
- 可选:如果您之前在这个计算机上运行安装程序,并希望使用替代的服务主体或受管身份,请进入 - ~/.azure/目录并删除- osServicePrincipal.json配置文件。- 删除此文件可防止安装程序自动重复使用之前安装中的订阅和验证值。 
- 进入包含安装程序的目录并初始化集群部署: - ./openshift-install create cluster --dir <installation_directory> \ --log-level=info- $ ./openshift-install create cluster --dir <installation_directory> \- 1 - --log-level=info- 2 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果安装程序无法找到之前安装中的 - osServicePrincipal.json配置文件,会提示您输入 Azure 订阅和验证值。
- 为您的订阅输入以下 Azure 参数值: - Azure subscription id :输入用于集群的订阅 ID。
- Azure 租户 id :输入租户 ID。
 
- 根据您用来部署集群的 Azure 身份,在提示输入 azure 服务主体客户端 id 时执行以下操作之一: - 如果您使用服务主体,请输入其应用程序 ID。
- 如果您使用系统分配的受管身份,请将此值设为空白。
- 如果您使用用户分配的受管身份,请指定其客户端 ID。
 
- 根据您用来部署集群的 Azure 身份,在提示输入 azure 服务主体客户端 secret 时执行以下操作之一: - 如果您使用服务主体,请输入其密码。
- 如果您使用系统分配的受管身份,请将此值设为空白。
- 如果您使用用户分配的受管身份,请将此值设为空白。
 
					在以前的版本中,安装程序会创建一个 osServicePrincipal.json 配置文件,并将此文件存储在计算机上的 ~/.azure/ 目录中。这样可确保安装程序在目标平台上创建 OpenShift Container Platform 集群时可以加载配置集。
				
验证
当集群部署成功完成时:
- 
							终端会显示用于访问集群的说明,包括指向 Web 控制台和 kubeadmin用户的凭证的链接。
- 
							凭证信息还会输出到 <installation_directory>/.openshift_install.log.
不要删除安装程序或安装程序所创建的文件。需要这两者才能删除集群。
输出示例
- 
								安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外是,您必须手动批准待处理的 node-bootstrapper证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书 中恢复的文档。
- 建议您在 Ignition 配置文件生成后的 12 小时内使用它们,因为 24 小时的证书会在集群安装后的 16 小时到 22 小时间进行轮转。通过在 12 小时内使用 Ignition 配置文件,您可以避免在安装过程中因为执行了证书更新而导致安装失败的问题。
5.9.10. 安装 OpenShift CLI
					您可以安装 OpenShift CLI(oc)来使用命令行界面与 OpenShift Container Platform 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc。
				
						如果安装了旧版本的 oc,则可能无法使用 OpenShift Container Platform 4.16 中的所有命令。下载并安装新版本的 oc。
					
在 Linux 上安装 OpenShift CLI
					您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。
				
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 产品变体 下拉列表中选择架构。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.16 Linux Client 条目旁的 Download Now 来保存文件。
- 解包存档: - tar xvf <file> - $ tar xvf <file>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - oc二进制文件放到- PATH 中的目录中。- 要查看您的 - PATH,请执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 安装 OpenShift CLI 后,可以使用 - oc命令:- oc <command> - $ oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
在 Windows 上安装 OpenShift CLI
					您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc)二进制文件。
				
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.16 Windows Client 条目旁的 Download Now 来保存文件。
- 使用 ZIP 程序解压存档。
- 将 - oc二进制文件移到- PATH 中的目录中。- 要查看您的 - PATH,请打开命令提示并执行以下命令:- path - C:\> path- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 安装 OpenShift CLI 后,可以使用 - oc命令:- oc <command> - C:\> oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
在 macOS 上安装 OpenShift CLI
					您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。
				
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.16 macOS Client 条目旁的 Download Now 来保存文件。 注意- 对于 macOS arm64,请选择 OpenShift v4.16 macOS arm64 Client 条目。 
- 解包和解压存档。
- 将 - oc二进制文件移到 PATH 的目录中。- 要查看您的 - PATH,请打开终端并执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 使用 - oc命令验证安装:- oc <command> - $ oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.9.11. 使用 CLI 登录集群
					您可以通过导出集群 kubeconfig 文件,以默认系统用户身份登录集群。kubeconfig 文件包含有关集群的信息,供 CLI 用于将客户端连接到正确的集群和 API 服务器。该文件特定于集群,在 OpenShift Container Platform 安装过程中创建。
				
先决条件
- 已部署 OpenShift Container Platform 集群。
- 
							已安装 ocCLI。
流程
- 导出 - kubeadmin凭证:- export KUBECONFIG=<installation_directory>/auth/kubeconfig - $ export KUBECONFIG=<installation_directory>/auth/kubeconfig- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 对于<installation_directory>,请指定安装文件保存到的目录的路径。
 
- 验证您可以使用导出的配置成功运行 - oc命令:- oc whoami - $ oc whoami- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - system:admin - system:admin- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.9.12. OpenShift Container Platform 的 Telemetry 访问
在 OpenShift Container Platform 4.16 中,默认运行的 Telemetry 服务提供有关集群健康状况和成功更新的指标,需要访问互联网。如果您的集群连接到互联网,Telemetry 会自动运行,而且集群会注册到 OpenShift Cluster Manager。
确认 OpenShift Cluster Manager 清单正确后,可以由 Telemetry 自动维护,也可以使用 OpenShift Cluster Manager 手动维护,使用订阅监控来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。