集群


Red Hat Advanced Cluster Management for Kubernetes 2.6

了解有关集群生命周期的更多信息。

摘要

了解有关集群生命周期的更多信息。

第 1 章 集群生命周期架构

Red Hat Advanced Cluster Management for Kubernetes 有两个主要集群:hub clusters(中心集群)managed clusters(受管集群),它们由 multicluster engine for Kubernetes operator 创建和管理。请参阅 Kubernetes 的多集群引擎概述,其中包括从安装到故障排除的所有内容。

要在集群生命周期阶段继续添加和管理集群,您必须使用 multicluster engine operator 集群生命周期概述以及该 Operator 的所有文档。

您的集群是使用带有 Hive 资源的 Red Hat OpenShift Container Platform 集群安装程序创建的。请参阅 OpenShift Container Platform 文档中的有关在 OpenShift Container Platform 安装概述中安装集群的过程的更多信息。

集群生命周期管理架构的组件包括在集群生命周期架构中。

hub 集群是安装 Red Hat Advanced Cluster Management for Kubernetes 的主集群。您可以使用 hub 集群创建、管理和监控其他 Kubernetes 集群。受管集群是由 hub 集群管理的 Kubernetes 集群。您可以使用 Red Hat Advanced Cluster Management hub 集群创建一些集群,同时也可以导入现有集群由 hub 集群管理。

发行镜像是您创建集群时使用的 OpenShift Container Platform 版本。对于使用 Red Hat Advanced Cluster Management 创建的集群,您可以启用自动升级发行镜像。有关 Red Hat Advanced Cluster Management 中发行镜像的更多信息,请参阅发行镜像

1.1. 发行镜像

当使用 Red Hat Advanced Cluster Management for Kubernetes 在供应商处创建集群时,您必须指定用于新集群的发行镜像。发行镜像指定使用哪个版本的 Red Hat OpenShift Container Platform 来构建集群。

引用发行镜像的文件是在 acm-hive-openshift-releases GitHub 仓库中维护的 YAML 文件。Red Hat Advanced Cluster Management 使用这些文件在控制台中创建可用发行镜像的列表。这包括 OpenShift Container Platform 的最新快速频道镜像。控制台仅显示三个 OpenShift Container Platform 最新版本的最新发行镜像。例如,您可能在控制台选项中看到以下发行镜像:

  • quay.io/openshift-release-dev/ocp-release:4.6.23-x86_64
  • quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64

注:只有带有标签为: visible: 'true' 的发行镜像才可以在控制台中创建集群时选择。ClusterImageSet 资源中的此标签示例在以下内容中提供:

apiVersion: config.openshift.io/v1
kind: ClusterImageSet
metadata:
  labels:
    channel: fast
    visible: 'true'
  name: img4.10.1-x86-64-appsub
spec:
  releaseImage: quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64

存储了额外的发行镜像,但无法在控制台中看到。要查看所有可用发行镜像,请在 CLI 中运行 kubectl get clusterimageset。控制台中只有最新版本可促进创建带有最新发行镜像的集群。在某些情况下,您可能需要创建特定版本的集群,因此还会继续提供老版本。Red Hat Advanced Cluster Management 使用这些文件在控制台中创建可用发行镜像的列表。这包括 OpenShift Container Platform 的最新快速频道镜像。

仓库中包含 clusterImageSets 目录和 subscription 目录,它们是您使用发行镜像时使用的目录。

clusterImageSets 目录包含以下目录:

  • Fast : 包含引用每个受支持 OpenShift Container Platform 版本的最新发行镜像版本的文件。此目录中的发行镜像经过测试、验证和支持。
  • Releases : 包含引用每个 OpenShift Container Platform 版本(table、fast 和 candidate 频道)的所有发行镜像的文件 请注意:这些版本并没有经过测试并确定是稳定的。
  • Stable : 包含引用每个受支持 OpenShift Container Platform 版本的最新两个稳定发行镜像版本的文件。

