검색

3.4. 집계된 클러스터 역할 생성 활성화

download PDF

클러스터 범위의 Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 집계된 클러스터 역할을 생성하려면 Argo CD 사용자 정의 리소스(CR)의 YAML 파일을 편집하여 해당 필드를 구성해야 합니다.

프로세스

  1. Argo CD CR에서 .spec.aggregatedClusterRoles 필드의 값을 true 로 설정합니다.

    Argo CD CR의 예

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example 1
      namespace: spring-petclinic 2
    # ...
    spec:
      aggregatedClusterRoles: true 3
    # ...

    1
    클러스터 범위 인스턴스의 이름입니다.
    2
    클러스터 범위 인스턴스를 실행할 네임스페이스입니다.
    3
    value를 true 로 설정하면 집계된 클러스터 역할을 생성할 수 있습니다. 집계된 클러스터 역할 생성을 활성화하지 않으려면 이 행을 포함하지 않거나 값을 false 로 설정합니다.

    출력 예

    argocd.argoproj.io/example configured

  2. 클러스터 범위의 Argo CD 인스턴스의 Status 필드가 Phase: Available 로 표시되는지 확인합니다. 다음 명령을 실행하여 사용할 수 있습니다.

    $ oc describe argocd.argoproj.io/example -n spring-petclinic

    출력 예

    Name:         example
    Namespace:    spring-petclinic
    Labels:       <none>
    Annotations:  <none>
    API Version:  argoproj.io/v1beta1
    Kind:         ArgoCD
    Metadata:
      Creation Timestamp:  2024-08-14T08:20:53Z
      Finalizers:
        argoproj.io/finalizer
      Generation:        3
      Resource Version:  60437
      UID:               57940e54-d60b-4c1a-bc4a-85c81c63ab69
    Spec:
      Aggregated Cluster Roles:  true
    ...
    Status:
      Application Controller:      Running
      Application Set Controller:  Unknown
      Phase:                       Available 1
      Redis:                       Running
      Repo:                        Running
      Server:                      Running
      Sso:                         Unknown
    Events:                        <none>

    1
    Available 상태는 클러스터 범위의 Argo CD 인스턴스가 정상이고 사용 가능함을 나타냅니다.
    참고

    Red Hat OpenShift GitOps Operator는 다음과 같은 기본 클러스터 역할을 생성하고 관리합니다.

    • <argocd_name>-<argocd_namespace>-argocd-application-controller 집계 클러스터 역할
    • <argocd_name>-<argocd_namespace>-argocd-application-controller-view
    • <argocd_name>-<argocd_namespace>-argocd-application-controller-admin
  3. 다음 명령을 실행하여 Operator에서 Argo CD 애플리케이션 컨트롤러 및 Argo CD 서버 구성 요소에 대한 기본 클러스터 역할 및 클러스터 역할 바인딩을 생성했는지 확인합니다.

    $ oc get ClusterRoles -l app.kubernetes.io/part-of=argocd

    출력 예

    NAME                                                           CREATED AT
    example-spring-petclinic-argocd-application-controller         2024-08-14T08:20:58Z
    example-spring-petclinic-argocd-application-controller-admin   2024-08-14T09:08:38Z
    example-spring-petclinic-argocd-application-controller-view    2024-08-14T09:08:38Z
    example-spring-petclinic-argocd-server                         2024-08-14T08:20:59Z

    $ oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd

    출력 예

    NAME                                                     ROLE                                                                 AGE
    example-spring-petclinic-argocd-application-controller   ClusterRole/example-spring-petclinic-argocd-application-controller   54m
    example-spring-petclinic-argocd-server                   ClusterRole/example-spring-petclinic-argocd-server                   54m

    viewadmin 클러스터 역할에 대한 클러스터 역할 바인딩은 생성되지 않습니다. viewadmin 클러스터 역할은 집계된 클러스터 역할에만 권한을 추가하고 Argo CD 애플리케이션 컨트롤러에 대한 권한을 직접 구성하지 않기 때문입니다.

    작은 정보

    또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리 역할사용자 관리 RoleBindings 로 각각 이동할 수 있습니다. app.kubernetes.io/part-of:argocd 레이블이 있는 클러스터 역할 및 클러스터 역할 바인딩을 검색할 수 있습니다.

  4. 다음 명령을 실행하여 생성된 역할의 출력 권한을 확인하여 집계된 클러스터 역할이 생성되었는지 확인합니다.

    $ oc get ClusterRole/<cluster_role_name> -o yaml 1
    1
    & lt;cluster_role_name >을 생성된 역할의 이름으로 바꿉니다.

    집계된 클러스터 역할의 출력 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
        rbac.authorization.kubernetes.io/autoupdate: "true"
      creationTimestamp: "2024-08-14T08:20:58Z"
      labels:
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
      name: example-spring-petclinic-argocd-application-controller 1
      resourceVersion: "78640"
      uid: aeeb2ef5-b531-4fe3-a61a-b5ad8dd8ca6e
    aggregationRule: 2
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-controller: "true"
    rules: [] 3

    1
    집계된 클러스터 역할의 이름입니다.
    2
    사전 정의된 라벨 목록은 집계된 클러스터 역할이 다른 사용자 정의 클러스터 역할의 권한을 상속할 수 있음을 나타냅니다.
    3
    사전 정의된 권한이 설정되어 있지 않습니다. 그러나 Operator가 < argocd_name>-<argocd_namespace>-argocd-application-controller-view 클러스터 역할을 즉시 생성하면 해당 사전 정의된 보기 권한이 집계된 클러스터 역할에 추가됩니다.

    view 클러스터 역할의 출력 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
      creationTimestamp: "2024-08-14T09:59:14Z"
      labels: 1
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
        argocd/aggregate-to-controller: "true"
      name: example-spring-petclinic-argocd-application-controller-view 2
      resourceVersion: "78639"
      uid: 068b8867-7a0c-4af3-a17a-0560a00eba41
    rules: 3
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - get
      - list
      - watch
    - nonResourceURLs:
      - '*'
      verbs:
      - get
      - list

    1
    레이블은 사전 정의된 기존 집계 클러스터 역할의 목록과 일치합니다.
    2
    클러스터 역할의 이름입니다.
    3
    사전 정의된 보기 권한입니다. 이러한 권한은 기존 집계된 클러스터 역할에 추가됩니다.

    admin 클러스터 역할의 출력 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
        rbac.authorization.kubernetes.io/autoupdate: "true"
      creationTimestamp: "2024-08-14T09:59:15Z"
      labels: 1
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
        argocd/aggregate-to-controller: "true"
      name: example-spring-petclinic-argocd-application-controller-admin 2
      resourceVersion: "78642"
      uid: e2d35b6f-0832-4993-8b24-915a725454f9
    aggregationRule: 3
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-admin: "true"
    rules: null 4

    1
    레이블은 사전 정의된 기존 집계 클러스터 역할의 목록과 일치합니다.
    2
    admin 클러스터 역할의 이름입니다.
    3
    사전 정의된 라벨 목록은 기존 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin 클러스터 역할이 다른 사용자 정의 클러스터 역할의 권한을 상속할 수 있음을 나타냅니다.
    4
    하나 이상의 사용자 정의 클러스터 역할에 아직 권한이 정의되어 있지 않도록 지정합니다.
    작은 정보

    또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리 역할로 이동하여 필터 옵션을 사용하여 클러스터 전체 역할을 선택하고 집계된 클러스터 역할을 검색하고, 사용자 관리 및 관리자 클러스터 역할을 수 있습니다. 세부 정보 및 구성을 확인하려면 클러스터 역할을 열어야 합니다.

    클러스터 관리자는 이제 하나 이상의 사용자 정의 클러스터 역할을 생성하고 Argo CD 애플리케이션 컨트롤러에 대한 사용자 정의 권한을 구성할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.