Connect를 사용하는 항목

주제 최종 수정일: 2021년 11월 4일

Connect를 사용하여 Google Cloud에 Kubernetes 클러스터를 등록하면 클러스터와 Google Cloud 제어 영역 사이에 장기적인 인증 및 암호화된 연결이 설정됩니다. 이러한 연결은 Google Cloud 콘솔에 있는 클러스터에 대한 정보를 제공하며, Config Management와 같은 GKE Enterprise 구성요소 및 기능을 사용하여 구성 및 리소스를 클러스터에 관리하고 배포할 수 있게 합니다.

이 주제에서는 Google Cloud와 Connect 사이의 연결 특성을 설명하고 Connect를 통해 클러스터에서 작동하는 Google Cloud 측 컨트롤러에 대한 세부정보를 제공합니다.

Google Cloud와 Connect 사이의 연결 정보

보안 기능 주제에 설명된 것처럼 Google Cloud 제어 영역만이 연결된 각 클러스터(예를 들어 클러스터의 API 서버)에 Connect를 통해 요청을 수행하며, 클러스터는 다시 제어 영역으로 응답을 보냅니다. (클러스터 서비스 및 리소스는 Connect를 통해 제어 영역에 대한 요청을 시작할 수 없습니다.) 이러한 연결을 통해 승인된 사용자와 Google 측 자동화는 클러스터에 연결하여 클러스터를 인증할 수 있습니다.

예를 들어 Connect를 통해 Google Cloud 콘솔이 워크로드 및 서비스에 대한 정보를 가져올 수 있습니다. 또는 Config Management가 Connect 클러스터 내 에이전트를 설치 또는 업데이트하고 동기화 상태를 관찰할 수 있습니다. 또한 Connect를 통해 측정 에이전트가 연결된 클러스터의 vCPU 수를 관찰할 수 있습니다.

Connect는 컨테이너 이미지, 부하 분산, 데이터베이스 연결, Logging, Monitoring에 대해 데이터 전송을 제공하지 않습니다. 자체 메커니즘을 통해 이에 대한 연결을 병렬로 설정해야 합니다.

Connect를 통한 클러스터에 대한 Google Cloud Console 사용자 액세스

조직의 사용자가 Google Cloud Console을 통해 클러스터에 로그인한 후에는 역할 기반 액세스 제어(RBAC)에 의해 결정되는 특정 클러스터 권한이 부여됩니다. 권한을 적용하는 것은 (Connect가 아니라) 클러스터입니다. Standard Kubernetes 로그를 사용하면 각 사용자가 클러스터 관리에 수행하는 작업을 감사할 수 있습니다.

다음 표는 사용자가 Connect를 통해 클러스터와 상호작용할 수 있는 Google Cloud Console의 일부를 보여줍니다.

Google Cloud Console 섹션 사용자가 할 수 있는 작업
GKE Enterprise Fleet에 등록된 클러스터와 워크로드 관리 GKE Enterprise 구성요소를 관리합니다.
Kubernetes Engine Fleet 등록 클러스터 및 워크로드를 관리합니다.
Cloud Run for Anthos 서비스 및 애플리케이션을 빌드, 배포, 관리합니다.
Marketplace 타사 애플리케이션을 배포 및 관리합니다.

Connect를 통한 클러스터에 대한 Google Cloud 측 컨트롤러 액세스

Google Cloud 측 컨트롤러는 Connect Agent를 사용하여 Google Cloud 제어 영역에서 클러스터에 액세스합니다. 이러한 컨트롤러는 클러스터에서 사용 설정하는 기능에 대해 관리 및 자동화를 제공합니다. 예를 들어 Config Management에는 클러스터 내 에이전트의 수명 주기를 안내하고, 여러 클러스터에서 실행되는 Config Management의 상태를 구성하고 볼 수 있는 UI를 제공하는 Google Cloud 측 컨트롤러가 있습니다.

다른 컨트롤러가 다른 ID를 사용하여 클러스터에 액세스하고, Kubernetes 감사 로그에서 각 컨트롤러의 활동을 감사할 수 있습니다.

다음 표에서는 Google Cloud 측 컨트롤러가 Connect를 통해 작동하는 방법을 요약해서 보여줍니다. 이 표에서는 컨트롤러에 대한 주요 세부정보를 강조표시합니다. 여기에는 필요한 권한, Kubernetes 감사 로그의 ID, 사용 설정 가능 여부가 포함됩니다.

이 컨텍스트에서 구성요소를 사용 중지하면 완전히 꺼지기 때문에 구성요소의 어떤 개별 부분도 클러스터에서 사용할 수 없게 됩니다.

구성요소 이름 사용 중지할 수 있는가? 클러스터 역할/RBAC 권한 설명 클러스터 감사 로그의 ID
기능 승인자 아니요(기본적으로 사용 설정됨) cluster-admin

기능 승인자는 Fleet이 사용 설정된 구성요소에 대한 RBAC 또는 Kubernetes 클러스터에서 작동하는 기능에 RBAC를 추가하여 기능별로 기능을 수행하는 데 필요한 특정 권한만 추가합니다.

프로젝트에 등록된 구성원이 있는 동안에는 기능 승인자를 사용 중지할 수 없습니다.

자세한 내용은 Fleet의 기능 승인을 참조하세요.

service-project-number@gcp-sa-gkehub.iam.gserviceaccount.com
구성 관리 예(기본적으로 사용 중지됨) cluster-admin

Config Management 컨트롤러는 고유 클러스터 내 에이전트를 관리하고 Fleet에 있는 모든 클러스터 간의 Config Management 상태를 보여주는 UI를 제공합니다.

컨트롤러는 클러스터 내 구성요소를 설치하고 모든 유형의 Kubernetes 구성을 사용자 대신 배포할 수 있도록 적합한 권한으로 로컬 서비스 계정을 만듭니다. 클러스터 내 구성요소를 설치 또는 관리하지 않을 때 Config Management 컨트롤러는 해당 클러스터 내 에이전트에서 상태 정보를 읽습니다.

service-project-number@gcp-sa-acm.iam.gserviceaccount.com
사용량 측정 아니요(기본적으로 사용 설정됨) RBAC 정의 참조

측정 컨트롤러는 결제 서비스를 제공하기 위해 연결된 클러스터에 대한 기본 정보를 읽습니다.

이 컨트롤러는 다음에 대한 권한이 필요합니다.

  • 노드 vCPU 용량 기준 측정
  • metering.gke.io/usagerecords 커스텀 리소스를 확인하고 삭제
  • anthos.gke.io/entitlements 커스텀 리소스를 만들고 업데이트

프로젝트에 등록된 구성원이 있는 동안에는 측정을 중지할 수 없습니다.

service-project-number@gcp-sa-mcmetering.iam.gserviceaccount.com

Connect를 통한 특정 구성요소 작동을 위한 RBAC

다음 API 정의는 Connect를 통해 작동하는 여러 구성요소 리소스에 대한 액세스 제어 권한을 보여줍니다.

Connect를 통한 사용량 측정 RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    hub.gke.io/owner-feature: metering
    hub.gke.io/project: [PROJECT_ID]
  name: metering
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/metering
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - metering.gke.io
  resources:
  - usagerecords
  verbs:
  - get
  - list
  - watch
  - delete
- apiGroups:
  - anthos.gke.io
  resources:
  - entitlements
  verbs:
  - create
  - delete
  - get
  - list
  - update
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - create
  - list
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resourceNames:
  - entitlements.anthos.gke.io
  resources:
  - customresourcedefinitions
  verbs:
  - get