1.4. 기본 Argo CD 인스턴스 구성
Operator는 openshift-gitops
네임스페이스에 기본 Argo CD 인스턴스를 생성하지만 애플리케이션을 배포하고 클러스터 구성을 설정하는 데 유용하도록 구성해야 합니다.
- RBAC(역할 기반 액세스 제어) 구성: Argo CD는 자체 RBAC 구성을 사용합니다. 사용자가 할당한 OpenShift Container Platform 클러스터 그룹에 따라 Operator에서 구성한 기본 권한이 충분하지 않을 수 있습니다.
- 권한 구성: Operator는 기본 Kubernetes 권한 세트로 기본 인스턴스를 구성합니다. 그러나 이러한 권한은 실시간 환경에 애플리케이션을 배포할 때 충분하지 않습니다. 따라서 이 기본 인스턴스에 추가 권한을 제공해야 합니다.
1.4.1. RBAC 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 인스턴스로 작업하려면 사용자에게 충분한 액세스 권한을 제공하도록 RBAC를 구성해야 합니다.
인스턴스의 defaultPolicy
는 빈 문자열이므로 역할이 자동으로 할당되지 않음을 의미합니다. 사용자가 인스턴스에 로그인할 수 있지만 Argo CD UI 또는 CLI에서 아무것도 보거나 작업을 수행할 수 있는 권한이 없습니다.
인스턴스에는 다음 두 그룹이 포함됩니다.
-
system:cluster-admins
: 그룹은 임시kube-admin
인증 정보에만 적용되며 무시할 수 있습니다. -
cluster-admins
: Argo CD 웹 콘솔에서 애플리케이션 배포와 같은 작업을 수행할 수 있도록 이 그룹에 사용자를 추가할 수 있습니다.
기본 권한 제한:
defaultPolicy
매개변수에 부여된 권한을 취소할 수 없으므로 항상 빈 문자열 또는 모두 거부 역할 유형을 사용해야 합니다. 따라서 권한을 부여하는 방식으로 defaultPolicy
매개변수를 설정하지 않는 것이 좋습니다.
사전 요구 사항
-
cluster-admin
권한으로 OpenShift Container Platform 클러스터에 액세스하기 위한 로그인 인증 정보가 있어야 합니다. -
oc
CLI 를 설치했습니다.
프로세스
기본 인스턴스에 대한 Operator 구성 RBAC를 확인합니다.
oc get argocd openshift-gitops -n openshift-gitops -o=jsonpath='{.spec.rbac}'
$ oc get argocd openshift-gitops -n openshift-gitops -o=jsonpath='{.spec.rbac}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 결과
{"defaultPolicy":"","policy":"g, system:cluster-admins, role:admin\ng, cluster-admins, role:admin\n","scopes":"[groups]"}
{"defaultPolicy":"","policy":"g, system:cluster-admins, role:admin\ng, cluster-admins, role:admin\n","scopes":"[groups]"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-admins
그룹이 있는지 확인합니다.oc get groups
$ oc get groups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 중 하나를 실행합니다.
그룹이 없는 경우 해당 그룹을 생성하고 사용자를 추가합니다.
oc adm groups new cluster-admins <user>
$ oc adm groups new cluster-admins <user>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
- <user>
그룹에 추가할 사용자를 나타냅니다.
출력 예
group.user.openshift.io/cluster-admins created
group.user.openshift.io/cluster-admins created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
그룹이 존재하는 경우 사용자가 이전에 실행한
oc get groups
명령 출력에 포함되어 있는지 확인합니다. 사용자가 그룹에 없는 경우 사용자를 그룹에 추가합니다.oc adm groups add-users cluster-admins <user>
$ oc adm groups add-users cluster-admins <user>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
- <user>
그룹에 추가할 사용자를 나타냅니다.
출력 예
group.user.openshift.io/cluster-admins added: "<user>"
group.user.openshift.io/cluster-admins added: "<user>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
cluster-admins
그룹이 존재하고 사용자가 해당 그룹의 일부인지 확인합니다.oc get groups cluster-admins
$ oc get groups cluster-admins
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 사용자가 할당된
cluster-admins
그룹이 표시됩니다.
cluster-admins
그룹을 생성하거나 편집한 후 Argo CD 웹 콘솔에서 로그아웃한 다음 그룹이 사용자와 연결되도록 다시 로그인해야 합니다. 사용자 정보 페이지를 확인하여 사용자가 Argo CD 내에서 cluster-admins
그룹의 일부인지 확인합니다.
1.4.2. 권한 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 Argo CD 인스턴스는 기본 Kubernetes 권한 세트로 자동으로 구성되지만 클러스터 구성에 필요한 모든 리소스를 배포할 수 있는 추가 권한을 제공해야 합니다. 반대로 기본 인스턴스에 특정 리소스만 배포하기 위해 더 제한적인 권한을 설정해야 하는 경우 추가 구성을 통해 이를 수행할 수 있습니다.
기본 Kubernetes 권한 세트에 대한 자세한 내용은 "추가 리소스"를 참조하십시오.
클러스터 구성에 기본 인스턴스를 사용하는 경우 Argo CD 애플리케이션 컨트롤러 서비스 계정에 cluster-admin
권한을 제공합니다. 이렇게 하려면 기본 인스턴스에서 Kubernetes API와 상호 작용하여 리소스를 배포하는 데 이 계정을 사용하므로 openshift-gitops-argocd-application-controller
서비스 계정에 대한 ClusterRoleBinding
오브젝트를 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한으로 OpenShift Container Platform 클러스터에 액세스할 수 있는 로그인 인증 정보가 있어야 합니다. -
oc
CLI 를 설치했습니다.
프로세스
다음 명령을 실행합니다.
oc adm policy add-cluster-role-to-user --rolebinding-name="openshift-gitops-cluster-admin" cluster-admin -z openshift-gitops-argocd-application-controller -n openshift-gitops
$ oc adm policy add-cluster-role-to-user --rolebinding-name="openshift-gitops-cluster-admin" cluster-admin -z openshift-gitops-argocd-application-controller -n openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
clusterrole.rbac.authorization.k8s.io/cluster-admin added: "openshift-gitops-argocd-application-controller"
clusterrole.rbac.authorization.k8s.io/cluster-admin added: "openshift-gitops-argocd-application-controller"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
생성된
ClusterRoleBinding
오브젝트를 확인합니다.oc get clusterrolebinding openshift-gitops-cluster-admin -o yaml
$ oc get clusterrolebinding openshift-gitops-cluster-admin -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow