×

管理导入的托管集群的限制

与独立的 OpenShift Container Platform 或第三方集群不同,托管集群会自动导入到本地多集群引擎 Kubernetes Operator 中。托管集群以 *托管模式* 运行其部分代理,以便代理不使用集群的资源。

如果您选择自动导入托管集群,则可以使用管理集群上的HostedCluster资源更新托管集群中的节点池和控制平面。要更新节点池和控制平面,请参阅“更新托管集群中的节点池”和“更新托管集群中的控制平面”。

您可以使用 Red Hat Advanced Cluster Management (RHACM) 将托管集群导入到本地多集群引擎 Operator 以外的位置。有关更多信息,请参阅“在 Red Hat Advanced Cluster Management 中发现多集群引擎 Kubernetes Operator 托管集群”。

在此拓扑中,您必须使用命令行界面或托管集群所在本地多集群引擎 Kubernetes Operator 的控制台来更新托管集群。您无法通过 RHACM 集线器集群更新托管集群。

手动导入托管集群

如果您想手动导入托管集群,请完成以下步骤。

步骤
  1. 在控制台中,单击**基础架构** → **集群**,然后选择要导入的托管集群。

  2. 单击**导入托管集群**。

    对于您的*已发现*托管集群,您也可以从控制台导入,但集群必须处于可升级状态。如果托管集群不处于可升级状态(因为托管控制平面不可用),则会禁用集群上的导入。单击**导入**开始此过程。在集群接收更新时,状态为导入中,然后变为就绪

在 AWS 上手动导入托管集群

您也可以使用命令行界面导入 Amazon Web Services (AWS) 上的托管集群。

步骤
  1. 使用以下示例 YAML 文件创建您的ManagedCluster资源

    apiVersion: cluster.open-cluster-management.io/v1
    kind: ManagedCluster
    metadata:
      annotations:
        import.open-cluster-management.io/hosting-cluster-name: local-cluster
        import.open-cluster-management.io/klusterlet-deploy-mode: Hosted
        open-cluster-management/created-via: hypershift
      labels:
        cloud: auto-detect
        cluster.open-cluster-management.io/clusterset: default
        name: <hosted_cluster_name> (1)
        vendor: OpenShift
      name: <hosted_cluster_name>
    spec:
      hubAcceptsClient: true
      leaseDurationSeconds: 60
    1 <托管集群名称>替换为您的托管集群的名称。
  2. 运行以下命令以应用资源

    $ oc apply -f <file_name> (1)
    1 <文件名>替换为您在上一步中创建的 YAML 文件名。
  3. 如果您已安装 Red Hat Advanced Cluster Management,请使用以下示例 YAML 文件创建您的KlusterletAddonConfig资源。如果您只安装了多集群引擎 Operator,请跳过此步骤

    apiVersion: agent.open-cluster-management.io/v1
    kind: KlusterletAddonConfig
    metadata:
      name: <hosted_cluster_name> (1)
      namespace: <hosted_cluster_namespace> (2)
    spec:
      clusterName: <hosted_cluster_name>
      clusterNamespace: <hosted_cluster_namespace>
      clusterLabels:
        cloud: auto-detect
        vendor: auto-detect
      applicationManager:
        enabled: true
      certPolicyController:
        enabled: true
      iamPolicyController:
        enabled: true
      policyController:
        enabled: true
      searchCollector:
        enabled: false
    1 <托管集群名称>替换为您的托管集群的名称。
    2 <托管集群命名空间>替换为您的托管集群命名空间的名称。
  4. 运行以下命令以应用资源

    $ oc apply -f <file_name> (1)
    1 <文件名>替换为您在上一步中创建的 YAML 文件名。
  5. 导入过程完成后,您的托管集群将在控制台中可见。您还可以通过运行以下命令来检查托管集群的状态

    $ oc get managedcluster <hosted_cluster_name>

禁用将托管集群自动导入到多集群引擎 Operator 中

控制平面可用后,托管集群会自动导入到多集群引擎 Operator 中。如有需要,您可以禁用托管集群的自动导入。

即使您禁用了自动导入,以前导入的任何托管集群都不会受到影响。当您升级到多集群引擎 Operator 2.5 并启用自动导入时,如果其控制平面可用,则所有未导入的托管集群都会自动导入。

如果安装了 Red Hat Advanced Cluster Management,则所有 Red Hat Advanced Cluster Management 附加组件也将启用。

禁用自动导入后,只有新创建的托管集群不会自动导入。已导入的托管集群不受影响。您仍然可以使用控制台或通过创建ManagedClusterKlusterletAddonConfig自定义资源来手动导入集群。

步骤

要禁用托管集群的自动导入,请完成以下步骤

  1. 在集线器集群上,打开安装多集群引擎 Operator 的命名空间中AddonDeploymentConfig资源中的hypershift-addon-deploy-config规范,方法是输入以下命令

    $ oc edit addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine
  2. spec.customizedVariables部分中,添加值为"true"autoImportDisabled变量,如下例所示

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: hypershift-addon-deploy-config
      namespace: multicluster-engine
    spec:
      customizedVariables:
       - name: hcMaxNumber
         value: "80"
      - name: hcThresholdNumber
        value: "60"
      - name: autoImportDisabled
        value: "true"
  3. 要重新启用自动导入,请将autoImportDisabled变量的值设置为"false"或从AddonDeploymentConfig资源中删除该变量。