인프라 노드의 GitOps 워크로드
인프라 노드에서 GitOps 컨트롤 플레인 워크로드 실행
초록
1장. 인프라 노드에서 GitOps 컨트롤 플레인 워크로드 실행 링크 복사링크가 클립보드에 복사되었습니다!
인프라 노드를 사용하여 다음 두 가지 기본 목적으로 인프라 워크로드를 분리할 수 있습니다.
- 서브스크립션 수와 관련된 청구 비용을 방지하려면 다음을 수행합니다.
- 별도의 유지 관리 및 관리
OpenShift Container Platform을 사용하여 인프라 노드에서 GitOps 컨트롤 플레인 워크로드를 실행할 수 있습니다. 여기에는 이 네임스페이스의 기본 Argo CD 인스턴스를 포함하여 기본적으로 openshift-gitops 네임스페이스의 Red Hat OpenShift GitOps Operator에서 생성한 Operator Pod 및 컨트롤 플레인 워크로드가 포함됩니다.
GitOps 컨트롤 플레인 워크로드를 사용하면 Argo CD 인스턴스가 가능한 것을 완전히 제어하여 클러스터에 여러 개의 격리된 Argo CD 인스턴스를 생성하여 인프라 워크로드를 안전하고 선언적으로 격리할 수 있습니다. 또한 여러 개발자 네임스페이스에서 선언적으로 이러한 Argo CD 인스턴스를 관리할 수 있습니다. 테인트를 사용하면 이러한 노드에서 인프라 구성 요소만 실행되도록 할 수 있습니다.
사용자 네임스페이스에 설치된 다른 모든 Argo CD 인스턴스는 인프라 노드에서 실행할 수 없습니다.
1.1. GitOps 컨트롤 플레인 워크로드를 인프라 노드로 이동 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift GitOps에서 설치한 GitOps 컨트롤 플레인 워크로드를 인프라 노드로 이동할 수 있습니다. 다음은 이동할 수 있는 컨트롤 플레인 워크로드입니다.
-
클러스터 배포(backend 서비스) -
openshift-gitops-applicationset-controller 배포 -
openshift-gitops-dex-server deployment -
openshift-gitops-redis 배포 -
openshift-gitops-redis-ha-haproxy 배포 -
openshift-gitops-repo-sever 배포 -
openshift-gitops-server 배포 -
openshift-gitops-application-controller statefulset -
openshift-gitops-redis-server statefulset
프로세스
다음 명령을 실행하여 기존 노드에 인프라로 레이블을 지정합니다.
oc label node <node-name> node-role.kubernetes.io/infra=
$ oc label node <node-name> node-role.kubernetes.io/infra=Copy to Clipboard Copied! Toggle word wrap Toggle overflow GitOpsServiceCR(사용자 정의 리소스)을 편집하여 인프라 노드 선택기를 추가합니다.oc edit gitopsservice -n openshift-gitops
$ oc edit gitopsservice -n openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow GitOpsServiceCR 파일에서spec섹션에runOnInfra필드를 추가하고true로 설정합니다. 이 필드는openshift-gitops네임스페이스의 컨트롤 플레인 워크로드를 인프라 노드로 이동합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 테인트를 적용하고 인프라 노드에 워크로드를 분리하고 다른 워크로드가 이러한 노드에서 예약되지 않도록 합니다.
oc adm taint nodes -l node-role.kubernetes.io/infra
$ oc adm taint nodes -l node-role.kubernetes.io/infra infra=reserved:NoSchedule infra=reserved:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 노드에 테인트를 적용하는 경우
GitOpsServiceCR에 허용 오차를 추가할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
워크로드가 Red Hat OpenShift GitOps 네임스페이스의 인프라 노드에 예약되었는지 확인하려면 Pod 이름을 클릭하고 노드 선택기 및 허용 오차 가 추가되었는지 확인합니다.
기본 Argo CD CR에 수동으로 추가된 노드 선택기 및 허용 오차 는 GitOpsService CR의 토글 및 허용 오차로 덮어씁니다.
1.2. GitOps Operator Pod를 인프라 노드로 이동 링크 복사링크가 클립보드에 복사되었습니다!
GitOps Operator Pod를 인프라 노드로 이동할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
-
cluster-admin권한이 있는 클러스터에 액세스할 수 있습니다.
프로세스
다음 명령을 실행하여 기존 노드에 인프라 노드로 레이블을 지정합니다.
oc label node <node_name> node-role.kubernetes.io/infra=
$ oc label node <node_name> node-role.kubernetes.io/infra=1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <node_name>을 인프라 노드로 레이블을 지정할 노드 이름으로 바꿉니다.
출력 예
node/<node_name> labeled
node/<node_name> labeledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Red Hat OpenShift GitOps
Subscription리소스를 편집합니다.oc -n openshift-gitops-operator edit subscription openshift-gitops-operator
$ oc -n openshift-gitops-operator edit subscription openshift-gitops-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription리소스의spec.config필드에nodeSelector및tolerations를 추가합니다.서브스크립션의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
subscription.operators.coreos.com/openshift-gitops-operator edited
subscription.operators.coreos.com/openshift-gitops-operator editedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 GitOps Operator Pod가 인프라 노드에서 실행 중인지 확인합니다.
oc -n openshift-gitops-operator get po -owide
$ oc -n openshift-gitops-operator get po -owideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES openshift-gitops-operator-controller-manager-abcd 2/2 Running 0 11m 94.142.44.126 <node_name> <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES openshift-gitops-operator-controller-manager-abcd 2/2 Running 0 11m 94.142.44.126 <node_name> <none> <none>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 나열된 <
node_name>이node-role.kubernetes.io/infra라벨이 있는 노드인지 확인합니다.