关于

Red Hat Advanced Cluster Management for Kubernetes 2.1

关于

摘要

关于 Red Hat Advanced Cluster Management for Kubernetes,包括架构、组件和快速启动信息

第 1 章 欢迎使用 Red Hat Advanced Cluster Management for Kubernetes

Kubernetes 为在标准一致的 control plane 中部署和管理容器提供了一个平台。但是,当应用程序工作负载从开发阶段移到生产环境中时,它们通常需要多个适合使用的 Kubernetes 集群来支持 DevOps 管道。

备注:此红帽产品的使用需要许可和订阅协议。

用户(如管理员和系统维护工程师等)会面临在不同环境中的一些难题,包括运行 Kubernetes 集群的多个数据中心、私有云以及公共云。Red Hat Advanced Cluster Management for Kubernetes 提供了解决这些常见问题的工具和功能。

Red Hat Advanced Cluster Management for Kubernetes 提供了端到端的管理可见性,并对管理 Kubernetes 环境进行控制。使用集群创建、应用程序生命周期的管理功能控制应用程序,并在数据中心和混合云环境中为所有应用程序提供安全性和合规性。集群和应用程序都是通过一个带有内置安全策略的、单一控制台可见并管理。在任何运行了 Red Hat OpenShift 的位置执行您的操作,并管理所有 Kubernetes 集群。

以下显示了 Red Hat Advanced Cluster Management for Kubernetes 控制台的 Welcome 页。在标头部分,显示了Applications 图标,可以返回 OpenShift Container Platform 、访问 Visual Web Terminal 等等。另外,还包括了对该产品的主要功能的介绍,以及到重要的控制台页面的链接。

Welcome page from the console

Red Hat Advanced Cluster Management for Kubernetes 可以:

  • 在一系列环境中工作,包括运行 Kubernetes 集群的多个数据中心、私有云和公有云。
  • 方便地创建 Kubernetes 集群并在单一控制台中提供集群生命周期管理。
  • 使用 Kubernetes 支持的自定义资源定义,在目标集群中强制实施策略。
  • 部署和维护在您的集群环境中推出的商业应用程序的“第二天”操作。

本指南假定您对 Kubernetes 概念和术语有一定的了解。有关 Kubernetes 概念的更多信息,请参阅 Kubernetes 文档

有关该产品的信息请查看以下文档:

1.1. 多集群架构

KRed Hat Advanced Cluster Management for Kubernetes 由几个多集群组件组成,它们用于访问和管理您的集群。参阅以下部分了解更多有关构架的内容,然后按照链接查看更详细的文档。

Architecture diagram

了解 Red Hat Advanced Cluster Management for Kubernetes 中的以下组件:

  • 枢纽集群(hub cluster)
  • 受管集群(managed cluster)
  • 集群生命周期
  • 应用程序生命周期
  • 监管和风险

1.1.1. 枢纽集群(hub cluster)

hub 集群是一个常用的术语,用来定义在 Red Hat Advanced Cluster Management for Kubernetes 中运行的中央控制器。从 hub 集群中,可以访问控制台和产品组件,以及处理与集群生命周期管理相关的 API 请求的 API(如 rcm-api 等)。

在 hub 集群中,您可以使用控制台在集群间搜索资源,使用 Visual Web Terminal 运行命令,并查看您的拓扑。另外,您可以启用 observability(可观察性)来监控受管集群和云供应商的指标。

hub 集群使用异步工作请求模型来聚合来自多个集群的信息。通过数据库,hub 集群维护在其上运行的集群和应用程序的状态。

hub 集群也使用 etcd (分布式键值存储)来保存工作请求和结果的状态,并提供一组它支持的不同功能的 REST API。

1.1.2. 受管集群(managed cluster)

managed(受管)集群指使用 Klusterlet(用来与 Red Hat Advanced Cluster Management for Kubernetes hub 集群建立连接的代理) 的其他集群。受管集群接收并应用请求,然后返回结果。

例如,如果启用了可观察性服务,受管集群会将指标发送到 hub 集群。请参阅 Observing 环境以接收指标数据并优化所有受管集群的健康状况。

1.1.3. 集群生命周期

Red Hat Advanced Cluster Management for Kubernetes 集群生命周期定义了跨公共和私有云创建、导入和管理集群的过程。

通过 hub 集群控制台,您可以查看所有集群健康状态的聚合信息,或者查看单个健康状况指标。您可以单独或批量升级受管的 Red Hat OpenShift 集群,并销毁任何从 hub 集群中创建的 Red Hat OpenShift 集群。

请参阅管理集群以了解有关管理集群的信息,这是集群生命周期的一部分。

1.1.4. 应用程序生命周期

Red Hat Advanced Cluster Management for Kubernetes Application lifecycle(应用程序生命周期)定义了用来管理您所管理的集群中应用程序资源的进程。多集群应用程序使用 Kubernetes 规格,但可以为单个集群部署和生命周期管理进行额外的自动化。

