Overview
서비스 개요
Kubernetes Engine은 경량화된 가상 컴퓨팅과 컨테이너와 이를 관리하기 위한 쿠버네티스 클러스터를 제공하는 서비스 입니다. 사용자는 Kubernetes Control Plane을 설치하고 운영하며 유지 관리를 수행함으로써 복잡한 준비 없이 쿠버네티스 환경을 활용할 수 있습니다.
특장점
표준 쿠버네티스 환경 구성: 기본 제공하는 Kubernetes Control Plane을 통해 별도의 구성없이 표준 쿠버네티스 환경 사용이 가능합니다. 다른 표준 쿠버네티스 환경 내의 애플리케이션과 호환 가능하여 코드 수정 없이 표준 쿠버네티스 애플리케이션을 사용할 수 있습니다.
손쉬운 쿠버네티스 배포: 워커노드(Worker Node)와 관리형 제어 영역 간에 안전한 통신을 제공하고, 워커노드를 빠르게 프로비저닝하여 사용자는 제공된 컨테이너 환경 위에서 애플리케이션 구축에 집중할 수 있습니다.
편리한 쿠버네티스 관리: 엔터프라이즈 환경을 위해 대시보드를 통한 클러스터 정보 조회 및 클러스터 관리, 네임스페이스 관리, 워크로드 관리 기능 등 생성된 쿠버네티스 클러스터를 편리하게 사용하기 위한 다양한 관리 기능을 제공합니다.
서비스 구성도
제공 기능
Kubernetes Engine은 다음과 같은 기능을 제공합니다.
- 클러스터 관리: Kubernetes Engine 서비스 이용을 위해 클러스터를 생성하고 관리할 수 있습니다. 클러스터 생성 후 노드, 네임스페이스, 워크로드 등 운영에 필요한 서비스를 추가할 수 있습니다.
- 노드 관리: 노드란 컨테이너화된 애플리케이션을 실행하는 머신의 집합입니다. 모든 클러스터는 한 개 이상의 워커 노드를 가져야 애플리케이션 배포가 가능합니다. 노드는 노드풀을 정의해 사용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈, OS이미지를 가져야 하며, 여러 개의 노드풀 생성을 통해 유연한 배포 전략을 수립할 수 있습니다.
- 네임스페이스 관리: 네임스페이스는 쿠버네티스 클러스터 내의 논리적인 분리 단위이며, 네임스페이스별 접근 권한 또는 리소스 사용 한도를 지정하기 위해 사용됩니다.
- 워크로드 관리: 워크로드는 Kubernetes Engine에서 구동되는 애플리케이션입니다. 네임스페이스를 생성한 다음 워크로드를 추가하거나 삭제할 수 있습니다. 워크로드는 디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 항목별로 생성한 후 관리합니다.
- 서비스 및 인그레스 관리: 서비스는 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이며, 인그레스는 클러스터 외부에서 클러스터 내부로 HTTP와 HTTPS 경로를 노출하기 위해 사용합니다. 네임스페이스 생성 후 서비스, 엔드포인트, 인그레스 및 인그레스클래스를 생성하거나 삭제할 수 있습니다.
- 스토리지 관리: Kubernetes Engine 이용 시 사용할 스토리지를 생성하고 관리할 수 있습니다. 스토리지는 PVC, PV, 스토리지클래스 항목별로 생성한 후 관리합니다.
- 구성 관리: Dev/Prod 등 여러 환경에 따라 컨테이너 안쪽에서 변화하는 값들을 관리할 필요가 있을 때 환경 변수로 인해 별도의 이미지를 생성해 관리하는 것은 불편하고 비용적 낭비가 큽니다. 쿠버네티스에서는 외부에서 값들을 바꿀 수 있도록 환경 변수나 설정 값들을 변수로 관리해서 Pod가 생성될 때 넣어줄 수 있는대, 이때 컨피그맵과 시크릿을 이용할 수 있습니다.
- 권한 관리: 쿠버네티스 클러스터를 여러 사용자가 접속하는 경우 특정 API 또는 네임스페이스별로 권한을 부여해 접근 범위를 지정할 수 있습니다. 쿠버네티스의 역할 기반 권한 관리(RBAC, Role-based access control) 기능을 적용해 클러스터나 네임스페이스별로 권한을 설정할 수 있습니다. 클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩을 생성하고 관리할 수 있습니다.
구성 요소
컨트롤 플레인
컨트롤 플레인(Control Plane)은 Kubernetes Engine 서비스에서 마스터 노드 역할을 하는 곳입니다. 마스터 노드는 클러스터의 관리 노드로, 클러스터의 다른 노드를 관리하는 역할을 합니다. 클러스터는 Kubernetes Engine 서비스의 기본 생성 단위이며, 내부에 속한 노드 풀, 오브젝트, 컨트롤러 등에 대한 관리 용도로 사용됩니다. 사용자는 클러스터의 이름(클러스터명), 제어 영역, 네트워크, File Storage 등을 설정한 후 노드 풀을 클러스터 내 생성하여 사용합니다. 마스터 노드는 클러스터에 작업을 할당하고, 노드의 상태를 모니터링 하며, 노드 간 데이터 통신 역할을 합니다.
클러스터명 생성 규칙은 다음과 같습니다.
- 영문으로 시작하며 영문, 숫자와 특수문자(
-)를 사용하여 3~30자 이내로 설정 가능합니다. - 기 생성된 클러스터명과 중복되면 안됩니다.
워커노드
워커노드(Worker Node)는 클러스터의 작업 노드로, 클러스터의 작업을 수행하는 역할을 합니다. 워커노드는 클러스터의 마스터 노드로부터 작업을 할당 받아 수행하고, 클러스터의 마스터 노드에게 작업 결과를 보고하는 역할을 합니다. 노드 풀 및 네임스페이스 내 생성되는 모든 노드들이 워크노드의 역할을 합니다.
워커노드의 집합체인 노드 풀 생성 규칙은 다음과 같습니다.
- 노드 풀은 최소 1개 이상 생성되어야 애플리케이션 배포가 가능합니다.
- 노드 풀 내 노드는 최대 100개 생성 가능합니다.
- 최대 노드 수가 100대이므로 노드 풀 100개 면 노드 풀 당 노드 1개, 노드 풀 50개면 노드 풀 당 노드 2개 형태로 총 노드 수가 100대 내에서 자유롭게 생성 가능합니다.
- 노드 풀에 연결되는 Block Storage 설정이 가능합니다.
- 노드 풀에 속한 노드에 대한 서버 타입, 사이즈, OS이미지 설정이 가능하며 모두 동일해야 합니다.
- Auto-Scaling서비스를 통해 배포된 애플리케이션 요건에 따라 노드 풀 자동 확장/축소 설정이 가능합니다.
선행 서비스
해당 서비스를 생성하기 전에 미리 구성되어 있어야 하는 서비스 목록입니다. 자세한 내용은 각 서비스 별로 제공되는 가이드를 참고하여 사전에 준비해주세요.
| 서비스 카테고리 | 서비스 | 상세 설명 |
|---|---|---|
| Networking | VPC | 클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스 |
| Networking | Security Group | 서버의 트래픽을 제어하는 가상 방화벽 |
| Storage | File Storage | 네트워크를 통해 다수의 클라이언트가 파일을 공유하는 스토리지
|
