5.3. Compliance Operator 설치

Compliance Operator를 사용하려면 먼저 클러스터에 배포되었는지 확인해야 합니다.

중요

Compliance Operator는 OpenShift Dedicated, Red Hat OpenShift Service on AWS, Microsoft Azure Red Hat OpenShift와 같은 관리 플랫폼에서 잘못된 결과를 보고할 수 있습니다. 자세한 내용은 Red Hat Knowledgebase 솔루션 #6983418 에서 참조하십시오.

5.3.1. 웹 콘솔을 통해 Compliance Operator 설치

사전 요구 사항

  • admin 권한이 있어야 합니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub로 이동합니다.
  2. Compliance Operator를 검색한 다음 설치를 클릭합니다.
  3. 기본 설치 모드네임스페이스를 계속 선택하여 Operator가 openshift-compliance 네임스페이스에 설치되도록 합니다.
  4. 설치를 클릭합니다.

검증

설치에 성공했는지 확인하려면 다음을 수행하십시오.

  1. Operator설치된 Operator 페이지로 이동합니다.
  2. Compliance Operator가 openshift-compliance 네임스페이스에 설치되어 있고 해당 상태는 Succeeded인지 확인합니다.

Operator가 성공적으로 설치되지 않은 경우 다음을 수행하십시오.

  1. Operator설치된 Operator 페이지로 이동하여 Status 열에 오류 또는 실패가 있는지 점검합니다.
  2. 워크로드Pod 페이지로 이동하고 openshift-compliance 프로젝트에서 문제를 보고하는 Pod의 로그를 확인합니다.
중요

restricted SCC(보안 컨텍스트 제약 조건)가 system:authenticated 그룹을 포함하도록 수정되었거나 requiredDropCapabilities 를 추가한 경우 권한 문제로 인해 Compliance Operator가 제대로 작동하지 않을 수 있습니다.

Compliance Operator 스캐너 Pod 서비스 계정에 대한 사용자 정의 SCC를 생성할 수 있습니다. 자세한 내용은 Compliance Operator의 사용자 정의 SCC 생성을 참조하십시오.

5.3.2. CLI를 사용하여 Compliance Operator 설치

사전 요구 사항

  • admin 권한이 있어야 합니다.

절차

  1. Namespace 오브젝트를 정의합니다.

    예: namespace-object.yaml

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
        pod-security.kubernetes.io/enforce: privileged 1
      name: openshift-compliance

    1
    OpenShift Container Platform 4.13에서는 네임스페이스 수준에서 Pod 보안 라벨을 privileged 로 설정해야 합니다.
  2. Namespace 오브젝트를 생성합니다.

    $ oc create -f namespace-object.yaml
  3. OperatorGroup 오브젝트를 정의합니다.

    operator-group-object.yaml예제

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: compliance-operator
      namespace: openshift-compliance
    spec:
      targetNamespaces:
      - openshift-compliance

  4. OperatorGroup 개체를 생성합니다.

    $ oc create -f operator-group-object.yaml
  5. Subscription 오브젝트를 정의합니다.

    예: subscription-object.yaml

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: compliance-operator-sub
      namespace: openshift-compliance
    spec:
      channel: "stable"
      installPlanApproval: Automatic
      name: compliance-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace

  6. Subscription 오브젝트를 생성합니다.

    $ oc create -f subscription-object.yaml
참고

글로벌 스케줄러 기능을 설정하고 defaultNodeSelector를 활성화하는 경우 네임스페이스를 수동으로 생성하고 openshift-compliance 네임스페이스의 주석 또는 Compliance Operator가 설치된 네임스페이스를 openshift.io/node-selector: “”로 업데이트해야 합니다. 이렇게 하면 기본 노드 선택기가 제거되고 배포 실패가 발생하지 않습니다.

검증

  1. CSV 파일을 검사하여 설치에 성공했는지 확인합니다.

    $ oc get csv -n openshift-compliance
  2. Compliance Operator가 실행 중인지 확인합니다.

    $ oc get deploy -n openshift-compliance
중요

restricted SCC(보안 컨텍스트 제약 조건)가 system:authenticated 그룹을 포함하도록 수정되었거나 requiredDropCapabilities 를 추가한 경우 권한 문제로 인해 Compliance Operator가 제대로 작동하지 않을 수 있습니다.

Compliance Operator 스캐너 Pod 서비스 계정에 대한 사용자 정의 SCC를 생성할 수 있습니다. 자세한 내용은 Compliance Operator의 사용자 정의 SCC 생성을 참조하십시오.

5.3.3. 호스팅된 컨트롤 플레인에 Compliance Operator 설치

Compliance Operator는 서브스크립션 파일을 생성하여 OperatorHub를 사용하여 호스팅된 컨트롤 플레인에 설치할 수 있습니다.

중요

호스팅된 컨트롤 플레인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

사전 요구 사항

  • admin 권한이 있어야 합니다.

절차

  1. 다음과 유사한 Namespace 오브젝트를 정의합니다.

    예: namespace-object.yaml

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
        pod-security.kubernetes.io/enforce: privileged 1
      name: openshift-compliance

    1
    OpenShift Container Platform 4.13에서는 네임스페이스 수준에서 Pod 보안 라벨을 privileged 로 설정해야 합니다.
  2. 다음 명령을 실행하여 Namespace 오브젝트를 생성합니다.

    $ oc create -f namespace-object.yaml
  3. OperatorGroup 오브젝트를 정의합니다.

    operator-group-object.yaml예제

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: compliance-operator
      namespace: openshift-compliance
    spec:
      targetNamespaces:
      - openshift-compliance

  4. 다음 명령을 실행하여 OperatorGroup 오브젝트를 생성합니다.

    $ oc create -f operator-group-object.yaml
  5. Subscription 오브젝트를 정의합니다.

    예: subscription-object.yaml

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: compliance-operator-sub
      namespace: openshift-compliance
    spec:
      channel: "stable"
      installPlanApproval: Automatic
      name: compliance-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      config:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
      env:
      - name: PLATFORM
        value: "HyperShift"

  6. 다음 명령을 실행하여 Subscription 오브젝트를 생성합니다.

    $ oc create -f subscription-object.yaml

검증

  1. 다음 명령을 실행하여 CSV 파일을 검사하여 설치에 성공했는지 확인합니다.

    $ oc get csv -n openshift-compliance
  2. 다음 명령을 실행하여 Compliance Operator가 실행 중인지 확인합니다.

    $ oc get deploy -n openshift-compliance

5.3.4. 추가 리소스