1장. 거버넌스


기업은 프라이빗, 멀티 및 하이브리드 클라우드에서 호스팅되는 워크로드에 대한 소프트웨어 엔지니어링, 보안, 보안 및 규제 준수에 대한 내부 표준을 충족해야 합니다. Red Hat Advanced Cluster Management for Kubernetes 거버넌스는 기업이 자체 보안 정책을 도입할 수 있는 확장 가능한 정책 프레임워크를 제공합니다.

Red Hat Advanced Cluster Management 거버넌스 프레임워크의 관련 주제를 계속 읽으십시오.

1.1. 정책 컨트롤러

정책 컨트롤러는 클러스터가 정책과 호환되는지 여부를 모니터링하고 보고합니다. 지원되는 정책 템플릿을 사용하여 이러한 컨트롤러에서 관리하는 정책을 적용하여 Kubernetes 정책 프레임워크용 Red Hat Advanced Cluster Management를 사용하십시오. 정책 컨트롤러는 Kubernetes 사용자 정의 리소스 정의 인스턴스를 관리합니다.

정책 컨트롤러는 정책 위반을 확인하고 컨트롤러가 시행 기능을 지원하는 경우 클러스터 상태를 준수하도록 할 수 있습니다. Kubernetes 정책 컨트롤러에 대한 다음 Red Hat Advanced Cluster Management에 대한 자세한 내용은 다음 주제를 참조하십시오.

중요: 구성 정책 컨트롤러 정책만 적용 기능을 지원합니다. 정책 컨트롤러에서 적용 기능을 지원하지 않는 정책을 수동으로 수정해야 합니다.

1.1.1. Kubernetes 구성 정책 컨트롤러

구성 정책 컨트롤러를 사용하여 Kubernetes 리소스를 구성하고 클러스터에 보안 정책을 적용합니다. 구성 정책 컨트롤러는 로컬 Kubernetes API 서버와 통신하므로 클러스터에 있는 구성 목록을 가져올 수 있습니다.

설치하는 동안 구성 정책 컨트롤러가 관리 클러스터에 생성됩니다. 구성 정책은 허브 클러스터에 있는 정책의 policy-templates 필드에 제공되며, 거버넌스 프레임워크를 통해 선택한 관리 클러스터에 전파됩니다.

구성 정책 컨트롤러에 대한 remediationAction InformOnly 로 설정된 경우 상위 정책에서 상위 정책의 수정 정책이 적용되도록 설정되어 있어도 상위 정책에서 구성 정책을 적용하지 않습니다.

정책에 추가하려는 기존 Kubernetes 매니페스트가 있는 경우 정책 생성기는 이 작업을 수행하는 데 유용한 도구입니다.

1.1.1.1. 구성 정책 YAML 구조

oc explain --api-version=policy.open-cluster-management.io/v1 ConfigurationPolicy.<field-path> 명령을 실행하여 관리 클러스터에서 필드에 대한 설명을 찾을 수 있습니다. & lt;field-path >를 필요한 필드의 경로로 바꿉니다.

apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
  name: policy-config
spec:
  namespaceSelector:
    include: ["default"]
    exclude: []
    matchExpressions: []
    matchLabels: {}
  remediationAction: inform 1
  customMessage:
    compliant: {}
    noncompliant: {}
  severity: low
  evaluationInterval:
    compliant: ""
    noncompliant: ""
  object-templates-raw: ""
  object-templates: 2
   - complianceType: musthave
     metadataComplianceType:
     recordDiff: ""
     recreateOption: ""
     objectSelector:
       matchLabels: {}
       matchExpressions: []
     objectDefinition:
       apiVersion: v1
       kind: Pod
       metadata:
         name: pod
       spec:
         containers:
          - image: pod-image
            name: pod-name
            ports:
             - containerPort: 80
   - complianceType: mustonlyhave
     objectDefinition:
       apiVersion: v1
       kind: ConfigMap
       metadata:
         name: myconfig
         namespace: default
         data:
           testData: hello
