4.15. 인프라 노드에서 GitOps 컨트롤 플레인 워크로드 실행
인프라 노드를 사용하여 서브스크립션 수에 대한 추가 청구 비용을 방지할 수 있습니다.
OpenShift Container Platform을 사용하여 Red Hat OpenShift GitOps Operator가 설치한 인프라 노드에서 특정 워크로드를 실행할 수 있습니다. 이는 해당 네임스페이스의 기본 Argo CD 인스턴스를 포함하여 openshift-gitops
네임스페이스에 기본적으로 Red Hat OpenShift GitOps Operator가 설치한 워크로드로 구성됩니다.
사용자 네임스페이스에 설치된 다른 Argo CD 인스턴스는 인프라 노드에서 실행할 수 없습니다.
4.15.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
절차
다음 명령을 실행하여 기존 노드에 infrastructure로 레이블을 지정합니다.
$ oc label node <node-name> node-role.kubernetes.io/infra=
GitOpsService
CR(사용자 정의 리소스)을 편집하여 인프라 노드 선택기를 추가합니다.$ oc edit gitopsservice -n openshift-gitops
GitOpsService
CR 파일에서runOnInfra
필드를spec
섹션에 추가하고true
로 설정합니다. 이 필드는openshift-gitops
네임스페이스의 워크로드를 인프라 노드로 이동합니다.apiVersion: pipelines.openshift.io/v1alpha1 kind: GitopsService metadata: name: cluster spec: runOnInfra: true
선택 사항: 테인트를 적용하고 인프라 노드에 워크로드를 분리하고 다른 워크로드가 이러한 노드에서 예약되지 않도록 합니다.
$ oc adm taint nodes -l node-role.kubernetes.io/infra infra=reserved:NoSchedule infra=reserved:NoExecute
선택 사항: 노드에 테인트를 적용하는 경우
GitOpsService
CR에 허용 오차를 추가할 수 있습니다.spec: runOnInfra: true tolerations: - effect: NoSchedule key: infra value: reserved - effect: NoExecute key: infra value: reserved
워크로드가 Red Hat OpenShift GitOps 네임스페이스의 인프라 노드에 예약되어 있는지 확인하려면 Pod 이름을 클릭하고 노드 선택기 및 Tolerations 가 추가되었는지 확인합니다.
기본 Argo CD CR의 수동으로 추가된 노드 선택기 및 Tolerations 는 토글과 GitOpsService
CR의 허용 오차를 덮어씁니다.