7.3. Kubernetes Operator에 연결된 동안 멀티클러스터 엔진에 대한 에이전트 기반 클러스터 배포 준비
멀티클러스터 엔진 운영자, 로컬 스토리지 운영자(LSO)에 필요한 매니페스트를 만들고, 에이전트 기반 OpenShift Container Platform 클러스터를 허브 클러스터로 배포합니다.
프로세스
<assets_directory>폴더에openshift라는 하위 폴더를 만듭니다. 이 하위 폴더는 배포된 클러스터를 더욱 사용자 정의하기 위해 설치 중에 적용될 추가 매니페스트를 저장하는 데 사용됩니다.<assets_directory>폴더에는install-config.yaml및agent-config.yaml파일을 포함한 모든 자산이 포함되어 있습니다.참고설치 프로그램은 추가 매니페스트의 유효성을 검사하지 않습니다.
멀티클러스터 엔진의 경우 다음 매니페스트를 만들어
<assets_directory>/openshift폴더에 저장합니다.Example
mce_namespace.yamlapiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" name: multicluster-engine예시
mce_operatorgroup.yamlapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: multicluster-engine-operatorgroup namespace: multicluster-engine spec: targetNamespaces: - multicluster-engineExample
mce_subscription.yamlapiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: multicluster-engine namespace: multicluster-engine spec: channel: "stable-2.3" name: multicluster-engine source: redhat-operators sourceNamespace: openshift-marketplace참고Red Hat Advanced Cluster Management(RHACM)의 지원 설치 프로그램(AI)을 사용하면 대규모로 분산 유닛(DU)을 설치할 수 있습니다. 이러한 분산 장치는 허브 클러스터에서 활성화되어야 합니다. AI 서비스에는 수동으로 생성하는 영구 볼륨(PV)이 필요합니다.
AI 서비스의 경우 다음 매니페스트를 만들고
<assets_directory>/openshift폴더에 저장합니다.Example
lso_namespace.yamlapiVersion: v1 kind: Namespace metadata: annotations: openshift.io/cluster-monitoring: "true" name: openshift-local-storageExample
lso_operatorgroup.yamlapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: local-operator-group namespace: openshift-local-storage spec: targetNamespaces: - openshift-local-storageExample
lso_subscription.yamlapiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: local-storage-operator namespace: openshift-local-storage spec: installPlanApproval: Automatic name: local-storage-operator source: redhat-operators sourceNamespace: openshift-marketplace참고모든 매니페스트를 만든 후에는 파일 시스템에 다음과 같이 표시되어야 합니다.
예: Filesystem
<assets_directory> ├─ install-config.yaml ├─ agent-config.yaml └─ /openshift ├─ mce_namespace.yaml ├─ mce_operatorgroup.yaml ├─ mce_subscription.yaml ├─ lso_namespace.yaml ├─ lso_operatorgroup.yaml └─ lso_subscription.yaml다음 명령을 실행하여 에이전트 ISO 이미지를 만듭니다.
$ openshift-install agent create image --dir <assets_directory>- 이미지가 준비되면 대상 컴퓨터를 부팅하고 설치가 완료될 때까지 기다리세요.
설치를 모니터링하려면 다음 명령을 실행하세요.
$ openshift-install agent wait-for install-complete --dir <assets_directory>참고완벽하게 기능하는 허브 클러스터를 구성하려면 다음 매니페스트를 만들고
$ oc apply -f <manifest-name>명령을 실행하여 수동으로 적용해야 합니다. 매니페스트 생성 순서는 중요하며, 필요한 경우 대기 조건이 표시됩니다.AI 서비스에 필요한 PV에 대해 다음 매니페스트를 만듭니다.
apiVersion: local.storage.openshift.io/v1 kind: LocalVolume metadata: name: assisted-service namespace: openshift-local-storage spec: logLevel: Normal managementState: Managed storageClassDevices: - devicePaths: - /dev/vda - /dev/vdb storageClassName: assisted-service volumeMode: Filesystem다음 명령을 사용하여 후속 매니페스트를 적용하기 전에 PV가 사용 가능할 때까지 기다리세요.
$ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m참고The `devicePath` is an example and may vary depending on the actual hardware configuration used.멀티클러스터 엔진 인스턴스에 대한 매니페스트를 만듭니다.
Example
MultiClusterEngine.yamlapiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: {}AI 서비스를 활성화하기 위한 매니페스트를 만듭니다.
agentserviceconfig.yaml예제apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent namespace: assisted-installer spec: databaseStorage: storageClassName: assisted-service accessModes: - ReadWriteOnce resources: requests: storage: 10Gi filesystemStorage: storageClassName: assisted-service accessModes: - ReadWriteOnce resources: requests: storage: 10Gi이후 스포크 클러스터를 배포하기 위한 매니페스트를 만듭니다.
clusterimageset.yaml예제apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: "4.19" spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.19.0-x86_64에이전트가 설치된 클러스터(멀티클러스터 엔진과 지원 서비스를 호스팅하는 클러스터)를 허브 클러스터로 가져오기 위한 매니페스트를 만듭니다.
autoimport.yaml예제apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: labels: local-cluster: "true" cloud: auto-detect vendor: auto-detect name: local-cluster spec: hubAcceptsClient: true관리되는 클러스터가 생성될 때까지 기다리세요.
$ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m
검증
관리형 클러스터 설치가 성공했는지 확인하려면 다음 명령을 실행하세요.
$ oc get managedcluster NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://<your cluster url>:6443 True True 77m