Connect Agent 개요

Google Cloud 외부의 클러스터를 Fleet에 등록하면 Google Cloud가 Connect Agent라는 배포를 사용하여 클러스터와 Google Cloud 프로젝트 사이의 연결을 설정하고 Kubernetes 요청을 처리합니다. Connect Agent는 Google Cloud에서 실행되는 GKE 클러스터에 대해 연결을 설정할 필요가 없습니다.

이를 통해 통합 사용자 인터페이스인 Google Cloud 콘솔을 포함하여 Google Cloud의 클러스터 및 워크로드 관리 기능에 액세스하여 클러스터와 상호 작용할 수 있습니다.

네트워크가 아웃바운드 요청을 허용하도록 구성된 경우 NAT, 이그레스 프록시, 방화벽을 통과하도록 Connect Agent를 구성하여 클러스터의 Kubernetes API 서버와 Google Cloud 프로젝트 사이에 오랫동안 유지되는 암호화된 연결을 설정할 수 있습니다. 이 연결이 사용 설정되면 사용자 인증 정보를 사용하여 클러스터에 다시 로그인하고 Kubernetes 리소스에 대한 세부정보에 액세스할 수 있습니다. 이는 GKE 클러스터에서만 사용할 수 있는 UI 환경을 효과적으로 복제합니다.

연결이 설정되면 Connect Agent 소프트웨어는 리소스, 애플리케이션, 하드웨어의 세부정보를 포함하여 Google Cloud로 관리하는 데 필요한 연결된 인프라 및 워크로드의 계정 사용자 인증 정보, 기술 세부정보, 메타데이터를 교환할 수 있습니다.

이 클러스터 서비스 데이터는 Google Cloud 프로젝트 및 계정과 연결되어 있습니다. Google은 이 데이터를 사용하여 클러스터와 Google Cloud 간의 제어 영역을 유지하고, 지원 촉진, 청구, 업데이트 제공을 포함한 개발자가 요청하는 모든 Google Cloud 서비스 및 기능을 제공하고, Connect를 통해 제공되는 Connect 및 Google Cloud 서비스의 안정성, 품질, 용량, 기능을 측정하고 개선합니다.

개발자는 Connect를 통해 전송되는 데이터를 계속 제어할 수 있습니다. Kubernetes API 서버는 Connect를 통해 모든 요청의 인증, 승인, 감사 로깅을 수행합니다. Google과 사용자는 클러스터 관리자가 승인(예: RBAC를 통해)한 후 Connect를 통해 데이터 또는 API에 액세스할 수 있습니다. 클러스터 관리자는 해당 승인을 취소할 수 있습니다.

Connect IAM 역할

Identity and Access Management(IAM)를 사용하면 사용자, 그룹, 서비스 계정이 Google Cloud APIs에 액세스하고 Google Cloud 제품 내에서 작업을 수행할 수 있습니다.

Connect Agent를 실행하고 Google Cloud Console 또는 Google Cloud CLI를 사용하여 클러스터와 상호작용하려면 특정 IAM 역할을 제공해야 합니다. 이러한 역할은 연결된 클러스터에 직접 액세스할 수 없습니다. Google Cloud 콘솔에서 클러스터에 로그인하는 방법은 Google Cloud 콘솔에서 클러스터 작업을 참조하세요.

이러한 역할 중 일부를 통해 다음과 같은 클러스터 정보에 액세스할 수 있습니다.

  • 클러스터 이름
  • 공개 키
  • IP 주소
  • ID 공급업체
  • Kubernetes 버전
  • 클러스터 크기
  • 기타 클러스터 메타데이터

연결은 다음과 같은 IAM 역할을 사용합니다.

역할 이름 역할 칭호 설명 권한
roles/gkehub.editor 허브 편집자 GKE 허브 리소스에 대한 편집 액세스 권한을 제공합니다.

Google Cloud 권한

  • resourcemanager.projects.get
  • resourcemanager.projects.list

허브 권한

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.create
  • gkehub.memberships.update
  • gkehub.memberships.delete
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.operations.cancel
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.create
  • gkehub.features.update
  • gkehub.features.delete
  • gkehub.features.getIamPolicy
  • gkehub.fleet.*
roles/gkehub.viewer 허브 뷰어 허브 및 관련 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.

Google Cloud 권한

  • resourcemanager.projects.get
  • resourcemanager.projects.list

허브 권한

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.getIamPolicy
roles/gkehub.connect GKE Connect 에이전트 외부 클러스터와 Google 간에 새 연결을 설정할 수 있는 권한을 제공합니다. gkehub.endpoints.connect

리소스 사용량 및 요구사항

등록 시 설치되는 Connect Agent는 일반적으로 500m의 CPU와 200Mi의 메모리를 사용합니다. 하지만 이 사용량은 초당 에이전트에 수행되는 요청 수와 이러한 요청의 크기에 따라 달라질 수 있습니다. 이러한 문제는 클러스터 크기, Google Cloud 콘솔을 통해 클러스터에 액세스하는 사용자 수(사용자 또는 워크로드 수가 많을수록 요청 수가 증가함), 클러스터의 Fleet 지원 기능 수를 포함하여 다양한 요인의 영향을 받을 수 있습니다.