安装

Red Hat Advanced Cluster Management for Kubernetes 2.1

安装

摘要

安装 Red Hat Advanced Cluster Management for Kubernetes

第 1 章 安装

了解如何为 Kubernetes 安装和卸载 Red Hat Advanced Cluster Management for Kubernetes。在安装 Red Hat Advanced Cluster Management for Kubernetes 前,请查看每个产品所需的硬件和系统配置。

您可以在带有支持版本的 Red Hat OpenShift Container Platform 的 Linux 系统上安装 Red Hat Advanced Cluster Management for Kubernetes。

安装流程:

  1. 安装并配置受支持的 OpenShift Container Platform 版本。
  2. 通过目录(catalog)为 Red Hat Advanced Cluster Management for Kubernetes 安装 Operator 。

在安装并部署 Red Hat Advanced Cluster Management for Kubernetes 后,请查看有关如何使用这些功能的文档。

安装 Red Hat Advanced Cluster Management for Kubernetes 来设置一个多节点集群生产环境。您可以使用标准配置或高可用性配置安装 Red Hat Advanced Cluster Management for Kubernetes

1.1. 要求和建议

在安装 Red Hat Advanced Cluster Management for Kubernetes 前,查看系统配置要求和设置。

1.1.1. 支持的操作系统和平台

支持的操作系统:

平台操作系统Red Hat OpenShift Container Platform 版本

Linux x86_64

Red Hat Enterprise Linux 7.6, or later

如需当前支持的 OpenShift Container Platform 平台列表,请参阅 Red Hat Advanced Cluster Management 2.1 支持列表

1.1.2. 支持的浏览器

您可从 Mozilla Firefox、Google Chrome、Microsoft Edge 和 Safari 访问 Red Hat Advanced Cluster Management 控制台。请查看以下经过测试和支持的版本:

平台支持的浏览器

Microsoft Windows

Microsoft Edge - 44 或更新版本,Mozilla Firefox - 82.0 或更新版本,Google Chrome - 版本 86.0 及更新版本

Linux

Mozilla Firefox - 82.0 及更新版本,Google Chrome - 版本 86.0 及更新版本

macOS

Mozilla Firefox - 82.0 及更新版本,Google Chrome - 版本 86.0 及更新版本,Safari - 14.0 及更新版本

如需了解更多信息,请参阅 Red Hat Advanced Cluster Management for Kubernetes 2.1 Support Matrix

1.1.3. 网络配置

将您的网络设置配置为允许以下连接:

hub 集群:

  • 出站到云供应商 API 的连接
  • 在端口 6443 上的出站连接到置备的受管集群的 Kubernetes API 服务器
  • 从 hub 集群到频道源的出站连接,包括 GitHub、Object Store 和 Helm 仓库。只有在使用应用程序生命周期来连接这些源时才需要。
  • 到受管集群的端口 443 上的 workerManager 服务路由的出站和入站连接
  • 从受管集群(端口 6443)入站到 hub 集群的 kube API 服务器的连接
  • 从 GitHub 到 hub 集群的提交后 hook 的入站连接。只有在使用特定应用程序管理功能时才需要此设置。

受管集群:

  • 在端口 6443 上的 hub 集群入站到 Kubernetes API 服务器的连接
  • 从端口 443 上的 hub 集群入站连接到 WorkManager 服务端点
  • 在端口 6443 上的出站连接到 hub 集群的 Kubernetes API 服务器
  • 从受管集群到频道源的出站连接,包括 GitHub、Object Store 和 Helm 仓库。只有在使用应用程序生命周期来连接这些源时才需要。

如需了解更多信息,请参阅 Red Hat Advanced Cluster Management for Kubernetes 2.1 Support Matrix

1.2. 性能和可扩展性

Red Hat Advanced Cluster Management for Kubernetes 已经过测试来决定特定的可扩展性和性能数据。测试的主要领域包括集群可扩展性和搜索性能。

您可以使用这些信息来帮助规划您的环境。

备注:数据基于测试时实验室环境的结果。您的具体结果可能会根据您的环境、网络速度和产品更改而有所不同。

1.2.1. 受管集群的总数

Red Hat Advanced Cluster Management 可管理的最大集群数量因以下几个因素而有所不同:

  • 集群中的资源数量,它取决于部署的策略和应用程序数量等因素。
  • hub 集群配置,如使用了多少个 pod 进行扩展。

下表显示了在测试过程中使用的 Amazon Web Services 云平台上集群的配置信息:

节点FlavorvCPURAM(GiB)磁盘类型磁盘大小 (GiB)/IOS数量区域

Master

m5.2xlarge

8

32

gp2

100

3

us-east-1

Worker

m5.2xlarge

8

32

gp2

100

3 个或 5 个节点

us-east-1

1.2.2. 搜索可扩展性

Search 组件的可扩展性取决于数据存储的性能。在分析搜索性能时,以下变量非常重要:

  • 物理内存
  • 写入吞吐量(缓存恢复时间)
  • 查询执行时间

1.2.2.1. 物理内存

搜索会将数据保留在内存中从而达到快速响应时间。所需内存与 Kubernetes 资源的数量及其在集群中的关系有比例关系。