1
구성 정책의 수정 작업이 적용 되도록 설정된 경우 컨트롤러는 지정된 구성을 대상 관리 클러스터에 적용합니다. 그러나 이름이 없는 오브젝트를 지정하는 구성 정책은 objectSelector 도 구성된 경우를 제외하고 이를 알리 도록 설정할 수 있습니다.
2
Kubernetes 오브젝트는 구성 정책의 object-templates 배열에 정의되어 있으며, 여기서 구성 정책 컨트롤러의 필드가 관리형 클러스터의 오브젝트와 비교됩니다. 구성 정책 내에서 템플릿 값을 사용할 수도 있습니다. 고급 사용 사례의 경우 object-templates-raw 에 문자열을 지정하여 원하는 object-templates 를 생성합니다. 자세한 내용은 템플릿 처리를 참조하십시오.

1.1.1.2. 구성 정책 YAML 테이블

표 1.1. 매개변수 테이블
필드선택 사항 또는 필수설명

apiVersion

필수 항목

값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목

값을 ConfigurationPolicy 로 설정하여 정책 유형을 나타냅니다.

metadata.name

필수 항목

정책의 이름입니다.

spec.namespaceSelector

네임스페이스가 지정되지 않은 네임스페이스된 오브젝트에 필요합니다.

관리 클러스터에서 오브젝트가 적용되는 네임스페이스를 결정합니다. includeexclude 매개 변수는 파일 경로 표현식을 허용하여 이름별로 네임스페이스를 포함 및 제외합니다. matchExpressionsmatchLabels 매개변수는 레이블별로 포함할 네임스페이스를 지정합니다. Kubernetes 라벨 및 선택기 설명서를 참조하십시오. 결과 목록은 모든 매개변수의 결과 교집합을 사용하여 컴파일됩니다.

spec.remediationAction

필수 항목

정책이 준수하지 않을 때 수행할 작업을 지정합니다. 다음 매개변수 값을 사용합니다. ,InformOnly 또는 enforce.

spec.customMessage

선택 사항

현재 규정 준수를 기반으로 구성 정책에서 전송한 규정 준수 메시지를 구성합니다. 각 메시지 구성은 Go 템플릿을 포함할 수 있는 문자열입니다. 템플릿에서 .DefaultMessage.Policy 컨텍스트 변수를 사용할 수 있습니다. .DefaultMessage 매개변수를 사용하여 기본 메시지에 액세스할 수 있습니다. .Policy 컨텍스트 변수에는 상태를 포함하여 현재 정책 오브젝트가 포함되어 있습니다. 예를 들어 .Policy.status.relatedObjects[*].object 필드를 지정하여 각 관련 오브젝트의 상태에 액세스할 수 있습니다. watch 이외의 evaluationInterval 필드 값을 설정하면 관련 오브젝트의 종류, 이름 및 네임스페이스만 사용할 수 있습니다.

spec.customMessage.compliant

선택 사항

