Cloud 스터디 잼 코리아 Kubernetes Intm

3주차 - 03. Google Kubernetes Engine 개념

ziwookim 2022. 9. 8. 23:11

Kubernetes 클러스터를 직접 설정하는 복잡한 작업을 다행히도 오픈소스 명령어 'kubeadm'으로 클러스터 초기 설정의 대부분을 자동화할 수 있지만, 노드(Node)가 실패하거나 노드에 유지보수가 필요한 경우에는 관리자가 수동으로 응답해야 한다.

Google Kubernetes Engine는 사용자를 대신하여 모든 제어영역 구성요소를 관리한다.

 

Google Kubernetes Engine(GKE)

GKE manages all the control plane components.

  • GKE가 사용자를 대신하여 모든 제어 영역 인프라를 프로비저닝하고 관리한다.
  • 별도의 제어 영역(Control plane)을 추상화한다.
  • Google Cloud에서 제어 영역(Control plane)을 관리하게 되며, 제어 영역에 대해 별도의 비용이 청구되지 않는다.
 

GKE: 노드에 관해서 (GKE: More about nodes)

  • Kubernetes는 노드를 만들지 않는다.  -> 모든 Kubernetes 환경에서 노드는 Kubernetes 자체가 아닌 클러스터 관리자에 의해 외부에서 만들어진다.
  •  GKE는 Compute Engine 가상 머신 인스턴스를 시작하고 노드로 등록한다. GKE는 이 프로세스도 자동화 한다. -> Cloud Console에서 바로 노드 설정을 관리할 수 있다.
  • 제어 영역을 제외한 노드에 설정된 시간당 요금이 부과된다.
  • 노드는 Compute Engine에서 실행되므로 클러스터를 만들 때 노드 머신 유형을 선택할 수 있다. -> 기본적으로 노드 머신 유형은 'n1-standard-1'(가상 CPU 1개와 3.75GB 메모리 제공)이다.
  • Google Cloud는 다양한 Compute Engine 옵션을 제공한다. -> 노드의 코어 개수와 메모리 용량은 맞춤설정할 수 있으며, CPU 플랫폼도 선택할 수 있다. (어떠한 CPU 플랫폼을 선택하든, 비용은 동일하다.)
Machine Type Options

 

여러 종류의 노드를 관리하기 위해서는 노드 풀을 사용할 것. (Use node pools to manage different kinds of nodes)

Use node pools to manage different kinds of nodes
  • 노드 풀(node pool)은 Kubernetes 기능이 아닌, GKE가 제공하는 기능이다.
  • 다수의 노드 머신 유형을 선택하려면 다수의 노드 풀을 생성하면 된다.
  • 노드 풀은 클러스터 내 노드의 하위집합으로, 메모리 용량 또는 CPU 세대와 같은 구성을 공유한다.
  • 노드 풀을 이용하면 원하는 노드 풀로 워크로드의 레이블을 지정하는 작업만으로 더욱 쉽게 워크로드가 클러스터 내 올바른 하드웨어에서 실행되도록 할 수 있다.

         -> 오픈소스 Kubernetes 내에서도 유사한 메커니즘을 구축할 수 있지만, 이 경우에는 사용자가 직접 유지 관리 작업을 해야만 한다.

  • 노드 풀 수준에서 자동 노드 생성, 자동 노드 복구 클러스터 자동 확장을 사용할 수 있다. (* 단, 각 노드의 CPU 및 메모리 일부는 노드가 클러스터의 일부로 작동하게 하는 GKE와 Kubernetes 구성요소를 실행하는 데 필요하다.)
  • 기본적으로 클러스터는 단일 Googld Cloud 컴퓨팅 영역에서 시작되며, 하나의 노드 풀에 3개의 동일한 노드가 있다.
  • 노드 개수는 클러스터 생성 중 또는 생성 이후에 변경할 수 있다.

 

영역 클러스터   vs   리전 클러스터 (Zonal clusters   vs   Regional clusters)

전체 컴퓨팅 영역이 다운된 경우, GKE region 클러스터를 사용하면 이 문제를 해결할 수 있다.

  • region clusters는 애플리케이션의 가용성이 단일 region 내의 여러 영역(zone)에서 유지되도록 한다.
  • 제어 영역의 가용성도 유지가 되므로, 일부 영역이 애플리케이션과 관리 기능 모두를 손실하더라도 유지 된다. (* 단, 전체 영역 손실 시 유지 되지 않는다.)
  • 영역 클러스터를 빌드한 후에는 region 클러스터로 변환할 수 없으며, 그 반대의 경우도 마찬가지이다.
  • region별 또는 영역별 GKE 클러스터를 비공개 클러스터로도 설정할 수 있다.
  • 전체 클러스터, 즉 제어 영역 및 해당 노드는 공개(public) 인터넷에서 숨김 처리 된다.
  • Google Cloud 제품이 클러스터 제어 영역에 액세스할 수 있고, Cloud Logging 또는 Cloud Monitoring 등에서 내부 IP 주소를 통해 access할 수 있다. 
  • 승인된 네트워크(제어 영역에서 access 할 수 있도록 허용한 신뢰할 수 있는 IP 주소 범위)에서도 외부 IP 주소를 통해 access할 수 있다.
  • 노드는 비공개 Google access 통해서 제한된 아웃바운드 access 권한을 보유할 수 있으므로, 다른 Google Cloud 서비스와 통신할 수 있다.