검색

2.4. 정책 컨트롤러 고급 구성

download PDF

ManagedClusterAddOn 사용자 정의 리소스를 사용하여 관리 클러스터에서 정책 컨트롤러 구성을 사용자 지정할 수 있습니다. 다음 ManagedClusterAddOns 는 정책 프레임워크, Kubernetes 구성 정책 컨트롤러, 인증서 정책 컨트롤러 및 IAM 정책 컨트롤러를 구성합니다.

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

2.4.1. 거버넌스 프레임워크 동시성 구성

각 관리 클러스터에 대한 거버넌스 프레임워크 동시성을 구성합니다. 기본값 2 를 변경하려면 따옴표 내에서 0이 아닌 정수로 policy-evaluation-concurrency 주석을 설정합니다. 그런 다음 ManagedClusterAddOn 개체 이름의 값을 hub 클러스터의 관리 클러스터 네임스페이스에서 governance-policy-framework 로 설정합니다.

cluster1 이라는 관리 클러스터에서 동시성이 2 로 설정된 다음 YAML 예제를 참조하십시오.

apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: governance-policy-framework
  namespace: cluster1
  annotations:
    policy-evaluation-concurrency: "2"
spec:
  installNamespace: open-cluster-management-agent-addon

client-qpsclient-burst 주석을 설정하려면 ManagedClusterAddOn 리소스를 업데이트하고 매개변수를 정의합니다.

각 초당 대한 쿼리가 30 으로 설정되고 burst가 cluster1 이라는 관리형 클러스터에서 45 로 설정된 다음 YAML 예제를 참조하십시오.

apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: governance-policy-framework
  namespace: cluster1
  annotations:
    client-qps: "30"
    client-burst: "45"
spec:
  installNamespace: open-cluster-management-agent-addon

2.4.2. 구성 정책 컨트롤러의 동시성 구성

각 관리 클러스터에 대해 구성 정책 컨트롤러의 동시성을 구성하여 동시에 평가할 수 있는 구성 정책 수를 변경할 수 있습니다. 기본값 2 를 변경하려면 따옴표 내에서 0이 아닌 정수로 policy-evaluation-concurrency 주석을 설정합니다. 그런 다음 hub 클러스터의 관리 클러스터 네임스페이스에서 ManagedClusterAddOn 오브젝트 이름의 값을 config-policy-controller 로 설정합니다.

참고: Increased concurrency 값은 config-policy-controller Pod, Kubernetes API 서버 및 OpenShift API 서버에서 CPU 및 메모리 사용률을 늘립니다.

cluster1 이라는 관리 클러스터에서 동시성이 5 로 설정된 다음 YAML 예제를 참조하십시오.

apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: config-policy-controller
  namespace: cluster1
  annotations:
    policy-evaluation-concurrency: "5"
spec:
  installNamespace: open-cluster-management-agent-addon

2.4.3. API 서버에 대한 요청 속도 구성

구성 정책 컨트롤러가 각 관리 클러스터에서 수행하는 API 서버에 대한 요청 속도를 구성합니다. 속도가 증가하면 구성 정책 컨트롤러의 응답성이 향상되어 Kubernetes API 서버 및 OpenShift API 서버의 CPU 및 메모리 사용률도 높아집니다. 기본적으로 요청 속도는 policy-evaluation-concurrency 설정으로 확장되며 짧은 기간 동안 더 많은 요청 수를 나타내는 45 burst 값이 있는 QPS(초당 30 쿼리)로 설정됩니다.

client-qpsclient-burst 주석을 따옴표 내에서 0이 아닌 정수로 설정하여 속도 및 버스트를 구성할 수 있습니다. hub 클러스터의 관리 클러스터 네임스페이스에서 ManagedClusterAddOn 오브젝트 이름의 값을 config-policy-controller 로 설정할 수 있습니다.

각 초당 대한 쿼리가 20 으로 설정되고 burst가 cluster1 이라는 관리형 클러스터에서 100 으로 설정된 다음 YAML 예제를 참조하십시오.

apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: config-policy-controller
  namespace: cluster1
  annotations:
    client-qps: "20"
    client-burst: "100"
spec:
  installNamespace: open-cluster-management-agent-addon

2.4.4. 디버그 로그 구성

각 정책 컨트롤러에 대한 디버그 로그를 구성하고 수집할 때 로그 수준을 조정할 수 있습니다.

참고: 디버그 로그 볼륨을 줄이면 로그에서 표시되는 정보가 줄어듭니다.

정책 컨트롤러에서 내보낸 디버그 로그를 줄여 로그에 오류 전용 버그를 표시할 수 있습니다. 디버그 로그를 줄이려면 주석에서 debug 로그 값을 -1 로 설정합니다. 각 값이 무엇을 나타내는지 확인하십시오.

  • -1: 오류 로그만
  • 0: 정보 로그
  • 1: 디버그 로그
  • 2: 상세 디버깅 로그

Kubernetes 구성 컨트롤러의 두 번째 디버깅 정보를 받으려면 값이 2로그 수준 주석을 ManagedClusterAddOn 사용자 정의 리소스에 추가합니다. 기본적으로 로그 수준은 0 으로 설정됩니다. 즉, 정보를 제공하는 메시지가 표시됩니다. 다음 예제를 확인합니다.

apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: config-policy-controller
  namespace: cluster1
  annotations:
    log-level: "2"
spec:
  installNamespace: open-cluster-management-agent-addon

또한 ConfigurationPolicy 리소스의 각 spec.object-template[] 에 대해 매개변수 recordDiffLog 로 설정할 수 있습니다. 관리 클러스터의 오브젝트Definition 과 오브젝트의 차이점은 관리 클러스터의 config-policy-controller Pod에 기록됩니다. 다음 예제를 확인합니다.