호환되는 구성 정책에 맞게 사용자 지정 메시지를 구성합니다. Go 템플릿과 UTF-8 인코딩 문자(emoji 및 외래 문자를 포함한 UTF-8 인코딩 문자는 지원되는 값입니다.

spec.customMessage.noncompliant

선택 사항

호환되지 않는 구성 정책에 맞게 사용자 지정 메시지를 구성합니다. Go 템플릿과 UTF-8 인코딩 문자(emoji 및 외래 문자를 포함한 UTF-8 인코딩 문자는 지원되는 값입니다.

spec.severity

필수 항목

정책이 준수하지 않을 때 심각도를 지정합니다. 다음과 같은 매개변수 값( 낮은,중간,높음 또는 중요 )을 사용합니다.

spec.evaluationInterval

선택 사항

특정 규정 준수 상태에 있을 때 평가할 정책의 빈도를 지정합니다. 매개변수 준수비준 수를 사용합니다. 규정 준수비준수 매개변수의 기본값은 Kubernetes API 서버를 폴링하는 대신 Kubernetes API 감시를 활용하는 것입니다.

관리 클러스터에 리소스가 부족하면 Kubernetes API 및 정책 컨트롤러에서 CPU 및 메모리 사용량을 줄이기 위해 평가 간격을 긴 폴링 간격으로 설정할 수 있습니다. 이는 기간 단위의 형식입니다. 예를 들어 1h25m3s 는 1시간, 25분, 3초를 나타냅니다. 또한 특정 규정 준수 상태에 있는 정책을 평가하지 않도록 never 로 설정할 수도 있습니다.

spec.evaluationInterval.compliant

선택 사항

규정 준수 정책의 평가 빈도를 지정합니다. 이전 폴링 동작을 활성화하려면 이 매개 변수를 10s 로 설정합니다.

spec.evaluationInterval.noncompliant

선택 사항

준수하지 않는 정책의 평가 빈도를 지정합니다. 이전 폴링 동작을 활성화하려면 이 매개 변수를 10s 로 설정합니다.

spec.object-templates

선택 사항

컨트롤러가 관리되는 클러스터의 오브젝트와 비교할 수 있는 Kubernetes 오브젝트의 배열(완전히 정의되거나 필드 서브 세트 포함)입니다. 참고: spec.object-templatesspec.object-templates-raw 는 선택 사항으로 나열되지만 두 매개변수 필드 중 하나만 설정해야 합니다.

spec.object-templates-raw

선택 사항

원시 YAML 문자열로 오브젝트 템플릿을 설정하는 데 사용됩니다. 오브젝트 템플릿에 대한 조건을 지정합니다. 여기서 if-else 문 및 range 함수와 같은 고급 함수가 지원되는 값입니다. 예를 들어 object-templates 정의에서 중복을 방지하기 위해 다음 값을 추가합니다.

{{- if eq .metadata.name "policy-grc-your-meta-data-name" }}
                  replicas: 2
 {{- else }}
                  replicas: 1
 {{- end }}

참고: spec.object-templatesspec.object-templates-raw 는 선택 사항으로 나열되지만 두 매개변수 필드 중 하나만 설정해야 합니다.

spec.object-templates[].complianceType

필수 항목

이 매개변수를 사용하여 관리 클러스터에서 Kubernetes 오브젝트의 원하는 상태를 정의합니다. 다음 동사 중 하나를 매개변수 값으로 사용합니다.

  • mustonlyhave: objectDefinition 에 정의된 정확한 필드 및 값을 사용하여 오브젝트가 있어야 함을 나타냅니다.
  • musthave: objectDefinition 에 지정된 것과 동일한 필드를 사용하여 오브젝트가 있어야 함을 나타냅니다. object-template 에 지정되지 않은 오브젝트의 기존 필드는 무시됩니다. 일반적으로 배열 값이 추가됩니다. 패치할 배열에 대한 예외는 항목에 기존 항목과 일치하는 값이 있는 name 키가 포함된 경우입니다. 배열을 교체하려는 경우 mustonlyhave compliance 유형을 사용하여 완전히 정의된 objectDefinition 을 사용합니다.
  • mustnothave: objectDefinition 에 지정된 것과 동일한 필드를 가진 오브젝트가 존재할 수 없음을 나타냅니다.

spec.object-templates[].metadataComplianceType

선택 사항

매니페스트의 metadata 섹션을 클러스터의 오브젝트("musthave", "mustonlyhave")와 비교할 때 spec.object-templates[].complianceType 을 재정의합니다. 메타데이터의 complianceType 을 재정의하지 않도록 기본값은 설정되지 않습니다.

spec.object-templates[].recordDiff

선택 사항

이 매개변수를 사용하여 클러스터의 오브젝트와 정책의 오브젝트Definition 간의 차이점을 표시할지 여부와 위치를 지정합니다. 지원되는 옵션은 다음과 같습니다.

  • ConfigurationPolicy 상태에 차이를 저장하려면 InStatus 로 설정합니다.
  • 컨트롤러 로그의 차이점을 기록하려면 Log 로 설정합니다.
  • 차이를 기록하지 않으려면 None 으로 설정합니다.

기본적으로 이 매개변수는 컨트롤러에서 차이점에서 중요한 데이터를 탐지하지 않는 경우 InStatus 로 설정됩니다. 그렇지 않으면 기본값은 None 입니다. 민감한 데이터가 감지되면 ConfigurationPolicy 상태에 recordDiff 를 설정하여 차이를 확인하는 메시지가 표시됩니다.

spec.object-templates[].recreateOption

선택 사항

업데이트가 필요한 경우 오브젝트를 삭제하고 다시 생성할 시기를 설명합니다. 오브젝트를 IfRequired 로 설정하면 변경 불가능한 필드를 업데이트할 때 정책이 오브젝트를 다시 생성합니다. 매개변수를 Always 로 설정하면 정책은 업데이트 시 오브젝트를 다시 생성합니다. re Action을 설정하여 알릴 때 매개변수 값 recreateOption 은 오브젝트에 영향을 미치지 않습니다. IfRequired 값은 시험 실행 업데이트 지원없이 클러스터에 영향을 미치지 않습니다. 기본값은 None 입니다.

spec.object-templates[].objectSelector

선택 사항

ObjectSelector 는 이름이 지정되지 않은 오브젝트 Definition 에 정의된 오브젝트 이름을 선택하는 라벨 선택기를 정의합니다. matchExpressionsmatchLabels 매개변수는 레이블별로 포함할 오브젝트를 지정합니다. 오브젝트 Definition에 정의된 오브젝트 이름이 있는 경우 object Selector 는 무시됩니다. 자세한 내용은 Kubernetes 라벨 및 선택기를 참조하십시오.

spec.object-templates[].objectDefinition

필수 항목

컨트롤러에서 관리 클러스터의 오브젝트와 비교할 수 있는 Kubernetes 오브젝트(완전히 정의되거나 하위 집합 포함)입니다.

spec.pruneObjectBehavior

선택 사항

정책을 관리 클러스터에서 제거할 때 정책과 관련된 리소스를 정리할지 여부를 결정합니다.

1.1.1.3. 추가 리소스

자세한 내용은 다음 항목을 참조하십시오.

1.1.2. 인증서 정책 컨트롤러

인증서 정책 컨트롤러를 사용하여 만료 시간(시간)에 가까운 인증서를 검색하거나 지정된 패턴과 일치하지 않는 DNS 이름을 포함할 수 있습니다. 거버넌스 프레임워크를 사용하여 선택한 관리 클러스터에 전파되는 허브 클러스터의 policy-templates 필드에 인증서 정책을 추가할 수 있습니다. hub 클러스터 정책에 대한 자세한 내용은 Hub 클러스터 정책 문서를 참조하십시오.

컨트롤러 정책에서 다음 매개변수를 업데이트하여 인증서 정책 컨트롤러를 구성하고 사용자 지정합니다.

  • minimumDuration
  • minimumCADuration
  • 최대 기간
  • maximumCADuration
  • allowedSANPattern
  • disallowedSANPattern

다음 시나리오 중 하나로 인해 정책을 준수하지 않을 수 있습니다.

  • 인증서가 최소 기간 미만으로 만료되거나 최대 시간이 초과되는 경우입니다.
  • DNS 이름이 지정된 패턴과 일치하지 않는 경우

인증서 정책 컨트롤러가 관리 클러스터에 생성됩니다. 컨트롤러는 로컬 Kubernetes API 서버와 통신하여 인증서가 포함된 보안 목록을 가져오고 모든 비호환 인증서를 결정합니다.

인증서 정책 컨트롤러는 적용 기능을 지원하지 않습니다.

참고: 인증서 정책 컨트롤러는 tls.crt 키에서만 시크릿에서 인증서를 자동으로 찾습니다. 보안이 다른 키에 저장된 경우 키로 설정된 certificate_key_name 이라는 레이블을 추가하여 인증서 정책 컨트롤러에서 다른 키를 찾도록 알립니다. 예를 들어 보안에 sensor-cert.pem 이라는 키에 저장된 인증서가 포함된 경우 secret: certificate_key_name: sensor-cert.pem 에 다음 라벨을 추가합니다.

1.1.2.1. 인증서 정책 컨트롤러 YAML 구조

인증서 정책의 다음 예제를 보고 YAML 테이블의 요소를 검토합니다.

apiVersion: policy.open-cluster-management.io/v1
kind: CertificatePolicy
metadata:
  name: certificate-policy-example
spec:
  namespaceSelector:
    include: ["default"]
    exclude: []
    matchExpressions: []
    matchLabels: {}
  labelSelector:
    myLabelKey: myLabelValue
  remediationAction:
  severity:
  minimumDuration:
  minimumCADuration:
  maximumDuration:
  maximumCADuration:
  allowedSANPattern:
  disallowedSANPattern:
1.1.2.1.1. 인증서 정책 컨트롤러 YAML 테이블
표 1.2. 매개변수 테이블
필드선택 사항 또는 필수설명

apiVersion

필수 항목

값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목

값을 CertificatePolicy 로 설정하여 정책 유형을 나타냅니다.

metadata.name

필수 항목

정책을 식별하는 이름입니다.

metadata.labels

선택 사항

인증서 정책에서 category=system-and-information-integrity 레이블은 정책을 분류하고 인증서 정책을 쿼리할 수 있습니다. 인증서 정책에 category 키에 다른 값이 있는 경우 인증서 컨트롤러에서 값을 덮어씁니다.

spec.namespaceSelector

필수 항목

관리 클러스터에서 보안이 모니터링되는 네임스페이스를 결정합니다. includeexclude 매개 변수는 파일 경로 표현식을 허용하여 이름별로 네임스페이스를 포함 및 제외합니다. matchExpressionsmatchLabels 매개변수는 라벨에 포함할 네임스페이스를 지정합니다. Kubernetes 라벨 및 선택기 설명서를 참조하십시오. 결과 목록은 모든 매개변수의 결과 교집합을 사용하여 컴파일됩니다.

참고: 인증서 정책 컨트롤러의 namespaceSelector 가 네임스페이스와 일치하지 않으면 정책을 준수하는 것으로 간주됩니다.

spec.labelSelector

선택 사항

오브젝트의 특성 식별을 지정합니다. Kubernetes 라벨 및 선택기 설명서를 참조하십시오.

spec.remediationAction

필수 항목

정책 수정을 지정합니다. 매개 변수 값을 설정하여 알립니다. 인증서 정책 컨트롤러는 정보 기능만 지원합니다.

spec.severity

선택 사항

정책이 준수하지 않는 경우 심각도에 대해 사용자에게 알립니다. 다음과 같은 매개변수 값( 낮은,중간,높음 또는 중요 )을 사용합니다.

spec.minimumDuration

필수 항목

값을 지정하지 않으면 기본값은 100h 입니다. 이 매개변수는 인증서가 비준수로 간주되기 전에 가장 작은 기간(시간)을 지정합니다. 매개변수 값은 Golang의 시간 기간 형식을 사용합니다. 자세한 내용은 Golang Parse Duration 을 참조하십시오.

spec.minimumCADuration

선택 사항

다른 인증서와 다른 값으로 만료될 수 있는 서명 인증서를 식별하도록 값을 설정합니다. 매개변수 값을 지정하지 않으면 CA 인증서 expiration은 minimumDuration 에 사용된 값입니다. 자세한 내용은 Golang Parse Duration 을 참조하십시오.

spec.maximumDuration

선택 사항

원하는 제한을 초과하는 기간으로 생성된 인증서를 식별하도록 값을 설정합니다. 매개변수는 Golang의 시간 기간 형식을 사용합니다. 자세한 내용은 Golang Parse Duration 을 참조하십시오.

spec.maximumCADuration

선택 사항

정의된 제한을 초과하는 기간으로 생성된 서명 인증서를 식별하도록 값을 설정합니다. 매개변수는 Golang의 시간 기간 형식을 사용합니다. 자세한 내용은 Golang Parse Duration 을 참조하십시오.

spec.allowedSANPattern

선택 사항

인증서에 정의된 모든 SAN 항목과 일치해야 하는 정규식입니다. 이 매개변수는 패턴에 대해 DNS 이름을 확인합니다. 자세한 내용은 Golang 정규식 구문을 참조하십시오.

spec.disallowedSANPattern

선택 사항

인증서에 정의한 SAN 항목과 일치하지 않아야 하는 정규식입니다. 이 매개변수는 패턴에 대해 DNS 이름을 확인합니다.

참고: 와일드카드 인증서를 감지하려면 다음 SAN 패턴을 사용하십시오. disallowedSANPattern: "[\\*]"

자세한 내용은 Golang 정규식 구문을 참조하십시오.

1.1.2.2. 인증서 정책 샘플

허브 클러스터에서 인증서 정책 컨트롤러가 생성되면 관리 클러스터에 복제 정책이 생성됩니다.

1.1.2.3. 추가 리소스

1.1.3. 정책 세트 컨트롤러

정책 세트 컨트롤러는 동일한 네임스페이스에 정의된 정책에 대한 정책 상태 범위를 집계합니다. 동일한 네임스페이스에 있는 정책을 그룹화할 정책 세트(PolicySet)를 생성합니다. PolicySet의 모든 정책은 PolicySet 및 배치를 바인딩하는 Placement Binding 을 생성하여 선택한 클러스터에 함께 배치됩니다. 정책 세트는 hub 클러스터에 배포됩니다.

또한 정책이 여러 정책 세트의 일부인 경우 기존 및 새 배치 리소스는 정책에 남아 있습니다. 사용자가 정책 세트에서 정책을 제거하면 정책 세트에서 선택한 클러스터에는 정책이 적용되지 않지만 배치는 그대로 유지됩니다. 정책 세트 컨트롤러는 정책 세트 배치를 포함하는 클러스터의 위반만 확인합니다.

참고:

  • Red Hat Advanced Cluster Management 샘플 정책 세트는 클러스터 배치를 사용합니다. 클러스터 배치를 사용하는 경우 정책이 포함된 네임스페이스를 관리 클러스터 세트에 바인딩합니다. 클러스터 배치 사용에 대한 자세한 내용은 클러스터에 정책 배포를 참조하십시오.
  • 배치 리소스를 사용하려면 ManagedClusterSet 리소스를 ManagedClusterSetBinding 리소스를 사용하여 배치 리소스의 네임스페이스에 바인딩해야 합니다. 자세한 내용은 Creating a ManagedClusterSetBinding 리소스 를 참조하십시오.

다음 섹션에서 정책 세트 구조에 대한 자세한 내용을 알아보십시오.

1.1.3.1. 정책 세트 YAML 구조

정책 세트는 다음 YAML 파일과 유사할 수 있습니다.

apiVersion: policy.open-cluster-management.io/v1beta1
kind: PolicySet
metadata:
  name: demo-policyset
spec:
  policies:
  - policy-demo

---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: demo-policyset-pb
placementRef:
  apiGroup: cluster.open-cluster-management.io
  kind: Placement
  name: demo-policyset-pr
subjects:
- apiGroup: policy.open-cluster-management.io
  kind: PolicySet
  name: demo-policyset
---
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
  name: demo-policyset-pr
spec:
  predicates:
  - requiredClusterSelector:
      labelSelector:
        matchExpressions:
          - key: name
            operator: In
            values:
              - local-cluster
    tolerations:
        - key: cluster.open-cluster-management.io/unavailable
          operator: Exists
        - key: cluster.open-cluster-management.io/unreachable
          operator: Exists

1.1.3.2. 정책 세트 테이블

설명을 위해 다음 매개변수 표를 확인하십시오.

표 1.3. 매개변수 테이블
필드선택 사항 또는 필수설명

apiVersion

필수 항목

값을 policy.open-cluster-management.io/v1beta1 로 설정합니다.

kind

필수 항목

값을 PolicySet 으로 설정하여 정책 유형을 나타냅니다.

metadata.name

필수 항목

정책 리소스를 식별하는 이름입니다.

spec

필수 항목

정책에 대한 구성 세부 정보를 추가합니다.

spec.policies

선택 사항

정책 세트에서 함께 그룹화할 정책 목록입니다.

1.1.3.3. 정책 세트 샘플

apiVersion: policy.open-cluster-management.io/v1beta1
kind: PolicySet
metadata:
  name: pci
  namespace: default
spec:
  description: Policies for PCI compliance
  policies:
  - policy-pod
  - policy-namespace
status:
  compliant: NonCompliant
  placement:
  - placementBinding: binding1
    placement: placement1
    policySet: policyset-ps

1.1.3.4. 추가 리소스

1.1.4. Operator 정책 컨트롤러

Operator 정책 컨트롤러를 사용하면 클러스터 전체에서 Operator Lifecycle Manager Operator를 모니터링하고 설치할 수 있습니다. Operator 정책 컨트롤러를 사용하여 Operator의 다양한 부분을 모니터링하고 Operator에 대한 업데이트를 자동으로 처리하는 방법을 지정합니다.

또한 거버넌스 프레임워크를 사용하고 허브 클러스터의 정책 -templates 필드에 정책을 추가하여 운영자 정책을 관리 클러스터에 배포할 수도 있습니다.

operatorGroup 및 operator 정책의 서브스크립션 필드 내에서 템플릿 값을 사용할 수도 있습니다. 자세한 내용은 템플릿 처리를 참조하십시오.

1.1.4.1. 사전 요구 사항

  • Operator Lifecycle Manager는 관리 클러스터에서 사용할 수 있어야 합니다. 이는 Red Hat OpenShift Container Platform에서 기본적으로 활성화되어 있습니다.
  • 필수 액세스: 클러스터 관리자

1.1.4.2. Operator 정책 YAML 테이블

필드선택 사항 또는 필수설명

apiVersion

필수 항목

값을 policy.open-cluster-management.io/v1beta1 로 설정합니다.

kind

필수 항목

값을 OperatorPolicy 로 설정하여 정책 유형을 나타냅니다.

metadata.name

필수 항목

정책 리소스를 식별하는 이름입니다.

spec.remediationAction

필수 항목

Operator 정책에 대한 remediationAction적용 되도록 설정된 경우 컨트롤러는 대상 관리 클러스터에 리소스를 생성하여 Operator를 설치하고 정책에 지정된 버전을 기반으로 업데이트를 승인합니다. + remediationAction 이 설정된 경우 컨트롤러는 업그레이드를 사용할 수 있는 경우를 포함하여 Operator의 상태만 보고합니다.

spec.operatorGroup

선택 사항

기본적으로 operatorGroup 필드가 지정되지 않은 경우 컨트롤러는 지원되는 경우 서브스크립션과 동일한 네임스페이스에 AllNamespaces 유형 OperatorGroup을 생성합니다. 이 리소스는 Operator 정책 컨트롤러에서 생성합니다.

spec.complianceType

필수 항목

클러스터에서 Operator의 원하는 상태를 지정합니다. musthave 로 설정하면 Operator가 발견되면 정책을 준수합니다. mustnothave 로 설정하면 Operator를 찾을 수 없는 경우 정책을 준수합니다.

spec.removalBehavior

선택 사항

complianceType: mustnothave 를 사용하여 OperatorPolicy 리소스를 적용할 때 유지 또는 제거해야 하는 리소스 유형을 결정합니다. complianceTypemusthave 로 설정하면 효과가 없습니다. - operatorGroupsKeep 또는 DeleteIfUnused 로 설정할 수 있습니다. 기본값은 DeleteIfUnusued 이며 다른 Operator에서 사용하지 않는 OperatorGroup 리소스만 제거합니다. - 서브스크립션Keep 또는 Delete 로 설정할 수 있습니다. 기본값은 Delete 입니다. - clusterServiceVersionsKeep 또는 Delete 로 설정할 수 있습니다. 기본값은 Delete. - customResourceDefinitionsKeep 또는 Delete 로 설정할 수 있습니다. 기본값은 Keep 입니다. 이 값을 Delete 로 설정하면 관리 클러스터의 CustomResourceDefintion 리소스가 제거되어 데이터가 손실될 수 있습니다.

spec.subscription

필수 항목

운영자 서브스크립션을 생성할 구성을 정의합니다. 다음 필드에 정보를 추가하여 Operator 서브스크립션을 생성합니다. 항목이 없는 경우 기본 옵션은 몇 가지 항목에 대해 선택됩니다.

  • channel: 지정하지 않으면 Operator 카탈로그에서 기본 채널이 선택됩니다. 기본값은 다른 OpenShift Container Platform 버전에서 다를 수 있습니다.
  • name: Operator의 패키지 이름을 지정합니다.
  • namespace: 지정하지 않으면 OpenShift Container Platform 관리 클러스터에 사용되는 기본 네임스페이스는 openshift-operators 입니다.
  • Source: 지정하지 않으면 Operator가 포함된 카탈로그가 선택됩니다.
  • sourceNamespace: 지정하지 않으면 Operator가 포함된 카탈로그의 네임스페이스가 선택됩니다.

    참고: upgradeApproval 에 대한 값을 정의하면 정책을 준수하지 않습니다.

spec.complianceConfig

선택 사항

이 매개변수를 사용하여 Operator와 연결된 특정 시나리오에 대한 규정 준수 동작을 정의합니다. 지원되는 값은 CompliantNonCompliant 인 각 옵션을 개별적으로 설정할 수 있습니다.

  • catalogSourceUnhealthy: Operator의 카탈로그 소스가 비정상인 경우 규정 준수를 정의합니다. 기본값은 가능한 업그레이드에만 영향을 미치므로 Compliant 입니다.
  • deploymentsUnavailable: Operator의 하나 이상의 배포를 완전히 사용할 수 없는 경우 규정 준수를 정의합니다. 기본값은 Operator가 제공하는 서비스의 가용성을 반영하므로 NonCompliant 입니다.
  • upgradesAvailable: Operator에 사용할 수 있는 업그레이드가 있는 경우 규정 준수를 정의합니다. 기존 Operator 설치가 올바르게 실행될 수 있으므로 기본값은 Compliant 입니다.
  • deprecationsPresent: 정책 준수가 사용 중단의 영향을 받음을 지정합니다. 예를 들어 기본값은 Compliant 이지만 사용 중단Present=NonCompliant 구성에서 사용 중단을 감지하는 경우 정책 준수 상태가 NonCompliant 로 설정됩니다.

spec.upgradeApproval

필수 항목

upgradeApproval 필드가 자동으로 설정된 경우 정책이 적용 되도록 설정된 경우 클러스터의 버전 업그레이드가 정책에서 승인됩니다. 이 필드를 None 으로 설정하면 정책이 적용 되도록 설정된 경우 특정 Operator로 버전 업그레이드가 승인되지 않습니다.

spec.versions

선택 사항

호환되는 Operator 버전을 선언합니다. versions 매개변수는 정보 모드에 있을 때 설치된 ClusterServiceVersion 이름과 적용 모드에서 승인되는 InstallPlan 을 지정하는 템플릿 가능한 문자열 목록입니다. 필드가 비어 있으면 문자열이 무시되고 모든 ClusterServiceVersion 이름이 승인됩니다. 기본값은 비어 있습니다.

1.1.4.3. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.