注: 默认情况下,当前发行镜像列表被更新一次。升级产品后,列表最多可能需要一小时,以反映该产品的新版本的建议发行镜像版本。

您可以通过三种方式对自己的 ClusterImageSet 进行策展:

这三种方法中的第一个步骤都是禁用包含自动更新最新快速频道镜像的订阅。使用 multiclusterhub 资源中的安装程序参数可以禁用对最新的 fast ClusterImageSet 的自动策展。通过切换 spec.disableUpdateClusterImageSets 参数为 truefalse,Red Hat Advanced Cluster Management 安装的订阅会相应地被启用和禁用。如果要策展自己的镜像,请将 spec.disableUpdateClusterImageSets 设置为 true,以禁用订阅。

选项 1: 指定要在控制台创建集群时使用的特定 ClusterImageSet 的镜像引用。您指定的每个新条目都会保留,并可用于将来的所有集群置备。一个示例为:quay.io/openshift-release-dev/ocp-release:4.6.8-x86_64.

选项 2: 手动创建并应用来自 acm-hive-openshift-releases GitHub 仓库的 ClusterImageSets YAML 文件。

选项 3: 遵循 acm-hive-openshift-releases GitHub 仓库中的 README.md,启用对来自 fork 的 GitHub 仓库的 ClusterImageSets 的自动更新。

subscription 目录包含指定从哪里拉取发行镜像列表的文件。

Red Hat Advanced Cluster Management 的默认发行镜像位于 Quay.io 目录中。

发行版本 2.5 的 acm-hive-openshift-releases GitHub 仓库中引用的文件。

1.1.1. 创建发行镜像以在不同构架中部署集群

您可以通过手动创建包含这两个架构文件的发行镜像,在与 hub 集群架构不同的架构中创建集群。

例如,您可以从 ppc64leaarch64s390x 架构上运行的 hub 集群创建一个 x86_64 集群。如果使用两组文件创建发行镜像,集群创建成功,因为新发行镜像启用 OpenShift Container Platform 发行 registry 来提供多架构镜像清单。

OpenShift Container Platform 4.11 及更新的版本默认支持多个架构。您可以使用以下 clusterImageSet 来置备集群:

apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
  labels:
    channel: fast
    visible: 'true'
  name: img4.12.0-multi-appsub
spec:
  releaseImage: quay.io/openshift-release-dev/ocp-release:4.12.0-multi

要为不支持多个架构的 OpenShift Container Platform 镜像创建发行镜像,请完成类似以下示例的步骤:

  1. OpenShift Container Platform release registry 中,创建一个 清单列表,其中包含 x86_64s390xaarch64ppc64le 发行镜像。

    1. 使用以下命令,从 Quay 仓库拉取环境中这两个架构的清单列表:

      podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64
      podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-ppc64le
      podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-s390x
      podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-aarch64
    2. 登录到维护镜像的私有存储库:

      podman login <private-repo>

      使用存储库的路径替换 private-repo

    3. 运行以下命令,将发行镜像清单添加到私有存储库中:

      podman push quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64 <private-repo>/ocp-release:4.10.1-x86_64
      podman push quay.io/openshift-release-dev/ocp-release:4.10.1-ppc64le <private-repo>/ocp-release:4.10.1-ppc64le
      podman push quay.io/openshift-release-dev/ocp-release:4.10.1-s390x <private-repo>/ocp-release:4.10.1-s390x
      podman push quay.io/openshift-release-dev/ocp-release:4.10.1-aarch64 <private-repo>/ocp-release:4.10.1-aarch64

      使用存储库的路径替换 private-repo

    4. 为新信息创建清单:

      podman manifest create mymanifest
    5. 将两个发行镜像的引用添加到清单列表中:

      podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-x86_64
      podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-ppc64le
      podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-s390x
      podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-aarch64

      使用存储库的路径替换 private-repo

    6. 将清单列表中的列表与现有清单合并:

      podman manifest push mymanifest docker://<private-repo>/ocp-release:4.10.1

      使用存储库的路径替换 private-repo

  2. 在 hub 集群中,创建一个发行版本镜像来引用存储库中的清单。

    1. 创建一个 YAML 文件,其中包含类似以下示例的信息:

      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        labels:
          channel: fast
          visible: "true"
        name: img4.10.1-appsub
      spec:
        releaseImage: <private-repo>/ocp-release:4.10.1

      使用存储库的路径替换 private-repo

    2. 在 hub 集群中运行以下命令以应用更改:

      oc apply -f <file-name>.yaml

      file-name 替换为您刚才创建的 YAML 文件的名称。

  3. 在创建 OpenShift Container Platform 集群时选择新的发行镜像。
  4. 如果使用 Red Hat Advanced Cluster Management 控制台部署受管集群,在集群创建过程中在 Architecture 字段中指定受管集群的架构。

