ACM 허브 클러스터 생성
이 예제 절차를 사용하여 ACM 허브 클러스터를 생성합니다.
ACM 허브 클러스터는 관리형 클러스터에 중앙 집중식 관리를 제공합니다. 모든 클러스터(단일 노드 OpenShift 클러스터 포함)를 허브 클러스터로 구성할 수 있습니다. 허브 클러스터는 모든 CNI를 실행할 수 있습니다.
이 예제 절차는 순전히 정보 제공의 목적으로 제공됩니다. 공식 절차는 Red Hat ACM 설명서를 참조하십시오.
설치 컴퓨터에서 이 절차를 실행합니다.
- 선택한 방법을 사용하여 OCP 클러스터를 생성합니다. 이 클러스터는 기본 CNI를 실행할 수 있습니다. 이 클러스터에 CN2를 설치할 필요가 없습니다.
이 예제 절차에서는 다음을 가정합니다.
-
이 클러스터는 기본 CNI를 실행하는 단일 노드 OpenShift 클러스터이며 에서 연결할 수 있습니다
172.16.0.11
. 이 절차의 나머지 부분에서는 이를 허브 클러스터라고 합니다. -
이 클러스터의 kubeconfig는 설치 머신의 기본 위치(~/.kube/config)에 있습니다.
-
클러스터 SSH 키는 설치 컴퓨터의 기본 위치(~/.ssh/id_rsa 및 ~/.ssh/id_rsa.pub)에 있습니다.
-
- 이 허브 클러스터 및 관리되는 클러스터에서 액세스할 수 있는 네트워크 저장소를 만듭니다.
이를 수행하는 한 가지 방법은 외부 프로비저너와 함께 NFS 서버(최소 120GB)를 배포하는 것입니다. 예를 들어 NFS Subdir External Provisioner를 배포하여 기존 및 이미 구성된 NFS 서버를 사용하여 영구 볼륨의 동적 프로비저닝을 지원할 수 있습니다. 이 내용은 https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner 에 설명되어 있습니다.
- MCE(Multicluster Engine) Operator를 설치합니다. ACM 허브 기능을 제공하는 OCP 연산자입니다. (이 연산자는 CN2 다중 클러스터와 관련이 없습니다.)
- 멀티클러스터 엔진 운영자 매니페스트를 생성합니다.
apiVersion: v1 kind: Namespace metadata: name: multicluster-engine labels: openshift.io/cluster-monitoring: "true" annotations: workload.openshift.io/allowed: management --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: multicluster-engine-operatorgroup namespace: multicluster-engine spec: targetNamespaces: - multicluster-engine --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: multicluster-engine namespace: multicluster-engine spec: channel: "stable-2.1" name: multicluster-engine source: redhat-operators sourceNamespace: openshift-marketplace
- 연산자를 설치합니다.
oc create -f hub-mce.yaml
- 멀티클러스터 엔진 운영자 매니페스트를 생성합니다.
- MultiClusterEngine 사용자 정의 리소스를 생성합니다.
- MultiClusterEngine 사용자 정의 리소스 매니페스트를 생성합니다.
apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: {}
- 리소스를 만듭니다.
oc apply -f hub-mce-cr.yaml
- MultiClusterEngine 사용자 정의 리소스 매니페스트를 생성합니다.
- 지원 서비스 구성 요소를 구성합니다.
- 지원 서비스 매니페스트를 만듭니다.
예를 들면 다음과 같습니다
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: openshift-v4.12 namespace: multicluster-engine spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.12.13-x86_64 --- apiVersion: v1 kind: ConfigMap metadata: name: assisted-service-config namespace: multicluster-engine labels: app: assisted-service data: LOG_LEVEL: "debug" --- apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: namespace: multicluster-engine name: agent spec: databaseStorage: accessModes: - ReadWriteOnce resources: requests: storage: 40Gi filesystemStorage: accessModes: - ReadWriteOnce resources: requests: storage: 40Gi imageStorage: accessModes: - ReadWriteOnce resources: requests: storage: 40Gi osImages: - openshiftVersion: "4.12" url: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/pre-release/latest-4.12/rhcos-live.x86_64.iso" rootFSUrl: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/pre-release/latest-4.12/rhcos-live-rootfs.x86_64.img" cpuArchitecture: "x86_64" version: "latest-4.12" --- apiVersion: v1 kind: Secret metadata: creationTimestamp: null name: assisted-deployment-ssh-private-key namespace: multicluster-engine type: Opaque stringData: ssh-privatekey: | <ssh-private-key> --- apiVersion: v1 kind: Secret metadata: name: assisted-deployment-pull-secret namespace: multicluster-engine stringData: .dockerconfigjson: '<pull-secret>' type: kubernetes.io/dockerconfigjson
-
<ssh-private-key> 는 SSH 개인 키(즉, ~/.ssh/id_rsa의 내용)입니다.
-
<pull-secret> 는 Red Hat에서 다운로드한 풀 시크릿입니다.
-
- 지원 서비스 구성 요소를 만듭니다.
oc apply -f hub-assisted-service.yaml
- 지원 서비스 매니페스트를 만듭니다.
- 모든 멀티클러스터 엔진 구성 요소가 실행 중인지 확인합니다.
oc get pods -n multicluster-engine
허브 클러스터를 생성하고 ACM에 대해 구성했습니다. 이제 관리형 클러스터를 설치할 수 있습니다.