개발 · 프로그래밍

/

데브옵스 · 인프라

쿠버네티스 101 - 클라우드/서버 개발 첫걸음

실습을 통해 쿠버네티스의 핵심 개념과 마이크로 서비스 아키텍처의 원리를 이해합니다.

(5.0) 수강평 3개

수강생 81명

Thumbnail

초급자를 위해 준비한
[데브옵스 · 인프라, 클라우드] 강의입니다.

이런 걸
배워요!

  • 쿠버네티스의 핵심 개념

  • 클라우드 앱의 개발 및 배포 과정

  • 마이크로 서비스 아키텍처의 원리

  • 구글 클라우드 코드(SDK)

처음 배우는 쿠버네티스, 실습으로 쉽게!

클라우드/서버 환경의 표준
쿠버네티스 기초 바로잡기 

클라우드/서버 앱 개발의 시작, 쿠버네티스

이 강의에서는 쿠버네티스 환경에서 애플리케이션을 개발하고 배포하는 과정을 실습하고, 쿠버네티스의 핵심 개념과 마이크로서비스 아키텍처(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)

커리큘럼

전체

31개 ∙ (3시간 10분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!