ClustersKubernetes 资源关系观察的大小(使用模拟数据)

1 个中型

5000

9500

50 MB

5 个中型

25,000

75,000

120 MB

15 个中型

75,000

20,0000

263 MB

30 个中型

150,000

450,000

492 MB

50 个中型

250,000

750,000

878 MB

默认情况下,数据存储的内存限值为 1 GB。如果您要管理较大的集群,可能需要通过在 hub 集群命名空间中编辑名为 search-prod-xxxxx-redisgraph 的部署来增加这个限值。

1.2.2.2. 写入吞吐量(缓存恢复时间)

大多数处于 steady 状态的集群会生成少量资源更新。当 RedisGraph 中的数据被清除时,更新率最高,这会导致远程收集器同时同步其完整状态。

ClustersKubernetes 资源关系模拟的平均恢复时间

1 个中型

5000

9500

少于 2 秒

5 个中型

25,000

75,000

少于 15 秒

15 个中型

75,000

200,000

2 分钟和 40 秒

30 个中型

150,000

450,000

5-8 分钟

请记住:对于到 hub 的网络连接较慢的集群,可能会增加时间。

1.2.2.3. 查询执行注意事项

有些事情可能会影响查询运行时间以及返回的结果。在计划和配置环境时请考虑以下方面:

  • 搜索关键字效率不高。
  • 第一个搜索的时间比以后的搜索要长,因为收集用户访问规则需要额外时间。
  • 完成请求的时间长度与用户有权访问的命名空间和资源数量成比例。
  • 经过观察,当一个有访问所有命名空间或所有受管集群权限的、非管理员用户发出的请求性能最差。

1.2.3. 可观察性功能扩展

如果要启用和使用可观察性(observability)服务,则需要规划您的环境。之后的资源消耗是用于安装可观察性组件的 OpenShift Container Platform 项目。您计划使用的值为所有可观察性组件的总和。

备注:数据基于测试时实验室环境的结果。您的具体结果可能会根据您的环境、网络速度和产品更改而有所不同。

1.2.3.1. 可观察性环境示例

在示例环境中,hub 集群和受管集群位于 Amazon Web Services 云平台中,并具有以下拓扑和配置:

节点FlavorvCPURAM(GiB)磁盘类型磁盘大小 (GiB)/IOS数量区域

Master 节点

m5.4xlarge

16

64

gp2

100

3

sa-east-1

Worker节点

m5.4xlarge

16

64

gp2

100

3

sa-east-1

可观察性部署是为高可用性环境配置的。使用高可用性环境,每个 Kubernetes 部署都有两个实例,每个有状态集都有三个实例。

在示例测试过程中,会模拟不同的受管集群来推送指标,每次测试会持续 24 小时。请参见以下吞吐量:

1.2.3.2. 写入吞吐量

pods间隔(分钟)每分钟的时间系列

400

1

83000

1.2.3.3. CPU 用量(millicores)

在测试过程中,CPU 用量是稳定的:

SizeCPU 用量

10 个集群

400

20 个集群

800

1.2.3.4. RSS 和工作集合内存

内存用量 RSS:来自 metrics container_memory_rss,并在测试期间保持稳定性。

内存用量工作集:从 metrics container_memory_working_set_bytes,随着测试会增加。

以下来自于一个 24 小时测试的结果:

Size内存用量 RSS内存用量工作集

10 个集群

9.84

4.83

20 个集群

13.10

8.76

1.2.3.5. 用于 thanos-receive 组件的持久性卷

重要:指标存储在 thanos-receive 中,直到达到保留时间(四天)为止。其他组件不需要与 thanos-receive 组件一样多的卷。

磁盘用量随着测试会增加。数据代表一天后的磁盘用量,因此最终的磁盘用量要乘以 4。

请查看以下磁盘用法:

Size磁盘用量(GiB)

10 个集群

2

20 个集群

3

1.2.3.6. 网络传输

在测试过程中,网络传输提供了稳定性。查看大小和网络传输值:

Size入站网络传输出站网络传输

10 个集群

每秒 6.55 MBs

每秒 5.80 MBs

20 个集群

每秒 13.08 MBs

每秒 10.9 MBs

1.2.3.7. Amazon Simple Storage Service(S3)

Amazon Simple Storage Service(S3)中的总使用量会增加。指标数据会存储在 S3 中,直到达到默认的保留时间(5 天)。请查看以下磁盘用法:

Size磁盘用量(GiB)

10 个集群

16.2

20 个集群

23.8

1.3. 为安装准备 hub 集群

在安装 Red Hat Advanced Cluster Management for Kubernetes 前,请查看以下安装要求和建议以设置 hub 集群:

