Fleet팀 관리

플랫폼 관리자의 일반적인 태스크는 애플리케이션 및 서비스 팀이 자신의 워크로드를 실행하는 데 필요한 인프라 리소스를 이용할 수 있도록 보장하는 것입니다. 조직에 따라 팀에서 특정 클러스터를 사용해야 할 수도 있고, 각 팀에 대해 적절한 액세스 제어를 설정하여 Fleet의 모든 클러스터에서 워크로드를 실행해야 할 수도 있습니다. Fleet팀 관리 기능은 각 팀이 Fleet에서 별개의 "테넌트"로 작동하는 상황에서 관리자가 팀에 대해 이와 같은 인프라 및 리소스를 쉽게 프로비저닝하고 관리할 수 있게 도와줍니다. 팀은 워크로드 실행 및 관리는 물론 자신의 클러스터 및 네임스페이스 집합으로 범위가 지정된 로그, 리소스 사용률, 오류율, 기타 측정항목을 확인할 수 있습니다.

이 페이지는 Fleet팀 관리 기능에 대해 알아보려는 플랫폼 관리자 및 애플리케이션팀 구성원을 대상으로 합니다. Fleet팀 관리 기능은 전체 GKE Enterprise 플랫폼을 사용 설정한 사용자에게만 제공됩니다.

Fleet팀 관리 개요

Fleet팀 관리는 Fleet을 관리할 때 사용할 '팀 수준' 추상화를 관리자에게 제공하는 두 가지 주요 개념을 기반으로 합니다.

  • 팀 범위를 사용하면 팀별로 Fleet 리소스의 하위 집합을 정의할 수 있으며, 각 범위는 하나 이상의 Fleet 구성원 클러스터와 연결됩니다. 팀 범위에는 Google Cloud의 클러스터 또는 Google Cloud 외부의 클러스터가 포함될 수 있지만, 모든 클러스터가 동일한 Fleet의 구성원이어야 합니다. 다른 팀이 동일한 클러스터에서 워크로드를 실행할 수 있도록 클러스터를 둘 이상의 범위와 연결할 수 있습니다.
  • Fleet 네임스페이스는 Fleet 내에서 특정 네임스페이스에 액세스할 수 있는 사용자를 제어하는 방법을 제공합니다. 기본적으로 Fleet의 클러스터에 정의된 동일한 이름의 모든 네임스페이스가 동일한 네임스페이스인 것처럼 처리됩니다. 하지만 Fleet팀 관리는 네임스페이스보다 세부적인 제어를 추가할 수 있는 방법을 제공합니다. 특정 팀 범위 내에서 Fleet 네임스페이스를 만든 후 팀 구성원에게 해당 팀 범위 내의 클러스터에 대해서만 액세스 권한을 부여할 수 있습니다. Fleet 네임스페이스는 팀 범위의 구성원 클러스터에서 다른 Kubernetes 네임스페이스와 동일한 방식으로 사용될 수 있습니다. 플랫폼 관리자는 스스로 Fleet 네임스페이스를 만들 수 있고, 추가 권한이 부여된 경우 팀 관리자에게 네임스페이스 만들기를 위임할 수 있습니다.

팀 관리 예시

예를 들어 귀하가 단일 Fleet에서 2개 팀을 위해 리소스를 설정하는 Cymbal Group 회사의 플랫폼 관리자라고 가정해 보세요.

  • 백엔드팀은 하나의 Google 그룹인 backend-team@cymbalgroup.com으로 구성됩니다. 귀하는 이 팀이 자신의 네임스페이스 backend를 사용해서 클러스터 1 및 클러스터 2에서 워크로드를 실행하도록 결정합니다. 귀하는 2개의 클러스터가 포함된 팀 범위를 만들고 이 범위 내에서 backend Fleet 네임스페이스를 정의합니다.
  • 프런트엔드팀은 2개의 Google 그룹인 frontend-admin@cymbalgroup.comfrontend-dev@cymbalgroup.com으로 구성됩니다. 귀하는 프런트엔드팀이 frontend-foofrontend-bar 네임스페이스를 사용해서 클러스터 2와 클러스터 3에서 워크로드를 실행할 수 있도록 결정합니다. 다시 2개의 클러스터를 사용해서 팀 범위를 만들고 이 범위 내에 2개의 Fleet 네임스페이스를 정의합니다.

Fleet을 사용하는 2개 팀 예시를 보여주는 다이어그램

다이어그램에서 볼 수 있듯이 팀을 설정한 후에는 두 팀 모두 클러스터 2를 사용할 수 있고 각 팀이 자신의 고유 네임스페이스를 사용합니다. 또한 백엔드팀은 클러스터 1에서 자신의 네임스페이스를 사용할 수 있고 프런트엔드팀은 클러스터 3에서 자신의 네임스페이스를 사용할 수 있습니다. 두 팀 모두 클러스터에서 자신의 워크로드를 실행할 수 있고 상대 팀을 고려할 필요 없이 자신의 고유 리소스를 볼 수 있습니다.

어느 경우에든 팀장(백엔드팀에서는 개별 사용자인 다나, 프런트엔드팀에서는 frontend-admin 그룹 구성원)이 팀 범위에 대해 admin 액세스 권한을 갖도록 지정합니다. 즉, 팀장이 해당 범위 내에서 역할 및 역할 바인딩을 만들 수 있고, 남은 팀 구성원은 editor 액세스 권한을 갖습니다.

kubectl 또는 기타 도구를 사용해서 수동으로 이 구성을 모두 설정할 수 있지만 팀 관리 기능을 사용하는 것이 팀을 더 쉽고 빠르게 온보딩할 수 있는 방법이며, 관리자 및 팀 구성원이 팀 범위의 측정항목과 같은 팀 범위에 따라 추가 기능을 사용할 수 있습니다.

또한 실제 상황에서는 프로덕션, 개발, 테스트 환경에 대해 별도의 Fleet이 있을 수 있습니다. 이러한 각 Fleet 내에서 프런트엔드 및 백엔드팀에 대한 팀 범위를 만들어 자체 프로덕션, 개발, 테스트 클러스터를 팀에 제공합니다. 자세한 내용은 Fleet 권장사항예시를 참조하세요.

팀 기반 기능

팀 범위가 설정된 다음 애플리케이션 운영자와 관리자는 리소스 사용률, 로그, 네임스페이스별 오류, 해당 범위 전반의 기타 측정항목과 같은 팀 범위의 정보를 확인할 수 있으므로, 총 리소스 사용, 문제 해결 등의 방식을 보다 쉽게 평가할 수 있습니다. 자세한 내용은 팀 개요 사용을 참조하세요. 팀 범위는 시퀀싱 업그레이드 출시에도 사용할 수 있습니다.

팀 범위 액세스

팀 구성원은 Connect Gateway에 대한 특수 클러스터 사용자 인증 정보를 사용해서 kubectl로 자신의 팀 범위 클러스터에 액세스하는 것이 좋습니다. Connect Gateway는 사용자가 Google 그룹스를 사용하여 승인을 포함하여 Fleet의 모든 클러스터에 Google ID로 로그인할 수 있게 해주는 일관되고 안전한 서비스입니다. Google Cloud의 GKE 클러스터를 인증하는 데 반드시 필요한 것은 아니지만 게이트웨이 사용자 인증 정보를 사용하여 프로젝트 전반에 걸쳐 Fleet 구성원 클러스터를 인증할 수 있는 간단하고 일관된 방법을 제공합니다. Fleet팀 관리는 현재 타사 ID 공급업체를 지원하지 않습니다.

기존 리소스

또한 Fleet팀 관리를 사용해서 조직의 팀에 사용되는 기존 네임스페이스 및 클러스터를 '온보딩'하여, 관리자 및 팀이 기존 워크로드로 팀 기반 기능을 사용하도록 지원할 수 있습니다. Fleet 네임스페이스를 만들 때 해당 팀 범위와 연결된 클러스터 중 하나에 해당 이름의 기존 Kubernetes 네임스페이스가 있으면 이 네임스페이스가 Fleet 네임스페이스의 인스턴스화로 고려되며, 따라서 팀 범위의 일부가 됩니다.

다음 단계

  • 플랫폼 관리자의 경우 팀 설정 안내에 따라 팀 범위 및 네임스페이스를 설정, 구성, 관리합니다.
  • 팀 개요 사용에서 팀 수준 측정항목 및 기타 팀별 정보를 확인하는 방법을 알아봅니다(제한된 미리보기만).