5.9. 인프라 노드에서 GitOps 컨트롤 플레인 워크로드 실행

인프라 노드를 사용하여 서브스크립션 수에 대한 추가 청구 비용을 방지할 수 있습니다.

OpenShift Container Platform을 사용하여 Red Hat OpenShift GitOps Operator가 설치한 인프라 노드에서 특정 워크로드를 실행할 수 있습니다. 이는 해당 네임스페이스의 기본 Argo CD 인스턴스를 포함하여 openshift-gitops 네임스페이스에 기본적으로 Red Hat OpenShift GitOps Operator가 설치한 워크로드로 구성됩니다.

참고

사용자 네임스페이스에 설치된 다른 Argo CD 인스턴스는 인프라 노드에서 실행할 수 없습니다.

5.9.1. GitOps 워크로드를 인프라 노드로 이동

Red Hat OpenShift GitOps에서 설치한 기본 워크로드를 인프라 노드로 이동할 수 있습니다. 이동할 수 있는 워크로드는 다음과 같습니다.

  • Kam deployment
  • 클러스터 배포 (backend service)
  • openshift-gitops-applicationset-controller deployment
  • openshift-gitops-dex-server deployment
  • openshift-gitops-redis deployment
  • openshift-gitops-redis-ha-haproxy deployment
  • openshift-gitops-repo-sever deployment
  • openshift-gitops-server deployment
  • openshift-gitops-application-controller statefulset
  • openshift-gitops-redis-server statefulset

프로세스

  1. 다음 명령을 실행하여 기존 노드를 인프라로 지정합니다.

    $ oc label node <node-name> node-role.kubernetes.io/infra=
  2. GitOpsService CR(사용자 정의 리소스)을 편집하여 인프라 노드 선택기를 추가합니다.

    $ oc edit gitopsservice -n openshift-gitops
  3. GitOpsService CR 파일에서 runOnInfra 필드를 spec 섹션에 추가하고 true 로 설정합니다. 이 필드는 openshift-gitops 네임스페이스의 워크로드를 인프라 노드로 이동합니다.

    apiVersion: pipelines.openshift.io/v1alpha1
    kind: GitopsService
    metadata:
      name: cluster
    spec:
      runOnInfra: true
  4. 선택 사항: 테인트를 적용하고 인프라 노드에 워크로드를 분리하고 다른 워크로드가 이러한 노드에 예약되지 않도록 합니다.

    $ oc adm taint nodes -l node-role.kubernetes.io/infra
    infra=reserved:NoSchedule infra=reserved:NoExecute
  5. 선택 사항: 노드에 테인트를 적용하는 경우 GitOpsService CR에 허용 오차를 추가할 수 있습니다.

    spec:
      runOnInfra: true
      tolerations:
      - effect: NoSchedule
        key: infra
        value: reserved
      - effect: NoExecute
        key: infra
        value: reserved

Red Hat OpenShift GitOps 네임스페이스의 인프라 노드에 워크로드가 예약되었는지 확인하려면 포드 이름을 클릭하고 노드 선택기허용 오차 가 추가되었는지 확인합니다.

참고

기본 Argo CD CR에 수동으로 추가된 노드 선택기허용 오차GitOpsService CR의 토글과 허용 오차를 통해 덮어씁니다.