1.3.1. 确认 Red Hat OpenShift Container Platform 安装。

  • 您必须具有受支持的 Red Hat OpenShift Container Platform 版本,包括 registry 和存储服务,在集群中安装并正常工作。有关安装 Red Hat OpenShift Container Platform 的更多信息,请参阅 Red Hat OpenShift Container Platform 文档。
  • 对于 Red Hat OpenShift Container Platform 版本 4.3,请参阅 Red Hat OpenShift Container Platform 4.3 文档
  • 为确保正确设置 Red Hat OpenShift Container Platform 集群,请访问 Red Hat OpenShift Container Platform web 控制台。

    运行 kubectl -n openshift-console get route 命令来访问 Red Hat OpenShift Container Platform web 控制台。请参见以下示例输出:

      openshift-console          console             console-openshift-console.apps.new-coral.purple-chesterfield.com                       console                  https   reencrypt/Redirect     None

    本例中的控制台 URL 是 https:// console-openshift-console.apps.new-coral.purple-chesterfield.com。在浏览器中打开 URL 并检查结果。如果控制台 URL 显示 console-openshift-console.router.default.svc.cluster.local,在安装 Red Hat OpenShift Container Platform 时设置 openshift_master_default_subdomain

请参阅计划集群大小,以了解如何为您的 hub 集群设置容量。

1.3.2. 计划集群大小

每个 Red Hat Advanced Cluster Management for Kubernetes 集群都有自己的特征。这里提供了示例部署大小的指南信息。根据大小和目的对推荐进行分类。

Red Hat Had Advanced Cluster Management 应用以下 3 个部分来调整支持服务的大小和位置:

  • 可用域(Availability Zone)用来在集群中分离潜在的故障域。典型的集群应该在 3 个或更多可用区中拥有基本等同的 worker 节点容量。
  • vCPU 保留(reservation)和限制(limit)在 worker 节点上建立 vCPU 容量以分配给一个容器。一个 vCPU 等同于一个 Kubernetes 计算单元。如需更多信息,请参阅 Kubernetes CPU 含义
  • 内存保留和限制会在 worker 节点上建立内存容量,以便分配给容器。保留是 CPU 或内存的低限,限值是高限。

由该产品管理的持久性数据存储在 Kubernetes 使用的 etcd 集群中。OpenShift 的最佳实践方案推荐在 3 个可用区间分布集群主节点。

备注:列出的要求不是最低要求。

1.3.2.1. Red Hat Advanced Cluster Management for Kubernetes 环境

OpenShift 节点角色可用区数据存储总保留内存(下限)总保留 CPU(下限) 

Master

3

etcd x 3

每个 OpenShift 的大小指南

每个 OpenShift 的大小指南

 

Worker

3

redisgraph/redis x 1

12Gi

6 个 CPU

 

除了 Red Hat Advanced Cluster Management,Red Hat OpenShift Container Platform 集群还运行其他服务来支持集群功能。建议使用以下节点大小(在后续信息中记录的 3 个节点,在 3 个可用区间平均分布)。

1.3.2.1.1. 在 Amazon Web Services 上创建 OpenShift 集群的设置

如需更多信息,请参阅 OpenShift Container Platform 产品文档中的 Amazon Web Services 信息。了解有关机器类型的更多信息。

  • 节点数:3
  • 可用区:3
  • 实例大小: m5.xlarge

    • vCPU:4
    • memory:16 GB
    • 存储大小:120 GB
1.3.2.1.2. 在 Google Cloud Platform 上创建 OpenShift 集群的设置

有关配额的更多信息,请参阅 Google Cloud Platform 产品文档。了解有关机器类型的更多信息。

  • 节点数:3
  • 可用区:3
  • 实例大小:N1-standard-4(0.95-6.5 GB)

    • vCPU:4
    • memory:15 GB
    • 存储大小:120 GB
1.3.2.1.3. 在 Microsoft Azure 上创建 OpenShift 集群的设置

详情请查看以下产品文档

  • 节点数:3
  • 可用区:3
  • 实例大小:Standard_D4_v3

    • vCPU:4
    • memory:16 GB
    • 存储大小:120 GB
1.3.2.1.4. 在 VMware vSphere 上创建 OpenShift 集群的设置

详情请查看以下产品文档

  • 每个插槽的内核:1
  • CPU:2
  • memory:8 GB
  • 存储大小:120 GB
1.3.2.1.5. 在裸机上创建 OpenShift 集群的设置

详情请查看以下产品文档

  • CPU:6(最小)
  • memory:16 GB(最小)
  • 存储大小:50 GB(最小)

1.4. 在线安装

Red Hat Advanced Cluster Management for Kubernetes 会使用一个会部署所有需要的组件的 operator 进行安装。

1.4.1. 先决条件

在安装 Red Hat Advanced Cluster Management 前,需要满足以下要求:

  • 您的 Red Hat OpenShift Container Platform 必须有权访问 OperatorHub 目录中的 Red Hat Advanced Cluster Management Operator。
  • OpenShift Container Platform 版本 4.3 或更高版本必须部署到您的环境中,且必须通过 CLI 登录。请参阅 OpenShift Container Platform 版本 4.4 文档OpenShift 版本 4.5 文档OpenShift 版本 4.6 文档
  • 您的 OpenShift Container Platform 命令行界面(CLI)的版本需要是 4.3 或更高版本,并配置为运行 oc 命令。如需有关安装和配置 OpenShift Container Platform CLI 的信息,请参阅 CLI 入门
  • OpenShift Container Platform 权限必须允许创建命名空间。
  • 需要有一个互联网连接来访问 Operator 的依赖项。

1.4.2. 从 OperatorHub 安装

