44,000원
초급자를 위해 준비한
[데브옵스 · 인프라, 클라우드] 강의입니다.
실습을 통해 쿠버네티스의 핵심 개념과 마이크로 서비스 아키텍처의 원리를 이해합니다.
이런 걸
배워요!
처음 배우는 쿠버네티스, 실습으로 쉽게!
클라우드/서버 환경의 표준
쿠버네티스 기초 바로잡기
클라우드/서버 앱 개발의 시작, 쿠버네티스
이 강의에서는 쿠버네티스 환경에서 애플리케이션을 개발하고 배포하는 과정을 실습하고, 쿠버네티스의 핵심 개념과 마이크로서비스 아키텍처(MSA)의 설계 원리를 이해합니다.
클라우드/서버 환경은 알아야 할 내용도 많고 복잡합니다. 또한, 계속 바뀌고 발전하고 있습니다. 이에 시작하는 사람들이 접근하기 쉽지 않습니다.
쿠버네티스(Kubernetes, k8s)는 클라우드/서버 환경의 표준이라고 할 수 있습니다. AWS, Google, Microsoft 등 주요 클라우드 공급자도 쿠버네티스를 지원하는 만큼, 쿠버네티스는 클라우드/서버 개발을 위해 가장 먼저 알아야 할 지식이라고 할 수 있습니다.
실습으로 배우는 쿠버네티스 by Minikube
미니큐브(Minikube)로 PC 환경에 쿠버네티스 환경을 구성할 수 있습니다. 즉, 연결된 서버가 없더라도 클라우드/서버 개발을 공부할 수 있습니다.
이 강의에서는 미니큐브로 쿠버네티스 환경을 구성하며 간단한 예제 어플리케이션 개발을 실습합니다. 실습을 통해 쿠버네티스의 핵심 개념을 이해하고, 클라우드/서버 개발자로서의 기초를 다져봅시다!
쿠버네티스가 처음인 당신을 위한
따라 시작하는 쿠버네티스 101
💡 쿠버네티스를 처음 접하는 분들을 위해 단계별로 설명을 진행합니다. 따라하면서 공부하시면 어렵지 않게 쿠버네티스 및 클라우드/서버 개발을 익히실 수 있습니다.
추천 학습자 ✅
- 쿠버네티스를 알고 싶은 분
- 클라우드/서버 개발에 대해 배우고 싶은 분
- 마이크로서비스 아키텍처(MSA)에 관심있는 분
다루는 기술 ✅
- Minikube, Kubernetes
- Node.js, Docker, YAML, Redis DB
핵심 학습 내용 ✅
- 쿠버네티스의 핵심 개념을 이해하고 서비스를 구성할 수 있습니다.
- pod, deployment, replicaset, statefulste, autoscaler
- service, ingress, persistent volume
- 클라우드/서버 개발 과정을 이해하고 앱을 개발할 수 있습니다.
- Node.js 웹 서버 개발 - 빌드 - 배포
- Visual Studio Code + Google Cloud Code
수업 영상에 자막을 제공합니다. 초보자도 쉽게 따라 실습할 수 있습니다.
상세 커리큘럼 📚
커리큘럼 전체
학습 목표
이 강의에서는 3개의 마이크로서비스로 구성된 counter 앱을 개발하고 쿠버네티스에 배포합니다. 이를 통해 쿠버네티스의 핵심 개념과 마이크로서비스 아키텍처의 기본 원리를 이해합니다.
- ingress API gateway는 요청을 서비스로 전달합니다.
- web-inc 서비스는 count 증가 요청(INC)을 처리합니다.
- web 서비스는 count 값에 대한 요청(GET)을 처리합니다.
- redis 서비스는 count 값을 저장합니다.
섹션 1
kubectl 명령으로 쿠버네티스 다루기
쿠버네티스 명령 도구인 kubectl을 이용해서 쿠버네티스 구성 요소를 생성하고 관리하는 방법에 대해서 실습합니다.
- 웹 서버인 nginx 이미지를 사용해 deployment로 배포합니다.
- service로 nginx pod를 노출시킵니다.
- ingress API gateway를 생성해서 service를 연결합니다.
섹션 2
쿠버네티스에서 Node.js 앱 개발하기
간단한 웹 서비스를 개발하고 쿠버네티스에 배포합니다. YAML 파일로 쿠버네티스 구성 요소를 명세하고 관리하는 방법에 대해서 설명합니다.
- Node.js HTTP 모듈로 웹 서비스를 개발합니다.
- 개발된 웹 서비스의 배포를 위해 도커(Docker) 이미지를 생성(빌드)합니다.
- 생성한 이미지를 deployment로 배포합니다.
- service로 deployment가 생성한 pod를 노출합니다.
쿠버네티스 환경에서 클라우드/서버 앱을 개발하는 기본적인 프로세스를 실습합니다. (개발 - 이미지 빌드 - 배포) 섹션 2의 소스 코드는 github에서 확인할 수 있습니다.
섹션 3
Counter 앱 만들기
count 값을 persistent volume에 파일로 저장하고 이를 서비스하는 counter 앱을 개발합니다.
Google Cloud Code를 사용해서 빌드와 배포를 자동화하는 방법에 대해서 실습합니다. 섹션 3의 소스 코드는 github에서 확인할 수 있습니다.
섹션 4
Redis(레디스) DB로 Counter 앱 완성하기
count 증가 요청을 처리하는 web-inc 서비스, count 값을 반환하는 web 서비스, Redis DB에 count 값을 저장하는 redis 서비스로 구성된 이 강의 최종 구조를 구현합니다.
- 상태를 저장할 필요가 없는(stateless) web, web-inc 서비스는 deployment로 구성합니다.
- 상태를 저장해야 하는 redis 서비스는 statefulset으로 구성합니다.
- Redis DB를 master-slave 구조로 설정합니다.
- 요청에 따라 서비스를 라우팅 하는 ingress API gateway를 설정합니다.
- CPU 부하에 따라 pod의 개수를 자동으로 조정하도록 autoscaler도 설정합니다.
섹션 4의 소스 코드는 github에서 확인할 수 있습니다.
Q&A 💭
Q. 강의를 듣기 전, 알아야 할 것이 있나요?
- 이 강의는 실습을 통해 학습하므로 특별한 선수 지식이 필요한 것은 아닙니다.
- 단, 컴퓨터/네트워크 및 프로그래밍에 대한 기초 지식과 경험은 필요할 수 있습니다.
- 천천히 따라 하시면 됩니다.
이런 분들께 추천드려요!
학습 대상은
누구일까요?
선수 지식,
필요할까요?
드라진 입니다.
소프트웨어 아키텍트 & 교육가
• 현) 보이는소프트웨어연구소 대표(2016~현재)
- 삼성전자 소프트웨어 아키텍트 양성 및 인증
- 소프트웨어 구조 설계 및 평가 교육 / 컨설팅
• 중앙대학교 소프트웨어 대학 겸임 교수(2018~2022)
- 기초 컴퓨터 프로그래밍 - C/C++, JavaScript, Python
• 삼성전자(2003~2016)