将现有集群导入 ACM
使用此示例过程将现有集群置于 ACM 管理之下。现有群集必须已启动并正在运行。
我们提供此示例过程纯粹是为了提供信息。有关官方程序,请参阅 红帽 ACM 文档 。
- 登录到中枢群集。
确保中枢集群的 kubeconfig 存储在默认的 kubeconfig 位置 ( )。
~/.kube/config
然后按如下方式登录:oc login
- 将群集名称保存到变量中,以便稍后使用。
CLUSTER_NAME=mgmt-spoke2
- 创建项目。
oc new-project ${CLUSTER_NAME}
- 创建命名空间。
oc label namespace ${CLUSTER_NAME} cluster.open-cluster-management.io/managedCluster=${CLUSTER_NAME}
- 创建并应用描述托管群集的 YAML 文件。
- 创建 YAML 文件。
我们将 YAML 文件命名为 managed-cluster.yaml。
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: mgmt-spoke2 spec: hubAcceptsClient: true
mgmt-spoke2
是群集名称。 - 应用 YAML。
oc apply -f managed-cluster.yaml
- 创建 YAML 文件。
- 创建并应用 klusterlet 插件 YAML 文件。klusterlet 是负责中枢群集和托管群集之间通信的代理。
- 创建 YAML 文件。
我们将 YAML 文件命名为 klusterlet-addon-config.yaml。
apiVersion: agent.open-cluster-management.io/v1 kind: KlusterletAddonConfig metadata: name: mgmt-spoke2 namespace: mgmt-spoke2 spec: clusterName: mgmt-spoke2 clusterNamespace: mgmt-spoke2 applicationManager: enabled: true certPolicyController: enabled: true clusterLabels: cloud: auto-detect vendor: auto-detect iamPolicyController: enabled: true policyController: enabled: true searchCollector: enabled: true version: 2.0.0
- 应用 YAML。
oc apply -f klusterlet-addon-config.yaml
- 创建 YAML 文件。
- 查看上一步自动生成的密钥。
自动生成的密钥称为
${CLUSTER_NAME}-import
。oc get secret ${CLUSTER_NAME}-import
oc describe secret ${CLUSTER_NAME}-import
此密钥包含 import.yaml ,您将将其应用于托管集群以安装 klusterlet。
- 将 klusterlet 配置保存到本地文件。
- 检索 klusterlet CRD 并将其保存,以便稍后应用于托管群集。
oc get secret ${CLUSTER_NAME}-import -n ${CLUSTER_NAME} -o jsonpath={.data.crds\\.yaml} | base64 --decode > klusterlet-crd.yaml
- 检索 import.yaml 并将其保存,以便稍后将其应用于托管群集。
oc get secret ${CLUSTER_NAME}-import -n ${CLUSTER_NAME} -o jsonpath={.data.import\\.yaml} | base64 --decode > import.yaml
- 检索 klusterlet CRD 并将其保存,以便稍后应用于托管群集。
- 导入 klusterlet。
从托管群集运行这些命令。一种方法是将托管集群的 kubeconfig 复制到默认的 kubeconfig 位置 (
~/.kube/config
)。kubectl apply -f klusterlet-crd.yaml
kubectl apply -f import.yaml
- 检查 klusterlet 的 pod 状态。
kubectl get pod -n open-cluster-management-agent
- 检查导入的集群的“已加入”和“可用”状态。从中枢群集运行此命令。
kubectl get managedcluster -n ${CLUSTER_NAME}
导入的群集应指示它已加入且可用。
- 检查代理插件。从中枢群集运行此命令。
oc get pod -n open-cluster-management-agent-addon