使用 OpenShift Container Platform 提供的 OperatorHub 安装是安装 Red Hat Advanced Cluster Management 的最简单方法。

  1. 在 OpenShift Container Platform 的导航界面,选择 Operators > OperatorHub 来访问可用 Operator 列表。
  2. 找到并选择 Advanced Cluster Management for Kubernetes operator。
  3. Operator subscription 页中,选择安装选项:

    • Namespace:Red Hat Advanced Cluster Management 必须安装在自己的命名空间或项目中。默认是,安装过程会创建一个名为 open-cluster-management 的命名空间,并在那个命名空间中安装。如果已存在名为 open-cluster-management 的命名空间,则无法使用该选项完成安装。在这种情况下,选择安装到现有命名空间,并从列表中选择命名空间。

      重要:具有 ClusterRoleBindingServiceAccount 会自动向 Red Hat Advanced Cluster Management 以及有权访问安装 Red Hat Advanced Cluster Management 的命名空间的用户凭证授予集群管理员特权。安装还创建一个名为 local-cluster 的命名空间。这个命名空间为 hub 集群保留,以用于对自身的管理。因此,不能已存在名为 local-cluster 的命名空间。出于安全考虑,不要向任何还没有 cluster-administrator 访问权限的用户授予 local-cluster 的访问权限。

    • 频道:您选择的与您要安装的发行版本对应的频道。当您选择频道时,它会安装对应的发行版本,并确定以后可以从中获取未来的 z-stream 更新。
    • 审批战略:批准策略标识了将更新应用到您订阅的频道或发行版本所需的人工交互。如果您选择 Automatic 更新,则该版本内的所有更新都会被自动应用。如果您对应用更新有疑问,可以选择 Manual 选项,您将会在更新可用时收到一个通知。

      备注:自动升级不会跨越主版本,如从 2.0 升级到 2.1。要升级到下一个主发行版本,您必须返回 OperatorHub 页面并为更当前的发行版本选择新频道。

  4. 选择 Subscribe 以应用您的更改并创建 Operator。
  5. 如果您计划导入不是由 OpenShift Container Platform 或 Red Hat Advanced Cluster Management 创建的 Kubernetes 集群,请创建一个包含 OpenShift Container Platform pull secret 的 secret,以从容器镜像仓库(registry)中访问授权内容。OpenShift Container Platform 集群的 secret 要求由 OpenShift Container Platform 和 Red Hat Advanced Cluster Management 自动解决,因此如果您没有导入其他类型的 Kubernetes 集群,则不必创建 secret。

    1. 选择 Copy pull secretcloud.redhat.com/openshift/install/pull-secret 复制 OpenShift Container Platform pull secret 文件。在此流程稍后的步骤将使用此 pull secret。您的 OpenShift Container Platform pull secret 与您的 Red Hat Customer Portal ID 相关联,在所有 Kubernetes 供应商中都是相同的。
    2. 在 OpenShift Container Platform 控制台导航中,选择 Workloads > Secrets
    3. 选择 Create > Image Pull Secret
    4. 为 secret 输入一个名称。
    5. 选择 Upload Configuration File 作为验证类型。
    6. 把从 cloud.redhat.com 复制的 pull secret 粘贴到 Configuration file 项中。
    7. 选择 Create 来创建 secret。
  6. 创建 MultiClusterHub 自定义资源。

    1. 在 OpenShift Container Platform 控制台导航中,选择 Installed Operators > Advanced Cluster Management for Kubernetes
    2. 选择 MultiClusterHub 标签页。
    3. 选择 Create MultiClusterHub
    4. 根据您的需要更新 .yaml 文件中的默认值。

      • 以下示例显示,在没有创建镜像 pull secret 时的默认模板:

        apiVersion: operator.open-cluster-management.io/v1
        kind: MultiClusterHub
        metadata:
          name: multiclusterhub
          namespace: <namespace>

        确认 namespace 是您项目的命名空间。

      • 以下示例显示,在创建了镜像 pull secret 时的默认模板:

        apiVersion: operator.open-cluster-management.io/v1
        kind: MultiClusterHub
        metadata:
          name: multiclusterhub
          namespace: <namespace>
        spec:
          imagePullSecret: <secret>

        secret 替换为您创建的 pull secret 的名称。确认 namespace 是您项目的命名空间。

        重要:local-cluster 命名空间用于导入的自管理的 hub 集群。在安装前,集群中不能有 local-cluster 命名空间。为 hub 集群创建 local-cluster 命名空间后,任何有权访问 local-cluster 命名空间的用户会自动被授予集群管理员访问权限。出于安全考虑,不要向任何还没有 cluster-administrator 访问权限的用户授予 local-cluster 的访问权限。

    5. 可选:如有必要,禁用 hub 自我管理。默认情况下,hub 集群会自动由自身导入和管理,与其他集群一样。如果您不希望 hub 集群管理自己,将 disableHubSelfManagement 的设置从 false 改为 true。如果设置没有包括在用于定义自定义资源的 .yaml 文件中,将其进行添加,如上一步示例所示。以下示例显示,在禁用 hub 自助管理功能时要使用的默认模板:

      apiVersion: operator.open-cluster-management.io/v1
      kind: MultiClusterHub
      metadata:
        name: multiclusterhub
        namespace: <namespace>
      spec:
        disableHubSelfManagement: true

      namespace 替换为项目命名空间的名称。

  7. 选择 Create 来初始化自定义资源。hub 可能需要10分钟来创建并启动。

    在 hub 被创建后,Installed Operators 页中的 operator 的状态为 Running

  8. 访问 hub 的控制台。

    1. 在 OpenShift Container Platform 控制台导航中,选择 Networking > Routes
    2. 查看列表中您的 hub URL,并浏览至用来访问 hub 的控制台。