recordDiff: Log:이 있는 ConfigurationPolicy 리소스

apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
  name: my-config-policy
spec:
  object-templates:
  - complianceType: musthave
    recordDiff: Log
    objectDefinition:
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: my-configmap
      data:
        fieldToUpdate: "2"

클러스터의 ConfigMap 리소스가 fieldToUpdate: "1" 이면 diff가 다음 정보를 사용하여 config-policy-controller Pod에 표시됩니다.

Logging the diff:
--- default/my-configmap : existing
+++ default/my-configmap : updated
@@ -2,3 +2,3 @@
 data:
-  fieldToUpdate: "1"
+  fieldToUpdate: "2"
 kind: ConfigMap

중요: 보안 오브젝트의 차이점을 기록하지 않도록 합니다. 차이점은 일반 텍스트로 기록됩니다.

2.4.5. 거버넌스 메트릭

정책 프레임워크는 정책 배포 및 규정 준수를 보여주는 지표를 노출합니다. hub 클러스터에서 policy_governance_info 메트릭을 사용하여 추세를 보고 정책 오류를 분석합니다. 메트릭에 대한 개요는 다음 항목을 참조하십시오.

2.4.5.1. metric: policy_governance_info

OpenShift Container Platform 모니터링 구성 요소는 policy_governance_info 메트릭을 수집합니다. 관찰 기능을 활성화하면 구성 요소에서 일부 집계 데이터를 수집합니다.

참고: 관찰 기능을 활성화하면 Grafana 탐색 페이지에서 지표 쿼리를 입력합니다. 정책을 생성할 때 루트 정책을 생성합니다. 프레임워크는 루트 정책, 배치 리소스, PlacementBindings 리소스를 감시하여 전파된 정책을 생성하는 위치에 대한 정보를 확인하여 관리 클러스터에 정책을 배포합니다.

루트 및 전파 정책 둘 다에서 정책을 준수하는 경우 0 메트릭이 기록되고 1이 비준수인 경우 1 이 기록됩니다.

policy_governance_info 메트릭은 다음 레이블을 사용합니다.

  • 유형: 레이블 값은 root 이거나 전파됨 입니다.
  • policy: 연결된 루트 정책의 이름입니다.
  • policy_namespace: 루트 정책이 정의된 허브 클러스터의 네임스페이스입니다.
  • cluster_namespace: 정책이 배포된 클러스터의 네임스페이스입니다.

이러한 라벨과 값을 사용하면 클러스터에서 발생하는 많은 상황을 추적할 수 있는 쿼리를 사용할 수 있습니다.

참고: 메트릭이 필요하지 않고 성능 또는 보안에 대한 우려가 있는 경우 메트릭 컬렉션을 비활성화할 수 있습니다. 전파자 배포에서 DISABLE_REPORT_METRICS 환경 변수를 true 로 설정합니다. observability allowlist에 policy_governance_info 메트릭을 사용자 정의 지표로 추가할 수도 있습니다. 자세한 내용은 사용자 정의 메트릭 추가 를 참조하십시오.

2.4.5.2. metric: config_policies_evaluation_duration_seconds

config_policies_evaluation_duration_seconds 히스토그램은 클러스터에서 평가할 준비가 된 모든 구성 정책을 처리하는 데 걸리는 시간(초)을 추적합니다. 다음 메트릭을 사용하여 히스토그램을 쿼리합니다.

  • config_policies_evaluation_duration_seconds_bucket: 버킷은 누적되고 다음과 같은 가능한 항목이 있는 초를 나타냅니다. 1, 3, 9, 10.5, 15, 30, 60, 90, 120, 180, 300,450, 600 이상.
  • config_policies_evaluation_duration_seconds_count: 모든 이벤트의 수입니다.
  • config_policies_evaluation_duration_seconds_sum: 모든 값의 합계입니다.

config_policies_evaluation_duration_seconds 지표를 사용하여 자주 평가할 필요가 없는 리소스 집약적 정책에 대해 ConfigurationPolicy evaluationInterval 설정을 변경해야 하는지 확인합니다. Kubernetes API 서버에서 리소스 사용률이 높으면 동시성을 늘릴 수도 있습니다. 자세한 내용은 동시성 구성을 참조하십시오.

구성 정책을 평가하는 데 사용되는 시간에 대한 정보를 받으려면 다음 표현식과 유사한 Prometheus 쿼리를 수행하십시오.

rate(config_policies_evaluation_duration_seconds_sum[10m])/rate(config_policies_evaluation_duration_seconds_count[10m])

open-cluster-management-agent-addon 네임스페이스의 관리 클러스터에서 실행되는 config-policy-controller Pod는 메트릭을 계산합니다. config-policy-controller 는 기본적으로 지표를 관찰 가능성으로 보내지 않습니다.

2.4.6. 구성 변경 확인

컨트롤러를 사용하여 새 구성을 적용하면 ManifestApplied 매개변수가 ManagedClusterAddOn 에서 업데이트됩니다. 이러한 조건 타임스탬프는 구성을 올바르게 확인하는 데 도움이 됩니다. 예를 들어 이 명령은 local-clustercert-policy-controller 가 업데이트되었는지 확인할 수 있습니다.

oc get -n local-cluster managedclusteraddon cert-policy-controller | grep -B4 'type: ManifestApplied'

다음 출력이 표시될 수 있습니다.

 - lastTransitionTime: "2023-01-26T15:42:22Z"
    message: manifests of addon are applied successfully
    reason: AddonManifestApplied
    status: "True"
    type: ManifestApplied

2.4.7. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.