1.3. AWS 클러스터에서 검색된 OpenShift Service에 대한 가져오기 자동화


개별 클러스터를 수동으로 가져오지 않고 클러스터 관리를 위해 Red Hat Advanced Cluster Management 정책 시행을 사용하여 AWS 클러스터에서 OpenShift Service 가져오기를 자동화합니다.

필수 액세스: 클러스터 관리자

1.3.1. 사전 요구 사항

  • Red Hat Advanced Cluster Management가 설치되어 있어야 합니다. Red Hat Advanced Cluster Management 설치 및 업그레이드 설명서를 참조하십시오.
  • 정책에 대해 배울 필요가 있습니다. Red Hat Advanced Cluster Management 설명서에서 Governance 소개를 참조하십시오.

1.3.2. 자동 가져오기 정책 생성

다음 정책 및 절차는 AWS 클러스터에서 검색된 모든 OpenShift 서비스를 자동으로 가져오는 방법의 예입니다.

CLI에서 hub 클러스터에 로그인하여 다음 절차를 완료합니다.

  1. 다음 예제를 사용하여 YAML 파일을 생성하고 참조되는 변경 사항을 적용합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-rosa-autoimport
      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: OpenShift Service on AWS discovered clusters can be automatically imported into
    Red Hat Advanced Cluster Management as managed clusters with this policy. You can select and configure those managed clusters so you can import. Configure filters or add an annotation if you do not want all of your OpenShift Service on AWS clusters to be automatically imported.
    spec:
      remediationAction: inform 
    1
    
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: rosa-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: "" 
    2
    
              remediationAction: enforce
              severity: low
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-rosa-autoimport
            spec:
              remediationAction: enforce
              severity: low
              object-templates-raw: |
                {{- /* find the ROSA 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 ROSA and the status is Active */ -}}
                  {{- if and (eq $dc.spec.status "Active")
                             (contains (fromConfigMap "open-cluster-management-global-set" "discovery-config" "rosa-filter") $dc.spec.displayName)
                             (eq $dc.spec.type "ROSA")
                             (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: true
                  {{- end }}
                {{- end }}
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-rosa-managedcluster-status
            spec:
              remediationAction: enforce
              severity: low
              object-templates-raw: |
                {{- /* Use the same DiscoveredCluster list to check ManagedCluster status */ -}}
                {{- 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 ROSA and the status is Active */ -}}
                  {{- if and (eq $dc.spec.status "Active")
                             (contains (fromConfigMap "open-cluster-management-global-set" "discovery-config" "rosa-filter") $dc.spec.displayName)
                             (eq $dc.spec.type "ROSA")
                             (eq $skip "false") }}
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: cluster.open-cluster-management.io/v1
                    kind: ManagedCluster
                    metadata:
                      name: {{ $dc.spec.displayName }}
                      namespace: {{ $dc.spec.displayName }}
                    status:
                      conditions:
                        - type: ManagedClusterConditionAvailable
                          status: "True"
                  {{- end }}
                {{- end }}
    Copy to Clipboard Toggle word wrap
    1
    자동 가져오기를 활성화하려면 spec.remediationAction 을 변경하여 다음을 적용합니다.
    2
    선택 사항: 여기에서 값을 지정하여 검색된 클러스터 이름을 기반으로 하는 AWS 클러스터에서 일치하는 OpenShift Service의 하위 집합을 선택합니다. rosa-filter 는 기본적으로 값이 없으므로 필터는 하위 집합 값 없이 클러스터 이름을 제한하지 않습니다.
  2. oc apply -f <filename>.yaml -n <namespace >를 실행하여 파일을 적용합니다.

1.3.3. 배치 정의 생성

정책 배포를 위해 관리 클러스터를 지정하는 배치 정의를 생성해야 합니다.

  1. 관리되는 허브 클러스터인 local-cluster 만 선택하는 배치 정의를 생성합니다. 다음 YAML 샘플을 사용합니다.

    apiVersion: cluster.open-cluster-management.io/v1beta1
    kind: Placement
    metadata:
      name: placement-openshift-plus-hub
    spec:
      predicates:
      - requiredClusterSelector:
          labelSelector:
            matchExpressions:
            - key: name
          	    operator: In
          	    values:
          	    - local-cluster
    Copy to Clipboard Toggle word wrap
  2. oc apply -f placement.yaml -n <namespace > 실행합니다. 여기서 namespace는 이전에 생성한 정책에 사용한 네임스페이스와 일치합니다.

1.3.4. 배치 정의에 가져오기 정책 바인딩

정책과 배치를 생성한 후 두 리소스를 연결해야 합니다.

  1. PlacementBinding 을 사용하여 리소스를 연결합니다. placementRef 가 사용자가 생성한 배치를 참조하고 주체 가 생성한 정책을 참조하는 다음 예제를 참조하십시오.

    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-rosa-autoimport
    placementRef:
      apiGroup: cluster.open-cluster-management.io
      kind: Placement
      name: placement-policy-rosa-autoimport
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: policy-rosa-autoimport
    Copy to Clipboard Toggle word wrap
  2. 확인하려면 다음 명령을 실행합니다.

    oc get policies.policy.open-cluster-management.io policy-rosa-autoimport -n <namespace>
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동