如果您重新安装 Red Hat Advanced Cluster Management,且 pod 没有启动,请参阅对安装失败进行故障排除以了解解决这个问题的步骤。

1.4.3. 通过 CLI 安装

  1. 创建一个 hub 集群命名空间,其中包含 Operator 的要求:

    oc create namespace <namespace>

    使用 hub 集群命名空间的名称替换 namespace备注:在 Red Hat OpenShift Container Platform 环境中,namespace 的值可能被称为 Project (项目)。

    重要:具有 ClusterRoleBindingServiceAccount 会自动向 Red Hat Advanced Cluster Management 以及有权访问安装 Red Hat Advanced Cluster Management 的命名空间的用户凭证授予集群管理员特权。安装还创建一个名为 local-cluster 的命名空间。这个命名空间为 hub 集群保留,以用于对自身的管理。因此,不能已存在名为 local-cluster 的命名空间。出于安全考虑,不要向任何还没有 cluster-administrator 访问权限的用户授予 local-cluster 的访问权限。

  2. 将项目命名空间切换到您创建的命名空间:

    oc project <namespace>

    使用在第 1 步中创建的 hub 集群命名空间的名称替换 namespace

  3. 如果您计划导入不是由 OpenShift Container Platform 或 Red Hat Advanced Cluster Management 创建的 Kubernetes 集群,生成一个包含 OpenShift Container Platform pull secret 信息的 secret,以从发行 registry 中访问授权内容。OpenShift Container Platform 集群的 secret 要求由 OpenShift Container Platform 和 Red Hat Advanced Cluster Management 自动解决,因此如果您没有导入其他类型的 Kubernetes 集群,则不必创建 secret。重要:这些 secret 是特定于命名空间的,因此请确保处于在第 1 步中创建的命名空间中。

    1. 选择 Download pull secretcloud.redhat.com/openshift/install/pull-secret 下载 OpenShift Container Platform pull secret 文件。您的 OpenShift Container Platform pull secret 与您的 Red Hat Customer Portal ID 相关联,在所有 Kubernetes 供应商中都是相同的。
    2. 运行以下命令来创建 secret:

      oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson

      secret 替换为您要创建的 secret 的名称。将 namespace 替换为项目命名空间。将 path-to-pull-secret 替换为您下载的 OpenShift Container Platform pull secret 的路径。

  4. 创建一个 operator 组。每个命名空间只能有一个 operator 组。

    1. 创建一个用来定义 operator 组的 .yaml 文件。文件内容应类似以下示例:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <default>
      spec:
        targetNamespaces:
        - <namespace>

      default 替换为 operator 组的名称。将 namespace 替换为项目命名空间的名称。

    2. 应用您创建的文件来定义 operator 组:

      oc apply -f local/<operator-group>.yaml

      使用您创建的 .yaml 文件定义的 operator 组来替换 operator-group

  5. 应用订阅。

    1. 创建定义订阅的 .yaml 文件。文件内容应类似以下示例:

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: acm-operator-subscription
      spec:
        sourceNamespace: openshift-marketplace
        source: redhat-operators
        channel: release-2.1
        installPlanApproval: Automatic
        name: advanced-cluster-management
    2. 应用订阅:

      oc apply -f local/<subscription>.yaml

      使用您创建的订阅文件的名称替换 subscription

  6. 应用 MultiClusterHub 自定义资源。

    1. 创建定义自定义资源的 .yaml 文件。

      • 如果没有创建 pull secret,则默认模板应类似以下示例:

        apiVersion: operator.open-cluster-management.io/v1
        kind: MultiClusterHub
        metadata:
          name: multiclusterhub
          namespace: <namespace>

        namespace 替换为项目命名空间的名称。

      • 如果创建了 pull secret,则默认模板应类似以下示例:

        apiVersion: operator.open-cluster-management.io/v1
        kind: MultiClusterHub
        metadata:
          name: multiclusterhub
          namespace: <namespace>
        spec:
          imagePullSecret: <secret>

        namespace 替换为项目命名空间的名称。

        secret 替换为您的 pull secret 的名称。

    2. 可选:如有必要,禁用 hub 自我管理。默认情况下,hub 集群会自动由自身导入和管理,与其他集群一样。如果您不希望 hub 集群管理自己,将 disableHubSelfManagement 的设置从 false 改为 true。如果您创建了 pull secret 并启用了 disableHub selfManagement 功能,则默认模板应类似以下示例:

      apiVersion: operator.open-cluster-management.io/v1
      kind: MultiClusterHub
      metadata:
        name: multiclusterhub
        namespace: <namespace>
      spec:
        imagePullSecret: <secret>
        disableHubSelfManagement: true

      namespace 替换为项目命名空间的名称。

      secret 替换为您的 pull secret 的名称。

    3. 应用自定义资源:

      oc apply -f local/<custom-resource>.yaml

      custom-resource 替换为自定义资源文件的名称。

      重要:local-cluster 命名空间用于导入的自管理的 hub 集群。在安装前,集群中不能有 local-cluster 命名空间。为 hub 集群创建 local-cluster 命名空间后,任何有权访问 local-cluster 命名空间的用户会自动被授予集群管理员访问权限。出于安全考虑,不要向任何还没有 cluster-administrator 访问权限的用户授予 local-cluster 的访问权限。

      如果此步骤失败并显示以下错误信息,则仍会创建并应用这些资源:

      error: unable to recognize "./mch.yaml": no matches for kind "MultiClusterHub" in version "operator.open-cluster-management.io/v1"

      创建资源后几分钟内再次运行命令。

  7. 在运行以下命令后,MultiClusterHub 自定义资源状态可能最多需要 10 分钟在 status.phase 字段中显示为 Running

    oc get mch -o=jsonpath='{.items[0].status.phase}'
  8. 状态变为 Running 后,查看查找路由的路由列表:

    oc get routes