创建流程使用合并的发行镜像来创建集群。

1.1.2. 连接时维护自定义的发行镜像列表

您可能希望确保所有集群都使用同一发行镜像。为简化操作,您可以创建自己的自定义列表,在其中包含创建集群时可用的发行镜像。完成以下步骤以管理可用发行镜像:

  1. 如果启用了安装程序管理的 acm-hive-openshift-releases 订阅,在 multiclusterhub 资源中将 disableUpdateClusterImageSets 的值设置为 true 来禁用它。
  2. acm-hive-openshift-releases GitHub 仓库 2.5 分支 进行分叉(fork)。
  3. 通过将 spec: pathname 更改为访问已分叉的仓库的 GitHub 名称,而不是 stolostron,更新 ./subscribe/channel.yaml 文件。此步骤指定 hub 集群在哪里检索发行镜像。您更新的内容应类似以下示例:

    spec:
      type: Git
      pathname: https://github.com/<forked_content>/acm-hive-openshift-releases.git

    forked_content 替换为已分叉仓库的路径。

  4. 使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建集群时可用的镜像,将 YAML 文件添加到 ./clusterImageSets/stable/*./clusterImageSets/fast/* 目录中。

    提示: 您可以通过将更改合并到已分叉的存储库,从主存储库检索可用的 YAML 文件。

  5. 将更改提交并合并到您的已分叉仓库。
  6. 在克隆了 acm-hive-openshift-releases 仓库后,使用以下命令来更新 fast 镜像后同步 fast 发行镜像列表:

    make subscribe-fast

    注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

    运行此命令后,可用快速镜像列表会在约 1 分钟内更新为当前可用镜像。

  7. 默认情况下,只列出 fast 镜像。要同步并显示稳定的发行镜像,请输入以下命令:

    make subscribe-stable

    注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

    运行此命令后,可用稳定镜像列表会在约 1 分钟内更新为当前可用镜像。

  8. 默认情况下,Red Hat Advanced Cluster Management 会预加载几个 ClusterImageSets。您可以使用以下命令列出可用内容并删除默认值。

    oc get clusterImageSets
    oc delete clusterImageSet <clusterImageSet_NAME>

    注: 如果您还没有通过将 multiclusterhub 资源中的 disableUpdateClusterImageSets 的值设置为 true 来禁用安装程序管理的 ClusterImageSet 的自动更新,则您删除的任何镜像都会被自动重新创建。

  9. 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。

1.1.3. 同步可用发行镜像

版本镜像会频繁更新,因此可能需要同步发行镜像列表,以确保可以选择最新的可用版本。发行镜像位于用于发行版本 2.5 的 acm-hive-openshift-releases GitHub 仓库中。

发行镜像有三个级别的稳定性:

表 1.1. 发行镜像的稳定性级别

类别

描述

stable

已确认用于正确安装和构建集群的完整测试镜像。

fast

部分进行了测试,但稳定性可能低于稳定版本。

candidate

最新镜像,但未经测试。可能会有一些程序错误。

完成以下步骤以刷新列表:

  1. 如果启用了安装程序管理的 acm-hive-openshift-releases 订阅,在 multiclusterhub 资源中将 disableUpdateClusterImageSets 的值设置为 true 来禁用订阅。
  2. 克隆用于发行版本 2.5 的 acm-hive-openshift-releases GitHub 仓库。
  3. 输入以下命令删除订阅:

    oc delete -f subscribe/subscription-fast
  4. 输入以下命令连接到稳定版本镜像并同步您的 Red Hat Advanced Cluster Management for Kubernetes hub 集群:

    make subscribe-stable

    注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

    大约一分钟后,最新的 stable 镜像列表将可用。

    • 要同步并显示快速发行镜像,请输入以下命令:

      make subscribe-fast

      注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

      运行此命令后,当前可用的镜像会在约一分钟内在可用的 stablefast 发行镜像列表中出现。

    • 要同步并显示 candidate 发行镜像,请输入以下命令:

      make subscribe-candidate

      注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

      运行该命令后,当前可用的镜像会更新可用的 stablefastcandidate 发行镜像列表。

  5. 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。
  6. 使用以下格式输入命令来从这些频道中取消订阅以停止查看更新:

    oc delete -f subscribe/subscription-fast

1.2. 修改集群的 klusterlet 附加组件设置

您可以使用 hub 集群修改 KlusterletAddonConfig 的设置,以更改您的配置。

KlusterletAddonConfig 控制器根据 klusterletaddonconfigs.agent.open-cluster-management.io Kubernetes 资源中的设置管理启用和禁用的功能。查看以下 KlusterletAddonConfig 示例:

apiVersion: agent.open-cluster-management.io/v1
kind: KlusterletAddonConfig
metadata:
  name: <cluster-name>
  namespace: <cluster-name>
spec:
  clusterName: <cluster-name>
  clusterNamespace: <cluster-name>
  clusterLabels:
    cloud: auto-detect
    vendor: auto-detect
  applicationManager:
    enabled: true
  certPolicyController:
    enabled: true
  iamPolicyController:
    enabled: true
  policyController:
    enabled: true
  searchCollector:
    enabled: false
  version: 2.5.0

1.2.1. klusterlet 附加组件设置描述

以下设置可以在 klusterletaddonconfigs.agent.open-cluster-management.io Kubernetes 资源中更新:

表 1.2. klusterlet 附加组件设置列表
设置名称描述

applicationmanager

truefalse

此控制器在受管集群中管理应用程序订阅生命周期。

certPolicyController

truefalse

此控制器在受管集群中强制实施基于证书的策略。

iamPolicyController

truefalse

此控制器在受管集群上强制实施基于 IAM 的策略生命周期。

policyController

truefalse

此控制器在受管集群上强制执行所有其他策略规则。

searchCollector

truefalse

此控制器用于定期将资源索引数据推送回 hub 集群。

1.2.2. 使用 hub 集群中的控制台进行修改

您可以使用 hub 集群修改 klusterletaddonconfigs.agent.open-cluster-management.io 资源设置。完成以下步骤以更改设置:

  1. 登录到 hub 集群的 Red Hat Advanced Cluster Management for Kubernetes 控制台。
  2. 在 hub 集群控制台的标头菜单中选择 Search 图标。
  3. 在搜索参数中输入以下值:kind:klusterletaddonconfigs
  4. 选择您要更新的端点资源。
  5. 找到 spec 部分并选择 Edit 以编辑内容。
  6. 修改设置。
  7. 选择 Save 以应用您的更改。

1.2.3. 使用 hub 集群中的命令行进行修改

您必须有权访问 cluster-name 命名空间才能使用 hub 集群修改设置。完成以下步骤:

  1. 登录到 hub 集群。
  2. 输入以下命令以编辑资源:

    kubectl edit klusterletaddonconfigs.agent.open-cluster-management.io <cluster-name> -n <cluster-name>
  3. 找到 spec 部分。
  4. 根据需要修改您的设置。

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.