IBM Cloud 1기 활동 - 강의번역 프로젝트.
원본 강의
cognitiveclass.ai/courses/kubernetes-course
강의의 한글자막 제공을 위해 srt 파일로 번역하는 프로젝트를 진행 중입니다.
문맥이 어색하거나 내용이 잘못되었다고 느껴지시면 댓글로 남겨주세요.
이제 컨테이너 이미지를 빌드하고 저장하는 방법을 포함하여 컨테이너 이미지의 기본 사항을 배웠습니다. 이번에는 컨테이너 오케스트레이션 이라는 개념을 통해 여러 개의 컨테이너가 실행되고 있는 복잡한 환경을 만드는 법을 이해해 보겠습니다.
누구든, 처음에는 하나의 컨테이너로 시작합니다. 지난 모듈에서 했던 것처럼요. 하지만 물론, 이런 식으로 오래 머무르지는 않습니다. 시간이 지나며 새로운 애플리케이션을 작성 및 배포해야 할 것이고, 애플리케이션이 커지면서 독립적으로 작동할 새로운 컴포넌트를 사용하게 될 수 있습니다. 프로젝트 자체도 가용성을 높이기 위해 점차 규모가 커집니다. 처음 한 개의 초기 컨테이너가 곧 여러 개가 됩니다.
처음에는, 컨테이너 개수의 성장을 제어하기 쉽습니다. 하지만, 곧 압도당하게 됩니다. 혼란이죠. 컨테이너가 증가하고 발전할수록, 컨테이너의 생명주기를 관리할 수 있는 도구가 필요해집니다.
컨테이너 오케스트레이션은 다양한 주제를 포괄합니다. 여기에서는 특히 중요한 여섯 가지를 다루겠습니다.
- 컨테이너 오케스트레이션은 컨테이너의 프로비저닝과 컨테이너 배포 과정을 보다 자동화되고, 통합된 프로세스가 될 수 있도록 지원합니다.
- 컨테이너 오케스트레이션은 또한 컨테이너의 중복과 사용 가능성을 보장하여 애플리케이션이 최소한의 다운타임을 겪도록 합니다.
- 필요에 따라 컨테이너를 확장하고 축소할 수 있으며, 인스턴스 간 로드 밸런싱을 수행해서 특정 인스턴스에만 과한 트래픽이 몰리지 않도록 지원합니다.
- 기본 인프라에 대한 컨테이너의 스케줄링을 처리합니다.
- 마지막으로, 컨테이너 오케스트레이션 도구는 애플리케이션이 작동하는지 상태 검사를 수행하고, 상태 검사에서 문제를 감지할 경우 필요한 조치를 취합니다.
상술한 기능은 컨테이너 오케스트레이션에서 통제하고 자동으로 관리해주는 컨테이너 생명주기 관리의 일부 측면일 뿐이지만, 이어지는 강의와 실습에서 우리가 다룰 내용입니다.
컨테이너 오케스트레이션 도구에는 여러 가지가 있지만, Kubernetes는 그 중 최고의 플랫폼입니다. 공식 Kubernetes 문서에서는 Kubernetes를 "선언적 구성 또는 자동화 방식으로 컨테이너화 된 워크로드 및 서비스를 관리할 수 있는 컨테이너화 된 워크로드 및 서비스를 관리할 수 있는 편리하고, 확장성 있는 오픈 소스입니다. 아주 크고, 빠르게 성장하고 있는 오픈소스 프로그램 중 하나입니다. Kubernetes 서비스, 지원 및 도구를 어디서든 사용할 수 있습니다" 라고 소개했습니다.
이 설명은 Kubernetes에 대한 몇 가지 핵심 사항을 강조합니다.
첫째, Kubernetes는 오픈 소스 소프트웨어입니다. 전 세계의 다양한 기업과 산업군에서 Kubernetes 프로그램에 기여하고 있으며, 코드와 로드맵 등 관련 정보는 온라인에서 찾을 수 있습니다. Kubernetes는 컨테이너 오케스트레이션 플랫폼으로 특별히 설계되었습니다.
Kubernetes는 곧 다루게 될 '선언적 관리'를 쉽게 할 수 있도록 지원합니다. 간단히 말해서, 선언적 관리는 '사용자가 원하는 상태를 표현할 수 있다'는 것입니다. 예를 들어, 특정 애플리케이션의 복본 개수를 선언하면, Kubernetes는 현재 상태가 선언한 상태와 같아지도록 작업합니다.
Kubernetes는 아주 규모가 크고, 꾸준히 성장하는 생태계를 보유하고 있습니다. Kubernetes 사용을 편리하게 해 주는 다른 종류의 공개 및 독점 프로젝트도 진행 중입니다.
마지막으로 Kubernetes는 널리 사용 가능하며, 사실상 컨테이너 오케스트레이션의 대명사로 자리잡았습니다.
platform as a service 또는 PaaS라는 용어는 정해진 대로만 사용할 수 있는, 모든 것이 구비된 형태의 플랫폼을 보통 의미합니다. 이런 형태의 플랫폼은 편리하고, 상당히 많은 종류의 서비스를 즉시 사용할 수 있습니다. 하지만 정해진 대로만 사용할 수 있는 형태의 서비스가 대부분이므로, 사용자가 원하는 솔루션을 적용해서 사용하기는 어렵습니다.
반면, Kubernetes는 적절하게 적용할 수만 있다면, 사용자에게 선택권을 제공하는 유연한 형태의 플랫폼입니다. 예컨대 Kubernetes는 실행할 수 있는 애플리케이션의 유형을 제한하지 않습니다. 컨테이너화가 가능하기만 하면, 어떤 언어나 프레임워크라도 사용할 수 있습니다. 애플리케이션이 컨테이너에서 실행된다면, Kubernetes에서도 실행할 수 있습니다.
Kubernetes는 애플리케이션을 빌드하고 소스코드를 배포할 수 있는 CI / CD 파이프라인을 제공하지 않습니다. 이런 종류의 도구는 사용자가 원하는 대로 선택하고 활용할 수 있습니다.
마찬가지로, 로깅, 모니터링 및 경고 솔루션도 사용자에게 선택권이 주어집니다. 써드파티 또는 오픈소스 도구를 선택해서 통합할 수 있습니다.
이제 컨테이너 오케스트레이션, 특히 Kubernetes가 무엇을 제공하고 제공하지 않는지 확인했으니 Kubernetes 아키텍처의 세부 사항을 자세히 살펴 보겠습니다. 이제 여러분은 컨테이너 오케스트레이션이 왜 필요한지, 그리고 가장 인기있는 컨테이너 오케스트레이션 도구인 Kubernetes가 무엇인지 배웠습니다. 또한 Kubernetes가 무엇을 제공하고 제공하지 않는지 대략적으로 이해했습니다.
이 정보를 토대로, Kubernetes 아키텍처의 세부 사항을 다음 강의에서 배우게 될 것입니다.
'학습일지 > 클라우드' 카테고리의 다른 글
[IBM Cloud 강의번역 프로젝트] - ch2-3. Introduction to Kubernetes Objects (1) | 2020.09.05 |
---|---|
[IBM Cloud 강의번역 프로젝트] - ch2-2. Kubernetes Architecture (0) | 2020.09.04 |
[IBM Cloud 강의번역 프로젝트] - ch1-4. Docker Container Registry (0) | 2020.09.02 |
[IBM Cloud 강의번역 프로젝트] - ch1-3. Building Container Images (0) | 2020.09.01 |
IBM Cloud의 Hands-on Training - lab.cognitiveclass.ai (0) | 2020.08.27 |