如果您重新安装 Red Hat Advanced Cluster Management,且 pod 没有启动,请参阅对安装失败进行故障排除以了解解决这个问题的步骤。

1.5. 在断开连接的网络中安装

您可能需要在没有连接到互联网的 Red Hat OpenShift 集群上安装 Red Hat Advanced Cluster Management for Kubernetes。在断开连接的 hub 中安装的步骤包括一些在连接环境中进行安装的步骤。您必须下载软件包副本以便在安装过程中访问它们,而不是在安装过程中直接从网络访问它们。

1.5.1. 离线安装的先决条件

在安装 Red Hat Advanced Cluster Management for Kubernetes 前,需要满足以下要求:

  • Red Hat OpenShift Container Platform 版本 4.3 或更高版本必须部署到您的环境中,且必须通过 CLI 登录。备注:要管理裸机集群,您必须有 OpenShift Container Platform 版本 4.5 或更高版本。请参阅 OpenShift 版本 4.3 文档OpenShift 版本 4.4 文档OpenShift 版本 4.5 文档
  • 您需要 Red Hat OpenShift Container Platform CLI 版本 4.3 或更高版本来运行 oc 命令。如需有关安装和配置 Red Hat OpenShift CLI 的信息,请参阅 CLI 入门
  • 您的 Red Hat OpenShift Container Platform 权限必须允许创建命名空间。
  • 必须有一 个有互联网连接的工作站来下载 operator 的依赖软件包。

1.5.2. 在断开连接的环境中安装

按照以下步骤在断开连接的环境中安装 Red Hat Advanced Cluster Management:

  1. 如果需要,创建一个镜像 registry(mirror registry)。

    如果您还没有镜像 registry,请完成 Red Hat OpenShift Container Platform 文档中关于在受限网络环境中创建镜像 registry 中介绍的步骤。

    如果已有镜像 registry,可以配置和使用现有 registry。

  2. 仅限裸机:在 install-config.yaml 文件中提供断开连接的 registry 的证书信息。要访问受保护的断开连接的 registry 中的镜像,必须提供证书信息,以便 Red Hat Advanced Cluster Management 可以访问 registry。

    1. 复制 registry 中的证书信息。
    2. 在编辑器中打开 install-config.yaml 文件。
    3. 找到 additionalTrustBundle: | 条目。
    4. additionalTrustBundle 行后添加证书信息。内容应类似以下示例:

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        certificate_content
        -----END CERTIFICATE-----
      sshKey: >-
    5. 保存 install-config.yaml 文件。
  3. 创建一个包含 ImageContentSourcePolicy 的 YAML 文件,其名称为 rhacm-policy.yaml重要:如果您在正在运行的集群中修改此操作,则会导致所有节点的滚动重启。

    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: rhacm-repo
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - mirror.registry.com:5000/rhacm2
        source: registry.redhat.io/rhacm2
  4. 输入以下命令应用 ImageContentSourcePolicy 文件:

    oc apply -f rhacm-policy.yaml
  5. 启用离线 Operator Lifecycle Manager(OLM)Red Hat Operator 和 Community Operator.

    Red Hat Advanced Cluster Management 包括在 OLM Red Hat Operator 目录中。

  6. 为 Red Hat Operator 目录配置离线的 OLM。按照 Red Hat OpenShift Container Platform 文档中受限网络部分中使用 Operator Lifecycle Manager 中的步骤操作。
  7. 现在,您在离线的 OLM 中已有镜像,可以从 OLM 目录继续安装 Advanced Cluster Management for Kubernetes。如需获得所需的步骤,请参阅 在线安装时安装的步骤。

1.6. 使用 operator 进行升级

