OpenShift Container Platform 安装程序提供四种部署集群的方法,详情如下:
交互式:您可以使用基于 Web 的辅助安装程序部署集群。对于连接到互联网的网络的集群,这是一种理想的方法。辅助安装程序是安装 OpenShift Container Platform 的最简单方法,它提供智能默认值,并在安装集群之前执行预检验证。它还为自动化和高级配置场景提供 RESTful API。
基于本地代理的:您可以使用面向断开环境或受限网络的基于代理的安装程序在本地部署集群。它提供了辅助安装程序的许多好处,但您必须先下载并配置基于代理的安装程序。配置是使用命令行界面完成的。此方法非常适合断开连接的环境。
自动化的:您可以在安装程序预配的基础架构上部署集群。安装程序使用每个集群主机的底板管理控制器 (BMC) 进行预配。您可以在连接或断开连接的环境中部署集群。
完全控制:您可以在自己准备和维护的基础架构上部署集群,这提供了最大的可定制性。您可以在连接或断开连接的环境中部署集群。
每种方法都部署具有以下特性的集群:
默认情况下可用的高可用性基础架构,没有单点故障。
管理员可以控制应用哪些更新以及何时应用。
您可以使用安装程序部署每种类型的集群。安装程序生成主要资产,例如引导程序、控制平面和计算机的 Ignition 配置文件。如果您正确配置了基础架构,则可以使用这三种机器配置启动 OpenShift Container Platform 集群。
OpenShift Container Platform 安装程序使用一组目标和依赖项来管理集群安装。安装程序有一组必须实现的目标,每个目标都有一组依赖项。因为每个目标只关注其自身的依赖项,所以安装程序可以并行地执行多个目标,最终目标是运行中的集群。安装程序识别并使用现有组件,而不是运行命令再次创建它们,因为程序满足了依赖项。
安装后,每个集群机器都使用 Red Hat Enterprise Linux CoreOS (RHCOS) 作为操作系统。RHCOS 是 Red Hat Enterprise Linux (RHEL) 的不可变容器主机版本,其特点是具有默认启用 SELinux 的 RHEL 内核。RHCOS 包括 `kubelet`(Kubernetes 节点代理)和 CRI-O 容器运行时(针对 Kubernetes 进行了优化)。
OpenShift Container Platform 4.17 集群中的每个控制平面机器都必须使用 RHCOS,其中包括一个名为 Ignition 的关键首次启动预配工具。此工具使集群能够配置机器。操作系统更新作为可引导容器映像交付(使用 **OSTree** 作为后端),由机器配置运算符在集群中部署。使用 **rpm-ostree** 通过原子操作在每台机器上就地进行实际的操作系统更改。这些技术共同使 OpenShift Container Platform 能够像管理集群上的任何其他应用程序一样管理操作系统,通过就地升级使整个平台保持最新。这些就地更新可以减少运营团队的工作负担。
如果将 RHCOS 用作所有集群机器的操作系统,则集群将管理其组件和机器的所有方面,包括操作系统。因此,只有安装程序和机器配置运算符才能更改机器。安装程序使用 Ignition 配置文件来设置每台机器的精确状态,机器配置运算符在安装后完成对机器的更多更改,例如应用新的证书或密钥。
术语表定义了与安装内容相关的常用术语。阅读以下术语列表,以便更好地理解安装过程。
一个托管在console.redhat.com的安装程序,它提供基于 Web 的用户界面或 RESTful API 来创建集群配置。辅助安装程序生成一个发现映像。集群机器使用发现映像启动,该映像安装 RHCOS 和代理。辅助安装程序和代理共同为集群提供预安装验证和安装。
一种类似于辅助安装程序的安装程序,但您必须首先下载基于代理的安装程序。基于代理的安装程序非常适合于离线环境。
一台临时机器,运行部署 OpenShift Container Platform 控制平面所需的最小 Kubernetes 配置。
一个容器编排层,它提供 API 和接口来定义、部署和管理容器的生命周期。也称为控制平面机器。
负责执行集群用户工作负载的节点。也称为工作节点。
在某些情况下,数据中心的部分区域可能无法访问互联网,即使通过代理服务器也是如此。您仍然可以在这些环境中安装 OpenShift Container Platform,但是您必须下载所需的软件和镜像,并使它们可用于离线环境。
一个程序,用于配置基础设施并部署集群。
安装程序部署并配置集群运行的基础设施。
Ignition 工具在操作系统初始化期间用于配置 Red Hat Enterprise Linux CoreOS (RHCOS) 的文件。安装程序会生成不同的 Ignition 配置文件来初始化引导节点、控制平面节点和工作节点。
以 JSON 或 YAML 格式表示 Kubernetes API 对象的规范。配置文件可以包含部署、配置映射、密钥、守护进程集等等。
一个主要的节点代理,运行在集群中的每个节点上,以确保容器在 Pod 中运行。
负载均衡器充当客户端的单点联系。API 的负载均衡器将传入流量分布到控制平面节点。
一个管理和应用集群中节点的基础操作系统和容器运行时(包括内核和 kubelet 之间的所有内容)的配置和更新的操作符。
在 OpenShift Container Platform 集群中打包、部署和管理 Kubernetes 应用程序的首选方法。操作符将人工操作知识编码到易于打包并与客户共享的软件中。
您可以在您提供的基础设施上安装 OpenShift Container Platform。您可以使用安装程序生成配置集群基础设施所需的资源,创建集群基础设施,然后将集群部署到您提供的基础设施。
除了辅助安装程序之外,安装 OpenShift Container Platform 集群时,必须从 OpenShift 集群管理器混合云控制台上的相应集群类型页面下载安装程序。此控制台管理
帐户的 REST API。
注册表令牌,即用于获取所需组件的拉取密钥。
集群注册,它将集群标识与您的 Red Hat 帐户关联,以方便收集使用情况指标。
在 OpenShift Container Platform 4.17 中,安装程序是一个 Go 二进制文件,它对一组资源执行一系列文件转换。与安装程序交互的方式取决于您的安装类型。请考虑以下安装用例
要使用辅助安装程序部署集群,必须使用辅助安装程序配置集群设置。无需下载和配置安装程序。完成集群配置设置后,下载一个发现 ISO,然后使用该镜像启动集群机器。您可以使用辅助安装程序在 Nutanix、vSphere 和裸机上安装集群,并实现完全集成,也可以在其他平台上安装,但没有集成。如果在裸机上安装,您必须提供所有集群基础设施和资源,包括网络、负载均衡、存储和各个集群机器。
要使用基于代理的安装程序部署集群,您可以首先下载基于代理的安装程序。然后,您可以配置集群并生成发现镜像。使用发现镜像启动集群机器,该镜像将安装一个代理,该代理与安装程序通信并为您处理配置,而不是您自己与安装程序交互或设置配置程序机器。您必须提供所有集群基础设施和资源,包括网络、负载均衡、存储和各个集群机器。这种方法非常适合离线环境。
对于安装程序配置的基础设施的集群,您将基础设施引导和配置委托给安装程序,而不是自己进行。安装程序创建支持集群所需的所有网络、机器和操作系统,除非您在裸机上安装。如果在裸机上安装,您必须提供所有集群基础设施和资源,包括引导机器、网络、负载均衡、存储和各个集群机器。
如果您配置和管理集群的基础设施,您必须提供所有集群基础设施和资源,包括引导机器、网络、负载均衡、存储和各个集群机器。
对于安装程序,程序在安装过程中使用三组文件:名为install-config.yaml
的安装配置文件、Kubernetes 清单文件和机器类型的 Ignition 配置文件。
您可以在安装过程中修改 Kubernetes 和控制底层 RHCOS 操作系统的 Ignition 配置文件。但是,没有可用的验证来确认您对这些对象所做的任何修改是否合适。如果您修改这些对象,可能会导致集群无法正常工作。由于存在此风险,除非您遵循已记录的过程或 Red Hat 支持人员指示您这样做,否则不支持修改 Kubernetes 和 Ignition 配置文件。 |
安装配置文件将转换为 Kubernetes 清单文件,然后将清单文件包装到 Ignition 配置文件中。安装程序使用这些 Ignition 配置文件来创建集群。
运行安装程序时,所有安装配置文件都会被清除,因此请务必备份所有您想再次使用的配置文件。
您无法修改安装过程中设置的参数,但可以在安装后修改许多集群属性。 |
使用Assisted Installer安装涉及到通过基于Web的用户界面或RESTful API交互式地创建集群配置。Assisted Installer用户界面会提示您输入所需的值,并为其余参数提供合理的默认值,除非您在用户界面或API中更改它们。Assisted Installer会生成一个发现镜像,您可以下载并使用它来引导集群机器。该镜像会安装RHCOS和一个代理,代理会为您处理配置过程。您可以使用Assisted Installer和Nutanix、vSphere和裸机上的完全集成来安装OpenShift Container Platform。此外,您还可以在其他平台上使用Assisted Installer安装OpenShift Container Platform,无需集成。
OpenShift Container Platform管理集群的所有方面,包括操作系统本身。每台机器都使用引用其加入的集群中托管的资源的配置启动。此配置允许集群在应用更新时自行管理。
如果可能,请使用Assisted Installer功能,避免下载和配置基于代理的安装程序。
基于代理的安装类似于使用Assisted Installer,不同之处在于您必须首先下载并安装基于代理的安装程序。当您需要Assisted Installer的便捷性,但需要在断开连接的环境中安装集群时,基于代理的安装非常有用。
如果可能,请使用基于代理的安装功能,避免必须创建具有引导VM的供应程序机器,然后配置和维护集群基础设施。
默认安装类型使用安装程序配置的基础设施。默认情况下,安装程序充当安装向导,提示您输入无法自行确定的值,并为其余参数提供合理的默认值。您还可以自定义安装过程以支持高级基础设施场景。安装程序会为集群配置底层基础设施。
您可以安装标准集群或自定义集群。对于标准集群,您只需提供安装集群所需的最低限度详细信息。对于自定义集群,您可以指定有关平台的更多详细信息,例如控制平面使用的机器数量、集群部署的虚拟机类型或Kubernetes服务网络的CIDR范围。
如果可能,请使用此功能,避免必须配置和维护集群基础设施。在所有其他环境中,您都使用安装程序生成配置集群基础设施所需的资源。
对于安装程序配置的基础设施集群,OpenShift Container Platform管理集群的所有方面,包括操作系统本身。每台机器都使用引用其加入的集群中托管的资源的配置启动。此配置允许集群在应用更新时自行管理。
您也可以在您提供的基础设施上安装OpenShift Container Platform。您可以使用安装程序生成配置集群基础设施所需的资源,创建集群基础设施,然后将集群部署到您提供的基础设施。
如果您不使用安装程序配置的基础设施,则必须自行管理和维护集群资源。以下列表详细介绍了其中一些自管理资源。
构成集群的控制平面和计算机的底层基础设施
负载均衡器
集群网络,包括DNS记录和所需的子网
集群基础设施和应用程序的存储
如果您的集群使用用户配置的基础设施,您可以选择向集群添加RHEL计算节点。
配置集群时,集群中的每台机器都需要有关集群的信息。OpenShift Container Platform在初始配置期间使用临时的引导机器,为永久控制平面提供所需的信息。临时引导机器使用描述如何创建集群的Ignition配置文件启动。引导机器创建构成控制平面的控制平面机器。然后,控制平面机器创建计算机器,也称为工作节点。下图说明了此过程。
集群机器初始化后,引导机器将被销毁。所有集群都使用引导过程来初始化集群,但是如果您为集群配置基础设施,则必须手动完成许多步骤。
|
引导集群涉及以下步骤:
引导机器启动并开始托管控制平面机器启动所需的远程资源。如果您配置基础设施,此步骤需要手动干预。
引导机器启动单节点 etcd 集群和临时 Kubernetes 控制平面。
控制平面机器从引导机器获取远程资源并完成启动。如果您配置基础设施,此步骤需要手动干预。
临时控制平面将生产控制平面调度到生产控制平面机器。
集群版本运算符 (CVO)上线并安装 etcd 运算符。etcd 运算符在所有控制平面节点上扩展 etcd。
临时控制平面关闭并控制权转移到生产控制平面。
引导机器将 OpenShift Container Platform 组件注入生产控制平面。
安装程序关闭引导机器。如果您配置基础设施,此步骤需要手动干预。
控制平面设置计算节点。
控制平面以一组运算符的形式安装其他服务。
此引导过程的结果是正在运行的 OpenShift Container Platform 集群。然后,集群下载并配置日常操作所需的其余组件,包括在受支持的环境中创建计算机器。
当以下安装健康检查成功时,OpenShift Container Platform 安装完成。
供应者可以访问 OpenShift Container Platform 网络控制台。
所有控制平面节点均已就绪。
所有集群操作符均可用。
安装完成后,负责工作节点的特定集群操作符将持续尝试供应所有工作节点。所有工作节点报告为 |
安装完成后,您可以继续监控集群中节点的状态。
安装程序在终端中成功解析。
显示所有工作节点的状态
$ oc get nodes
NAME STATUS ROLES AGE VERSION
example-compute1.example.com Ready worker 13m v1.21.6+bb8d50a
example-compute2.example.com Ready worker 13m v1.21.6+bb8d50a
example-compute4.example.com Ready worker 14m v1.21.6+bb8d50a
example-control1.example.com Ready master 52m v1.21.6+bb8d50a
example-control2.example.com Ready master 55m v1.21.6+bb8d50a
example-control3.example.com Ready master 55m v1.21.6+bb8d50a
显示所有工作机器节点的阶段
$ oc get machines -A
NAMESPACE NAME PHASE TYPE REGION ZONE AGE
openshift-machine-api example-zbbt6-master-0 Running 95m
openshift-machine-api example-zbbt6-master-1 Running 95m
openshift-machine-api example-zbbt6-master-2 Running 95m
openshift-machine-api example-zbbt6-worker-0-25bhp Running 49m
openshift-machine-api example-zbbt6-worker-0-8b4c2 Running 49m
openshift-machine-api example-zbbt6-worker-0-jkbqt Running 49m
openshift-machine-api example-zbbt6-worker-0-qrl5b Running 49m
OpenShift Container Platform 安装程序的范围故意缩小。这旨在简化安装并确保成功。安装完成后,您可以完成更多配置任务。
有关 OpenShift Container Platform 配置资源的详细信息,请参见可用的集群自定义项。
OpenShift Local 支持快速应用程序开发,帮助您开始构建 OpenShift Container Platform 集群。OpenShift Local 旨在在本地计算机上运行,以简化设置和测试,并在本地模拟云开发环境,其中包含开发基于容器的应用程序所需的所有工具。
无论您使用哪种编程语言,OpenShift Local 都可以托管您的应用程序,并在您的本地 PC 上提供一个最小化的、预配置的 Red Hat OpenShift Container Platform 集群,无需基于服务器的基础设施。
在托管环境中,OpenShift Local 可以创建微服务,将其转换为镜像,并直接在运行 Linux、macOS 或 Windows 10 或更高版本的笔记本电脑或台式机上在 Kubernetes 托管的容器中运行它们。
有关 OpenShift Local 的更多信息,请参见Red Hat OpenShift Local 概述。
在 OpenShift Container Platform 4.17 中,您可以安装一个使用安装程序供应的基础设施的集群,这些基础设施位于以下平台上:
Amazon Web Services (AWS)
裸机
Google Cloud Platform (GCP)
IBM Cloud®
Microsoft Azure
Microsoft Azure Stack Hub
Nutanix
Red Hat OpenStack Platform (RHOSP)
最新的 OpenShift Container Platform 版本同时支持最新的 RHOSP 长期支持版本和中间版本。有关完整的 RHOSP 版本兼容性,请参见RHOSP 上的 OpenShift Container Platform 支持矩阵。
VMware vSphere
对于这些集群,所有机器(包括运行安装过程的计算机)必须具有直接的互联网访问权限,才能提取平台容器的镜像并向 Red Hat 提供遥测数据。
安装后,不支持以下更改:
|
在 OpenShift Container Platform 4.17 中,您可以安装一个使用用户供应的基础设施的集群,这些基础设施位于以下平台上:
AWS
Azure
Azure Stack Hub
裸机
GCP
IBM Power®
IBM Z® 或 IBM® LinuxONE
RHOSP
最新的 OpenShift Container Platform 版本同时支持最新的 RHOSP 长期支持版本和中间版本。有关完整的 RHOSP 版本兼容性,请参见RHOSP 上的 OpenShift Container Platform 支持矩阵。
VMware Cloud on AWS
VMware vSphere
根据平台的支持案例,您可以对用户供应的基础设施执行安装,以便您可以运行具有完全互联网访问权限的机器,将集群置于代理之后,或执行脱机安装。
在脱机安装中,您可以下载安装集群所需的镜像,将其放在镜像注册表中,并使用该数据来安装集群。虽然您需要互联网访问权限才能提取平台容器的镜像,但在 vSphere 或裸机基础设施上的脱机安装中,集群机器不需要直接访问互联网。
OpenShift Container Platform 4.x 测试集成页面包含有关不同平台集成测试的详细信息。
有关每个受支持平台可用的安装类型的更多信息,请参见不同平台的支持安装方法。
有关选择安装方法和准备所需资源的信息,请参见选择集群安装方法并为用户准备它。
Red Hat OpenShift 网络计算器 可以帮助您在部署和扩展阶段设计集群网络。它解决了与集群网络相关的常见问题,并以方便的 JSON 格式提供输出。