1장. GitOps의 멀티 테넌시 지원


멀티 테넌시는 단일 소프트웨어 인스턴스가 여러 개별 사용자 그룹 또는 테넌트를 제공하는 소프트웨어 아키텍처입니다. 멀티 테넌시를 사용하면 단일 Argo CD 인스턴스를 공유하여 사용자 간에 격리를 유지하면서 리소스를 배포할 수 있습니다. Argo CD 인스턴스 범위를 이해하면 환경에 적합한 모드를 선택하는 데 도움이 됩니다.

OpenShift Container Platform에서 Red Hat OpenShift GitOps Operator를 사용하면 클러스터 관리자로서 애플리케이션 제공 팀(테넌트)을 위해 클러스터에 대한 다중 테넌트 액세스 권한을 부여할 수 있습니다. 테넌트가 관리 권한 없이 사용자 정의 네임스페이스에서 전용 Argo CD 인스턴스를 생성하고 관리할 수 있도록 허용할 수 있습니다. 테넌트에는 완전한 자율성이 있으며 다른 테넌트를 방해하지 않고 이 인스턴스를 요구 사항 및 요구 사항에 맞게 조정할 수 있습니다.

참고

다중 테넌트 클러스터의 경우 Argo CD 인스턴스를 관리하는 사람이 클러스터 및 해당 사용자를 관리하는 사람이 아닐 수 있습니다. 따라서 Argo CD 애플리케이션 컨트롤러(argocd-application-controller 구성 요소)를 클러스터의 슈퍼유저로 사용할 수 없습니다.

Argo CD 애플리케이션 컨트롤러는 관리 클러스터의 리소스를 조정합니다. GitOps Operator에서 멀티 테넌시를 사용하려면 사용 사례 및 테넌트 요구 사항에 따라 권한을 구성합니다. 작업을 제어하기 위해 Argo CD 인스턴스, 애플리케이션 및 원격 클러스터에 대한 권한을 명시적으로 부여, 확장 또는 제한합니다.

1.1. Argo CD 인스턴스 범위

Red Hat OpenShift GitOps Operator는 멀티 테넌시를 지원하는 다음 모드로 광범위하게 분류할 수 있는 인스턴스를 생성합니다.

  • 네임스페이스 범위 인스턴스(애플리케이션 제공 인스턴스)
  • 클러스터 범위 인스턴스
  • 기본 클러스터 범위 인스턴스

1.1.1. 네임스페이스 범위 인스턴스(애플리케이션 제공 인스턴스)

네임스페이스 중 하나에서 Argo CD CR(사용자 정의 리소스)을 생성한 후 GitOps Operator는 이 네임스페이스에서 Argo CD를 시작하여 애플리케이션 전달에 사용할 수 있습니다. 초기 상태에서 이 인스턴스에는 설치된 동일한 네임스페이스에만 리소스를 배포할 수 있는 권한이 있습니다. 그러나 특정 요구 사항을 충족하도록 인스턴스를 구성해야 할 수 있습니다.

GitOps Operator를 사용하면 Argo CD 인스턴스의 권한을 확장하여 Argo CD 애플리케이션 컨트롤러에서 리소스를 설치된 위치와 별도로 다른 네임스페이스에 배포할 수 있습니다.

참고

네임스페이스의 GitOps Operator가 생성하는 역할은 네임스페이스 범위이며 네임스페이스 리소스에 대한 액세스 권한만 있습니다. Operator는 관리하는 네임스페이스 외부에서 모든 작업을 수행할 수 없습니다.

이 방법은 어떻게 작동합니까?

GitOps Operator를 사용하면 OpenShift 사용자가 네임스페이스의 argoproj.io/v1alpha1 또는 argoproj.io/v1beta1 API에서 Argo CD 리소스를 생성할 수 있는 권한이 있는 경우 네임스페이스에서 Argo CD 인스턴스를 인스턴스화할 수 있습니다. 현재 네임스페이스 범위 인스턴스에는 관리하는 네임스페이스 또는 여러 네임스페이스에 대한 전체 관리 권한이 있으며, 해당 네임스페이스 내의 모든 리소스에 대한 모든 동사를 허용하는 것과 유사합니다.

Argo CD 애플리케이션 컨트롤러가 다른 네임스페이스에 리소스를 배포하려면 Kubernetes 역할 및 역할 바인딩을 구성해야 합니다. 이러한 역할 및 바인딩은 네임스페이스 범위 인스턴스에서 관리할 수 있는 네임스페이스를 식별합니다. GitOps Operator는 argocd.argoproj.io/managed-by 레이블을 지원하여 이 설정을 단순화합니다. 이 레이블을 사용하여 인스턴스에서 관리하는 네임스페이스를 표시합니다. GitOps Operator를 네임스페이스 범위 모드로 배포하면 라벨이 지정된 각 네임스페이스에 필요한 역할 및 역할 바인딩이 자동으로 생성됩니다.

중요

argocd.argoproj.io/managed-by 레이블은 GitOps Operator와 동일한 클러스터의 네임스페이스에 대해서만 작동합니다. 원격 클러스터의 경우 권한을 수동으로 정의해야 합니다.

기본적으로 managed-by 레이블을 사용하여 네임스페이스에 레이블을 지정할 때 GitOps Operator는 레이블이 지정된 네임스페이스에 대한 Kubernetes 기본 admin 클러스터 역할과 동일한 Argo CD Application Controller 권한을 부여합니다. 그러나 Operator의 Subscription 리소스에서 CONTROLLER_CLUSTER_ROLE 및 CONTROLLER_SERVER_ROLE 환경 변수를 사용하여 컨트롤러 및 서버 구성 요소에 사용되는 대체 클러스터 역할을 정의할 수 있습니다. 이러한 변수를 지정하면 Operator는 네임스페이스에 기본 역할을 생성하지 않고 해당 클러스터 역할의 네임스페이스에 역할 바인딩만 생성합니다. 관리자는 권한을 완전히 제어할 수 있는 클러스터 역할을 생성할 수 있습니다.

참고
  • 역할을 정의할 때 Argo CD는 모든 리소스와 상호 작용을 시도합니다. 따라서 사용자 정의 클러스터 역할의 모든 리소스를 보고 ,가져오고, 조사할 수 있는 권한을 부여하거나, 역할에 정의된 resourceInclusions 또는 resourceExclusions 필드를 통해 특정 리소스를 포함하거나 제외하도록 Argo CD CR을 구성해야 합니다.
  • 네임스페이스, CRD(사용자 정의 리소스 정의) 또는 네임스페이스 범위 인스턴스를 사용하여 클러스터 범위 리소스를 관리할 수 없습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동