您可以使用 Red Hat OpenShift Container Platform 控制台中的 operator 订阅设置来控制 Red Hat Advanced Cluster Management for Kubernetes 的升级。当使用 Operator 部署 Red Hat Advanced Cluster Management 的最初阶段,您可以进行以下选择:

  • 频道 - 与您要安装的产品版本相对应。初始频道设置通常是安装时可用的最当前的频道。
  • 批准 - 指定是否需要在频道中批准更新或者是否自动进行更新。如果设置为 Automatic,那么所选频道中的次要版本更新会在没有管理员干预的情况下部署。如果选择了 Manual 设置,那么每个更新到频道中的次要发行本都需要管理员批准更新。

您还可以在使用 Operator 升级 Red Hat Advanced Cluster Management 时使用这些设置。

需要的访问权限:OpenShift Container Platform 管理员

完成以下步骤以升级 Operator:

  1. 登录您的 OpenShift Container Platform operator hub。
  2. 在 OpenShift Container Platform 导航中,选择 Operators > Installed operator
  3. 选择 Red Hat Advanced Cluster Management for Kubernetes operator。
  4. 选择 Subscription 选项卡来编辑订阅设置。
  5. 确保 Upgrade Status 被标记为 Up to date。此状态表示 Operator 处于所选频道中可用的最新版本。如果 Upgrade Status 表示升级处于待处理的状态,请完成以下步骤,将其更新至频道中可用的最新次版本:

    1. Approval 字段中的 Manual 设置来编辑值。
    2. 选择 Automatic 来启用自动更新。
    3. 选择 Save 提交您的更改。
    4. 等待自动更新应用到 Operator。更新会自动将所需更新添加到所选频道的最新版本。当完成所有更新后,Upgrade Status 字段将显示 Up to date

      提示:MultiClusterHub 自定义资源最多可能需要 10 分钟才能完成升级。您可以输入以下命令来检查升级是否仍然在进行中:

      oc get mch

      在进行升级时,Status 字段会显示 Updating。升级完成后,Status 字段会显示 Running

  6. 现在,Upgrade StatusUp to date,点 Channel 字段中的值来编辑它。
  7. 选择下一个可用功能发行版本的频道。升级时不能跳过频道。

    重要:在频道选择中升级到更新的版本后,您无法恢复到更早的版本。您必须卸载 Operator,并使用更早的版本重新安装它才能使用以前的版本。

  8. 选择 Save 保存您的更改。
  9. 等待自动升级完成。当升级到下一个功能版本后,会部署对频道中最新补丁版本的更新。

    提示:MultiClusterHub 自定义资源最多可能需要 10 分钟才能完成升级。您可以输入以下命令来检查升级是否仍然在进行中:

    oc get mch

    在进行升级时,Status 字段会显示 Updating。升级完成后,Status 字段会显示 Running

  10. 如果需要升级到之后的版本,请重复步骤 7-9,直到 Operator 处于所需频道的最新级别。请确定为您的最终频道部署了所有补丁版本。
  11. 可选:如果您希望以后在频道中的更新需要手动批准,您可以将 Approval 设置设置为 Manual

Red Hat Advanced Cluster Management 在所选频道的最新版本中运行。

有关升级 operator 的更多信息,请参阅为集群添加 operator

1.7. 升级 OpenShift Container Platform

您可以对托管您的 Red Hat Advanced Cluster Management for Kubernetes hub 集群的 Red Hat OpenShift Container Platform 进行版本升级。在启动任何集群范围的升级前,备份您的数据。

在升级 OpenShift Container Platform 版本的过程中,Red Hat Advanced Cluster Management web 控制台可能会在一个简短的时间段内没有页面或数据。它会出现 HTTP 500 (Internal Server Error)、HTTP 504 (Gateway Timeout Error) 错误,或出现以前可用的数据不再可用的错误。这是升级的一个正常部分,发生这种情况时不会丢失任何数据。这些数据和功能最终将会被恢复。

在升级期间还会重新构建搜索索引,因此在升级过程进行的查询可能不完整。

下表包含从 OpenShift Container Platform 版本 4.4.3 升级到 4.4.10 时可以观察到的情况:

表 1.1. 从 OpenShift Container Platform 版本 4.3.3 升级到 4.4.10 时可以观察到的情况列表。

升级过程已经过的时间(分钟:秒)观察到的更改持续时间

03:40

监管和风险控制台会出现 HTTP 500 错误

服务在 20 秒内恢复

05:30

AppUI 会出现 HTTP 504 Gateway Timeout 错误

服务在 60 秒内恢复

06:05

集群和搜索控制台会出现 HTTP 504 Gateway Timeout

服务在 20 秒内恢复

07:00

集群和搜索控制台会出现 HTTP 504 Gateway Timeout

服务在 20 秒内恢复

07:10

拓扑和集群控制台显示页面中的错误信息

服务在 20 秒内恢复

07:35

多数控制台页面都会出现 HTTP 500

服务在 60 秒内恢复

08:30

所有页面的服务都会恢复

 

1.8. 卸装

在卸载 Red Hat Advanced Cluster Management for Kubernetes 时,有两个不同级别的过程。

第一个级别是删除自定义资源。这是最基本的卸载类型,它会删除 MultiClusterHub 实例的自定义资源,但会保留其他需要的组件。如果计划使用相同的设置和组件进行另外一个安装时,可以选择使用这个级别的卸载。因为其他组件已安装,所以可以缩短下一个版本的时间。

