티스토리 뷰
[GCP/Cloud] Google Cloud Platform - 컨테이너
컨테이너란 무엇인가
컨테이너란? 애플리케이션을 실제 구동 환경으로부터 추상화할 수 있는 논리 패키징 메커니즘을 제공
분리를 통해 사설 데이터 센터나 퍼블릭 클라우드, 심지어 개발자의 개인 노트북 컴퓨터에 이르기까지 어떤 환경으로든 컨테이너 기반 애플리케이션을 쉽게 지속적으로 배포가능
가상머신 vs 컨테이너
가상 머신(VM) | 컨테이너 |
- 호스트 운영체제에서 구동 - 하드웨어에 가상으로 액세스하는 Linux, Windows 등의 게스트 운영체제를 의미 |
- 애플리케이션을 실제 구동 환경으로부터 추상화할 수 있는 논리 패키징 메커니즘을 제공 - 컨테이너를 사용하면 개발자와 IT 운영팀이 훨씬 작은 단위로 업무를 수행 |
컨테이너를 사용해야 하는 이유
가상 머신은 하드웨어 스택을 가상화
컨테이너는 이와 달리 운영체제 수준에서 가상화를 실시하여 다수의 컨테이너를 OS 커널에서 직접 구동
컨테이너는 훨씬 가볍고 OS 커널을 공유하며, 시작이 훨씬 빠르고 OS 전체 부팅보다 메모리를 훨씬 적게 차지
컨테이너의 이점 | 가상머신의 이점 | |
일관성 있는 런타임 환경 | ○ | ○ |
애플리케이션 샌드박스화 | ○ | ○ |
디스크 용량 절감 | ○ | |
낮은 오버헤드 | ○ |
Kubernetes
Kubernetes? 머신 및 서비스 관리를 대행하는 자동화된 컨테이너 조정 기능을 제공
안정성이 높아지고 관리 작업의 부담이 해소될 뿐만 아니라 DevOps에 써야 하는 시간과 리소스도 절감
애플리케이션의 배포 및 관리와 관련된 모든 작업이 한층 간편
어디서나 사용할 수 있도록 설계되어 사내, 퍼블릭 클라우드, 혼합된 하이브리드 등 다양한 환경으로 배포가 가능
* Kubernetes의 특징
✔ 출시 및 롤백 자동화
✔ 서비스 상태 모니터링
✔ 서비스 규모 자동 조절
✔ 선언형 관리
✔ 폭넓은 배포 환경(하이브리드 배포 포함)
Docker을 이용한 Google Cloud Platform, Google Kubernetes Engine
(1) Google Cloud Platform
- Kubernetes는 Google Cloud Platform에서 가장 효과적으로 작동
(2) Google Kubernetes Engine
- (고급) 빠르게 구성을 완료하고 애플리케이션을 출시할 수 있게 해주는 고급 관리형 Kubernetes 솔루션
- 컨테이너를 가장 잘 아는 Google의 안정성 담당 엔지니어가 전담 관리하여 클러스트의 가용성을 높이고 최신 상태를 유지
- Stackdriver Monitoring, Diagnostics, Logging과 같은 모든 GCP 서비스, ID 및 액세스 관리, Google의 동급 최고 네트워킹 인프라와 완벽하게 통합
* Kubernetes의 특징
✔ 관리형 오픈소스 Kubernetes
✔ 99.5% 수준의 높은 통합 멀티 영역 배포 가용성을 보장하는 SLA(Service-Level Agreement, 서비스 수준 계약)
✔ 기타 GCP 서비스와의 원활한 통합
✔ 높은 유연성, 온프레미스 클러스터 또는 외부 클라우드 공급업체와의 상호 운용성
(3) Google Cloud Run
(4) Google Compute Engine
Google Kubernetes Engine
획기적인 Autopilot 모드의 작업을 지원하는 안전한 완전 관리형 Kubernetes 서비스
✔ 특징
(1) Autopilot 모드의 작업
- 노드 없는 경험을 제공하는 사전 구성된 워크로드 설정으로 클러스터를 최적화
- Google에서 노드를 포함한 전체 클러스터의 기본 인프라를 관리
- 액세스를 Kubernetes API로만 제한하고 노드 변경을 막아 애플리케이션 보안을 강화하고 운영 효율성을 극대화
- 시스템 구성요소, 운영체제 오버헤드 또는 할당되지 않은 용량이 아닌 실행 중인 pod에 대해서만 비용을 지불
(2) Pod 및 클러스터 자동 확장
- CPU 사용률 또는 커스텀 측정항목에 기반한 수평형 pod 자동 확장
- 노드 풀별로 실행되는 클러스터 자동 확장
- 지속적으로 pod의 CPU 및 메모리 사용량을 분석하고 이에 따라 해당 CPU 및 메모리 요청을 동적으로 조정하는 수직형 pod 자동 확장을 제공
- 변화하는 워크로드 요구사항을 바탕으로 여러 노드 풀에서 노드 풀과 클러스터를 자동 확장
(3) Kubernetes 애플리케이션
- 사전 빌드된 배포 템플릿이 포함된 컨테이너화된 기업용 솔루션으로 이동성, 간소화된 라이선스, 통합 결제를 지원
- 단순한 컨테이너 이미지가 아니라 Google에서 빌드한 상용 오픈소스 애플리케이션으로, 개발자의 생산성을 높여줌
(4) 워크로드 및 네트워크 보안
- GKE에서 컨테이너화된 워크로드 간의 2차 방어 레이어를 제공해 워크로드 보안을 강화
- GKE 클러스터는 기본적으로 Kubernetes 네트워크 정책을 지원하여 pod 수준의 방화벽 규칙에 따라 트래픽을 제한
- GKE에서 비공개 클러스터는 비공개 엔드포인트 또는 특정 주소 범위에서만 액세스할 수 있는 공개 엔드포인트로 제한가능
✔ 사례
출처
1. GOOGLE의 컨테이너
2. 구글 쿠버네티스 엔진
3.
4.
5.
'Programming > Cloud' 카테고리의 다른 글
[GCP/Cloud] Google Cloud Platform - 보안 및 ID (0) | 2021.04.07 |
---|---|
[GCP/Cloud] Google Cloud Platform - 네트워킹 (0) | 2021.04.07 |
[Azure/Cloud] Microsoft Azure (0) | 2021.04.07 |
[GCP/Cloud] Google Cloud Platform - 컴퓨팅 (0) | 2021.04.07 |
[AWS/Cloud] AWS - Networking & Content Delivery (0) | 2021.04.03 |