通过使用多集群应用程序,可以在多个集群中部署资源,同时维护易用的服务路由,并对应用程序的所有方面完全控制 Kubernetes 资源更新。

如需更多与应用程序相关的内容,请参阅管理应用程序。

1.1.5. 监管和风险

Governance and risk(监管和风险)是在中央接口页面中用来管理安全和合规性的流程。在创建并配置了 Red Hat Advanced Cluster Management for Kubernetes hub 集群和受管集群后,您可以使用 Red Hat Advanced Cluster Management 策略框架来查看和创建策略。

有关监管和风险的更多信息,请参阅安全简介。另外,参阅基于角色的访问控制文档中的访问要求。

请参阅产品的安装部分准备集群并获取配置信息。

参阅组件和服务主题来进一步了解该产品中安装的内容。

1.2. 组件和服务

下表列出了在 hub 集群和受管集群中启用或禁用的组件和服务。查看需要哪些组件和服务,以及需要的默认值(如果适用)。

1.2.1. 默认启用的服务

Service描述必需

cert-manager

此服务管理证书的生命周期。

cert-manager-webhook

此服务扩展了 Kubernetes API 服务器,以便可以动态验证证书管理器资源。

configmap-watcher

当一个依赖的配置映射被更新时,这个服务可以用来重启 pod。

management-ingress

使用可预测的注解和 TLS 保护在网络入口(ingress)控制器后统一所有管理服务。该服务不应该被直接访问。

1.2.2. 默认禁用的服务

Service描述必需

multicluster-observability-operator

观察和警报管理服务

1.2.3. hub 集群的默认启用组件

Service描述必需

application-ui

管理应用程序生命周期的 web 控制台。

console-api

为 console-ui 服务提供后端 API。

console-ui

提供集群中可用的资源视图,并支持创建、修改或删除。

console-header

在 web 控制台标题中提供一组服务。

cluster-manager

在 hub 集群中安装集群管理器的 Operator。

cluster-manager-registration-controller

在 hub 集群中处理集群注册的服务。

cluster-manager-registration-webhook

此服务扩展了 Kubernetes API 服务器以验证和修改注册资源。

cluster-manager-work-webhook

此服务扩展了 Kubernetes API 服务器以验证和修改工作资源。

grc-ui

Red Hat Advanced Cluster Management for Kubernetes 中的监管和风险管理 web 控制台。

grc-ui-api

Red Hat Advanced Cluster Management for Kubernetes 中的监管和风险管理 API 服务。

grc-policy-propogator

处理对 Red Hat Advanced Cluster Management for Kubernetes 资源的事件和请求。

hive

提供集群置备和生命周期管理。

klusterlet-addon-controller

Controller 在受管集群中创建、更新和删除 klusterlet-addons。

kui-web-terminal

提供 Visual Web Terminal.

managedcluster-import-controller

Controller 用于集群生命周期管理。

multicluster-operators

管理并协调订阅。

multiclusterhub-operator

用于在 hub 集群中安装 Red Hat Advanced Cluster Management for Kubernetes 的 Operator。

multiclusterhub-repo

用于托管内部 Helm 仓库的服务,并预先填充所需组件 Helm chart。

ocm-controller

Controller 在 hub 集群中提供集群信息、角色、与清单相关的资源。

ocm-proxyserver

用于集群状态和代理对受管集群的日志请求的服务器。

ocm-webhook

扩展 Kubernetes API 服务器的服务以验证和修改 API 资源。

redisgraph-tls

搜索数据的缓存。

search-aggregator

在受管集群中接收和索引来自 search-collector 的数据

search-api

为搜索服务提供 API。

search-collector

提供使用控制台和 Visual Web Terminal 搜索资源的能力。

topology

为 Topology 仪表板提供用户界面。

topology-api

为 topology-ui 服务提供后端服务。

1.2.4. 受管集群的默认启用组件

下表列出了在受管集群中安装的服务:

Service描述必需

applicationManager

处理事件和其他对受管理资源的请求。

certPolicyController

根据分布式策略监控证书过期时间

iamPolicyController

根据分布式策略监控身份控制

imageRegistry

quay.io/open-cluster-management

klusterlet

在受管集群上安装 Klusterlet 的 Operator。

klusterlet-addon-operator

处理内部 Helm Chart 组件的部署。

klusterlet-addon-workmgr

处理集群信息、managedClusterAction 和 managedClusterView 的组件。

klusterlet-registration-agent

用于受管集群注册的代理。

klusterlet-work-agent

启用 work,在受管集群中运行逻辑。

policyController

分发配置的策略并监控基于 Kubernetes 的策略。

searchCollector

根据 hub 集群中的搜索组件来索引收集集群数据。

1.3. 开始使用

1.3.1. 简介

请参阅多集群架构。查看与组件和服务相关的内容,了解更多有关在接受许可证和订阅协议时使用 Red Hat Advanced Cluster Management for Kubernetes 安装内容的信息。