第二个级别是完整的卸载。这会删除除了个别项目(如自定义资源定义)外的所有内容。这包括删除被删除项目所需的组件和设置。当您继续执行此步骤时,它会删除所有没有通过删除自定义资源而被删除的组件和订阅。如果使用这个级别的卸载,则必须在重新安装自定义资源前重新安装 operator。

重要:在卸载 Red Hat Advanced Cluster Management hub 集群前,您必须分离所有由该 hub 集群管理的集群。请参阅因为资源存在而导致卸载失败的故障排除

1.8.1. 使用以下命令删除 MultiClusterHub 实例

  1. 如果 MultiClusterObservability 自定义资源正在运行,则禁用和移除它。

    1. 登录到您的 hub 集群。
    2. 输入以下命令删除 MultiClusterObservability 自定义资源:

      oc delete mco observability

      当您删除资源时,Red Hat Advanced Cluster Management hub 集群上的 open-cluster-management-observability 命名空间中的 pod 以及所有受管集群上的 open-cluster-management-addon-observability 命名空间中的 pod 都会被删除。

      重要:删除 observability 服务后,您的对象存储不会受到影响。

  2. 输入以下命令来改变命名空间:

    oc project <namespace>

    使用项目命名空间的名称替换 namespace

  3. 输入以下命令删除 MultiClusterHub 自定义资源:

    oc delete multiclusterhub --all

    可能需要 20 分钟才能完成卸载过程。您可以输入以下命令来查看进度:

    oc get mch -o yaml
  4. 运行清理脚本删除所有剩余的工件。

    1. 按照安装 Helm 中的内容,安装 Helm CLI 二进制版本 3.2.0 或更新版本。
    2. 确保 OpenShift Container Platform CLI 被配置为运行 oc 命令。如需了解如何配置 oc 命令的更多信息,请参阅 OpenShift Container Platform 文档中的使用 CLI 的内容。
    3. 将以下脚本复制到一个文件中:

      #!/bin/bash
      ACM_NAMESPACE=<namespace>
      oc delete mch --all -n $ACM_NAMESPACE
      helm ls --namespace $ACM_NAMESPACE | cut -f 1 | tail -n +2 | xargs -n 1 helm delete --namespace $ACM_NAMESPACE
      oc delete apiservice v1beta1.webhook.certmanager.k8s.io v1.admission.cluster.open-cluster-management.io v1.admission.work.open-cluster-management.io
      oc delete clusterimageset --all
      oc delete configmap -n $ACM_NAMESPACE cert-manager-controller cert-manager-cainjector-leader-election cert-manager-cainjector-leader-election-core
      oc delete consolelink acm-console-link
      oc delete crd klusterletaddonconfigs.agent.open-cluster-management.io placementbindings.policy.open-cluster-management.io policies.policy.open-cluster-management.io userpreferences.console.open-cluster-management.io searchservices.search.acm.com
      oc delete mutatingwebhookconfiguration cert-manager-webhook cert-manager-webhook-v1alpha1
      oc delete oauthclient multicloudingress
      oc delete rolebinding -n kube-system cert-manager-webhook-webhook-authentication-reader
      oc delete scc kui-proxy-scc
      oc delete validatingwebhookconfiguration cert-manager-webhook cert-manager-webhook-v1alpha1

      将脚本中的 namespace 替换为安装 Red Hat Advanced Cluster Management 的命名空间的名称。确保指定正确的命名空间,因为命名空间会被清理和删除。

    4. 运行该脚本以删除以前安装中的内容。

      提示:如果您计划重新安装新版本并希望保留其他信息,可以跳过这个过程中的其余步骤并重新安装。

  5. 输入以下命令删除所有相关组件和订阅:

    oc delete subs --all
  6. 输入以下命令删除 ClusterServiceVersion:

    oc delete clusterserviceversion --all

1.8.2. 使用控制台删除组件

当使用 Red Hat OpenShift Container Platform 控制台卸载时,需要删除 operator。使用控制台完成以下步骤进行卸载:

  1. 在 OpenShift Container Platform 控制台导航中,选择 Operators > Installed Operators > Advanced Cluster Manager for Kubernetes.。
  2. 如果已安装,删除 MultiClusterObservability 自定义资源。

    1. 如果安装了 MultiClusterObservability 自定义资源,请选择 MultiClusterObservability 选项卡。
    2. 选择 MultiClusterObservability 自定义资源的 Options 菜单。
    3. 选择 Delete MultiClusterObservability
  3. 删除 MultiClusterHub 自定义资源。

    1. 选择 Multiclusterhub 标签页。
    2. 选择 MultiClusterHub 自定义资源的 Options 菜单。
    3. 选择 Delete MultiClusterHub

      可能需要 20 分钟才能完成卸载过程。

  4. 参照 Removing a MultiClusterHub instance by using commands 的内容运行 clean-up 脚本。

    提示:如果您计划重新安装新版本并希望保留其他信息,可以跳过这个过程中的其余步骤并重新安装。

  5. 进入 Installed Operators
  6. 选择 Options 菜单并选择 Uninstall operator 来删除 {product-short} operator。