1.2. 검색된 호스팅 클러스터에 대한 가져오기 자동화
개별 클러스터를 수동으로 가져오지 않고도 DiscoveredCluster 리소스를 사용하여 호스트 클러스터 가져오기를 자동화합니다.
검색된 호스팅 클러스터를 Red Hat Advanced Cluster Management로 자동으로 가져오는 경우 모든 Red Hat Advanced Cluster Management 애드온이 활성화되므로 사용 가능한 관리 툴로 호스팅된 클러스터 관리를 시작할 수 있습니다.
또한 호스트된 클러스터는 다중 클러스터 엔진 Operator로 자동 가져옵니다. 멀티 클러스터 엔진 Operator 콘솔을 통해 호스트된 클러스터 라이프사이클을 관리할 수 있습니다. 그러나 Red Hat Advanced Cluster Management 콘솔에서 호스팅되는 클러스터 라이프사이클을 관리할 수 없습니다.
필수 액세스: 클러스터 관리자
1.2.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- Red Hat Advanced Cluster Management가 설치되어 있어야 합니다. Red Hat Advanced Cluster Management 설치 및 업그레이드 설명서를 참조하십시오.
- 정책에 대해 배울 필요가 있습니다. Red Hat Advanced Cluster Management 설명서에서 Governance 소개를 참조하십시오.
1.2.2. 자동 가져오기를 위한 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 다중 클러스터 엔진 Operator 클러스터에서 검색된 호스트 클러스터는 Red Hat Advanced Cluster Management의 관리형 다중 클러스터 엔진 Operator 클러스터 네임스페이스에 있는 DiscoveredCluster 사용자 정의 리소스에 표시됩니다. 다음 DiscoveredCluster 리소스 및 네임스페이스 예제를 참조하십시오.
apiVersion: discovery.open-cluster-management.io/v1
kind: DiscoveredCluster
metadata:
creationTimestamp: "2024-05-30T23:05:39Z"
generation: 1
labels:
hypershift.open-cluster-management.io/hc-name: hosted-cluster-1
hypershift.open-cluster-management.io/hc-namespace: clusters
name: hosted-cluster-1
namespace: mce-1
resourceVersion: "1740725"
uid: b4c36dca-a0c4-49f9-9673-f561e601d837
spec:
apiUrl: https://a43e6fe6dcef244f8b72c30426fb6ae3-ea3fec7b113c88da.elb.us-west-1.amazonaws.com:6443
cloudProvider: aws
creationTimestamp: "2024-05-30T23:02:45Z"
credential: {}
displayName: mce-1-hosted-cluster-1
importAsManagedCluster: false
isManagedCluster: false
name: hosted-cluster-1
openshiftVersion: 0.0.0
status: Active
type: MultiClusterEngineHCP
검색된 호스트 클러스터는 spec.importAsManagedCluster 필드가 true 로 설정될 때까지 Red Hat Advanced Cluster Management로 자동 가져오지 않습니다. Red Hat Advanced Cluster Management 정책을 사용하여 모든 유형에 대해 이 필드를 자동으로 가 검색된 호스팅 클러스터를 즉시 Red Hat Advanced Cluster Management로 자동으로 가져옵니다.
true 로 설정하는 방법을 알아보십시오. DiscoveredCluster 리소스 내에서MultiClusterEngineHCP
검색된 호스팅 클러스터를 모두 자동으로 가져오도록 정책을 구성합니다. CLI에서 hub 클러스터에 로그인하여 다음 절차를 완료합니다.
DiscoveredCluster사용자 정의 리소스에 대한 YAML 파일을 생성하고 다음 예제에서 참조하는 구성을 편집합니다.apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-mce-hcp-autoimport namespace: open-cluster-management-global-set annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration policy.open-cluster-management.io/description: Discovered clusters that are of type MultiClusterEngineHCP can be automatically imported into ACM as managed clusters. This policy configure those discovered clusters so they are automatically imported. Fine tuning MultiClusterEngineHCP clusters to be automatically imported can be done by configure filters at the configMap or add annotation to the discoverd cluster. spec: disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: mce-hcp-autoimport-config spec: object-templates: - complianceType: musthave objectDefinition: apiVersion: v1 kind: ConfigMap metadata: name: discovery-config namespace: open-cluster-management-global-set data: rosa-filter: "" remediationAction: enforce1 severity: low - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-mce-hcp-autoimport spec: remediationAction: enforce severity: low object-templates-raw: | {{- /* find the MultiClusterEngineHCP DiscoveredClusters */ -}} {{- range $dc := (lookup "discovery.open-cluster-management.io/v1" "DiscoveredCluster" "" "").items }} {{- /* Check for the flag that indicates the import should be skipped */ -}} {{- $skip := "false" -}} {{- range $key, $value := $dc.metadata.annotations }} {{- if and (eq $key "discovery.open-cluster-management.io/previously-auto-imported") (eq $value "true") }} {{- $skip = "true" }} {{- end }} {{- end }} {{- /* if the type is MultiClusterEngineHCP and the status is Active */ -}} {{- if and (eq $dc.spec.status "Active") (contains (fromConfigMap "open-cluster-management-global-set" "discovery-config" "mce-hcp-filter") $dc.spec.displayName) (eq $dc.spec.type "MultiClusterEngineHCP") (eq $skip "false") }} - complianceType: musthave objectDefinition: apiVersion: discovery.open-cluster-management.io/v1 kind: DiscoveredCluster metadata: name: {{ $dc.metadata.name }} namespace: {{ $dc.metadata.namespace }} spec: importAsManagedCluster: true2 {{- end }} {{- end }}-
oc apply -f <filename>.yaml -n <namespace>를 실행하여 파일을 적용합니다.
1.2.3. 배치 정의 생성 링크 복사링크가 클립보드에 복사되었습니다!
정책 배포를 위해 관리 클러스터를 지정하는 배치 정의를 생성해야 합니다. 다음 절차를 완료합니다.
관리되는 허브 클러스터인
local-cluster만 선택하는배치정의를 생성합니다. 다음 YAML 샘플을 사용합니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: policy-mce-hcp-autoimport-placement namespace: open-cluster-management-global-set spec: tolerations: - key: cluster.open-cluster-management.io/unreachable operator: Exists - key: cluster.open-cluster-management.io/unavailable operator: Exists clusterSets: - global predicates: - requiredClusterSelector: labelSelector: matchExpressions: - key: local-cluster operator: In values: - "true"-
oc apply -f placement.yaml -n <namespace>를실행합니다. 여기서 namespace는 이전에 생성한 정책에 사용한 네임스페이스와 일치합니다.
1.2.4. 배치 정의에 가져오기 정책 바인딩 링크 복사링크가 클립보드에 복사되었습니다!
정책과 배치를 생성한 후 두 리소스를 연결해야 합니다. 다음 단계를 완료합니다.
PlacementBinding리소스를 사용하여 리소스를 연결합니다.placementRef가 사용자가 생성한배치를가리키고주체가 생성한정책을가리키는 다음 예제를 참조하십시오.apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: policy-mce-hcp-autoimport-placement-binding namespace: open-cluster-management-global-set placementRef: name: policy-mce-hcp-autoimport-placement apiGroup: cluster.open-cluster-management.io kind: Placement subjects: - name: policy-mce-hcp-autoimport apiGroup: policy.open-cluster-management.io kind: Policy확인하려면 다음 명령을 실행합니다.
oc get policy policy-mce-hcp-autoimport -n <namespace>
중요: Red Hat Advanced Cluster Management 콘솔에서 Detach 옵션을 사용하거나 명령줄에서 해당 ManagedCluster 사용자 정의 리소스를 제거하여 Red Hat Advanced Cluster Management에서 호스트된 클러스터를 분리 할 수 있습니다.
최상의 결과를 얻으려면 호스트 클러스터를 제거하기 전에 관리형 호스트 클러스터를 분리하십시오.
검색된 클러스터가 분리되면 정책이 검색된 클러스터를 다시 가져오지 못하도록 DiscoveredCluster 리소스에 다음 주석이 추가됩니다.
annotations:
discovery.open-cluster-management.io/previously-auto-imported: "true"
검색된 클러스터를 다시 가져오려면 이 주석을 제거합니다.