在了解了 hub 集群和受管集群的架构后,了解更多有关 支持的云供应商集群的信息。

hub 集群是一个 Red Hat OpenShift 集群版本 4.4、4.5 或 4.6,它可以在任何支持的 Red Hat OpenShift Container Platform 基础架构上运行。

术语表定义了产品中使用的常见术语。

如果遇到问题,请参阅故障排除指南来了解 must-gather 命令的信息,并查看可能有助于解决问题的故障排除任务。

1.3.2. 安装

  1. 在安装 Red Hat Advanced Cluster Management for Kubernetes 前,请参阅系统配置要求和设置。获取所需操作系统及支持的浏览器信息。例如,确保您有受支持的 Red Hat OpenShift Container Platform 版本,以便可以设置 hub 集群。
  2. 确保您的 hub 集群具有适当的容量。要准备您的 hub 集群,请参阅 为安装准备 hub 集群
  3. 当在 hub 集群中安装并运行了支持的 OpenShift Container Platform 版本后,就可以进行在线安装

安装后,请参阅Web 控制台指南,了解如何访问控制台,以及控制台中有哪些功能可用。

1.3.3. 管理集群

现在,可以创建并导入集群。通过 hub 集群,您可以从其他 Kubernetes 服务创建集群来管理,并可以查看集群信息。

  1. 请参阅创建集群以了解您可以创建的受管集群的类型。在创建受管集群时,新的受管集群会自动导入。
  2. 如果您有一个需要手动导入的集群,可以参阅把一个目标集群导入到 hub 集群以了解如何导入受管集群。
  3. 当您不再需要管理一个集群时,可以通过 Cluster 页来分离这个集群。

1.3.4. 管理应用程序

您可以在任何创建和导入的受管集群中开始管理应用程序。您可以创建的资源类型包括应用程序、频道、订阅和放置规则。

  1. 了解更多有关资源以及如何在管理应用程序中创建和管理这些资源的信息,请参阅管理应用程序。添加或编辑您的 .yaml 以创建资源。
  2. 应用程序仪表板查看并编辑资源。

1.3.5. 管理安全

您还可以在创建和导入的受管集群中管理安全和合规性。

  1. 使用 policy 模板创建策略。如需有关如何使用 .yaml 模板创建策略的详细信息,请参阅策略概述
  2. 策略页面中,您可以查看集群和策略违反概述。
  3. 在控制台的 Governance and risk 页中查看您的策略。您还可以从集群 Overview 中查看策略详情。

1.4. 术语

以下定义了组成 Red Hat Advanced Cluster Management for Kubernetes 的多集群组件。另外,在此产品中也使用一些常见的 Kubernetes 术语。术语按字母顺序列出。

1.4.1. 相关的标准化术语

1.4.2. Red Hat Advanced Cluster Management for Kubernetes 术语

1.4.2.1. 应用程序生命周期

用于管理受管集群中应用程序资源的进程。多集群应用程序使用 Kubernetes 规格,但可以为单个集群部署和生命周期管理进行额外的自动化。

1.4.2.2. Channel

一个自定义资源定义,指向存储 Kubernetes 资源的仓库,如 hub 集群上的 Git 仓库、Helm Chart 仓库、ObjectStore 仓库或命名空间。频道支持来自多个目标的多个订阅。

1.4.2.3. 集群生命周期

定义跨公共和私有云创建、导入和管理集群的过程。

1.4.2.4. 控制台(Console)

Red Hat Advanced Cluster Management 的图形用户节目。

1.4.2.5. 可部署资源

一个资源,用来获取构建输出,使用配置属性对输出进行打包,并在预定义位置安装软件包以便对其进行测试或运行。

1.4.2.6. 监管和风险

Red Hat Advanced Cluster Management 用来管理安全性和合规性的进程。

1.4.2.7. 枢纽集群(hub cluster)

在 Red Hat Advanced Cluster Management for Kubernetes 集群中运行的一个中央处理器。通过 hub 集群,可以访问控制台及控制台找到的组件,以及 API。

1.4.2.8. 受管集群(managed cluster)

创建并导入的集群由 klusterlet 代理和它的插件(用来与 Red Hat Advanced Cluster Management for Kubernetes hub 集群建立连接的代理)进行管理。

1.4.2.9. Klusterlet

受管集群中的代理包括两个控制器,用来与 Red Hat Advanced Cluster Management for Kubernetes hub 集群建立连接。

1.4.2.10. klusterlet 附加组件

基于 Klusterlet 的专用控制器提供额外的管理功能。

1.4.2.11. 放置策略(Placement policy)

定义应用程序组件应该部署的位置和应具有多少副本的策略。

1.4.2.12. 放置规则(Placement rule)

一个规则,用来定义发送订阅的目标集群。例如,验证集群名称、资源注解或资源标签。

1.4.2.13. 订阅(Subscription)

在频道中标识 Kubernetes 资源的资源(资源仓库),然后将 Kubernetes 资源放置到目标集群中。