본문 바로가기
INFRA

[쿠버네티스(k8s)] 한달 학습 계획 (입문자용)

by place-g 2025. 4. 21.
반응형

쿠버네티스 학습 개요

더보기

✅ 1단계: 컨테이너 & Docker 이해

쿠버네티스는 기본적으로 컨테이너 오케스트레이션 툴이기 때문에, 먼저 컨테이너 자체를 이해해야 한다.

배울 것

  • 컨테이너란 무엇인가?
  • Docker 이미지, 컨테이너, Dockerfile 작성법
  • docker build, docker run, docker ps 등 기본 명령어
  • 포트 바인딩, 볼륨 마운트, 네트워크

추천 실습

  • 간단한 웹 서버 이미지를 Docker로 만들어보고 실행
  • docker-compose로 2개 이상의 컨테이너 구성

✅ 2단계: 쿠버네티스 개념 입문

Docker에 익숙해졌다면 이제 K8s의 큰 그림을 이해해보자.

배울 것

  • 쿠버네티스란 무엇인가? (왜 필요한가?)
  • 주요 개념: 클러스터, 노드, 파드(Pod), 컨트롤 플레인
  • kubectl 사용법
  • YAML 설정 파일 기본 구조

추천 실습

  • Play with Kubernetes로 실습
  • Minikube 또는 Docker Desktop으로 로컬 클러스터 구성
  • kubectl run, kubectl expose, kubectl get pods 써보기

✅ 3단계: 핵심 리소스 구조 학습

배울 것

  • Pod / Deployment / ReplicaSet의 관계
  • Service: ClusterIP, NodePort, LoadBalancer
  • ConfigMap, Secret으로 설정 주입
  • Namespace 활용
  • Volume, PVC를 통한 스토리지 처리

추천 실습

  • nginx 배포 → 버전 변경 → 롤링 업데이트 진행
  • 환경변수 주입된 웹 앱 배포
  • Pod를 수평 확장하고 Service로 노출

✅ 4단계: 애플리케이션 운영 관점 학습

배울 것

  • Liveness / Readiness Probe
  • 리소스 제한 설정 (CPU, memory)
  • 로깅 & 모니터링 (basic: kubectl logs)
  • Helm 기본 사용법

추천 실습

  • 장애 감지용 Probe 설정하고 확인
  • kubectl top으로 리소스 모니터링
  • Helm Chart 설치로 패키지형 앱 배포 (예: nginx, Redis)

✅ 5단계: 실전 운영 & 클러스터 관리

배울 것

  • Ingress Controller로 외부 트래픽 라우팅
  • RBAC, ServiceAccount, 인증/인가
  • Autoscaling (HPA, VPA)
  • StatefulSet, DaemonSet 이해
  • 실제 클라우드 환경 (EKS, GKE, AKS 등) 접속

추천 실습

  • Ingress로 여러 앱 도메인 분기 처리
  • HPA 설정 → 부하 테스트 → 자동 확장 확인
  • 권한이 제한된 계정으로 리소스 조회 시도

✅ 6단계: CI/CD 및 클라우드 연동

  • GitHub Actions + ArgoCD or Flux로 GitOps 구성
  • Kubernetes + Prometheus + Grafana 모니터링 구성
  • 실제 서비스 배포 파이프라인 설계 및 적용

🎁 추가 팁

  • 📚 추천 자료
    • 공식 문서: https://kubernetes.io/ko
    • 유튜브 "생활코딩", "나도코딩", "Kubernetes Academy"
    • 책: 『쿠버네티스 완벽 가이드』, 『핵심만 골라 배우는 쿠버네티스』
  • ✅ 추천 실습 환경

 

✅ [0단계] 사전 준비: 용어 감 잡기 (하루~이틀)

2025.04.21 - [INFRA] - [쿠버네티스(k8s)] [0단계] 사전 준비: 용어 감 잡기 (하루~이틀)

 

[쿠버네티스(k8s)] [0단계] 사전 준비: 용어 감 잡기 (하루~이틀)

쿠버네티스(Kubernetes)를 배우기 전에 꼭 먼저 알아야 할 것들이 있어요.바로 컨테이너, Docker, 그리고 쿠버네티스 자체에 대한 큰 그림이에요.처음 접하는 분들도 이해할 수 있도록 최대한 쉽게 풀

place-g.tistory.com

 

🔍 쿠버네티스가 뭔지 전혀 감이 안 온다면 이 단계 먼저!

  • 유튜브 영상으로 개념 빠르게 훑기
  • 예: 생활코딩 - 쿠버네티스, 드림코딩 Kubernetes 입문
  • 아래 용어만 알아두기 (아직 깊이 공부하진 않아도 됨)
    • 컨테이너, 도커, 이미지, 배포
    • 클러스터, 노드, 파드(Pod), 서비스

✅ 1주차: Docker & 컨테이너 개념 잡기 (기초 중 기초)

🎯 목표: 컨테이너 개념 이해 + Docker 명령어 실습
📦 쿠버네티스는 Docker를 모르고는 시작하기 힘들어!

📚 이론

  • 컨테이너란? (기존 VM과의 차이)
  • Docker란 무엇인가?
  • 이미지 vs 컨테이너 개념
  • Dockerfile, docker build, docker run 등

💻 실습

  • 간단한 Node.js나 Python 웹 서버를 Docker 이미지로 빌드
  • docker ps, docker exec, docker logs 써보기
  • docker-compose로 웹 + DB 컨테이너 구성해보기

✅ 2주차: 쿠버네티스 구조 이해 + 첫 실습

🎯 목표: 쿠버네티스 구성 요소 이해 + 간단한 앱 배포
🧠 이 단계부터 진짜 쿠버네티스를 접하게 됨

📚 이론

  • 쿠버네티스란? 왜 쓰는가?
  • 기본 구성 요소
    • 클러스터, 노드, 파드(Pod), ReplicaSet, Deployment
    • Service (ClusterIP, NodePort)

💻 실습

  • Minikube 또는 Docker Desktop 설치해서 로컬 클러스터 구성
  • kubectl run, kubectl expose, kubectl get pods 등 명령어 실습
  • nginx 같은 간단한 앱을 배포해보기
  • YAML 설정파일 작성: pod.yaml, deployment.yaml

✅ 3주차: 환경 설정 + 운영 관점 익히기

🎯 목표: 설정, 환경변수, 볼륨, 리소스 제어 등 현실적인 운영 요소 익히기

📚 이론

  • ConfigMap, Secret으로 환경 설정 주입
  • 볼륨 & PVC 개념
  • 리소스 제한 (CPU, Memory)
  • Readiness & Liveness Probe

💻 실습

  • 환경변수를 주입해서 동작이 달라지는 앱 배포해보기
  • 일부러 앱이 죽도록 설정하고 헬스체크 작동 확인
  • 리소스 제한을 설정한 뒤 kubectl top으로 모니터링

✅ 4주차: 서비스 노출 + 실전 패턴 맛보기

🎯 목표: 외부와 연결, 자동 확장, 실전 서비스 운영 감각 익히기

📚 이론

  • Service Type 정리: NodePort vs LoadBalancer vs Ingress
  • HPA (Horizontal Pod Autoscaler)
  • Helm으로 앱 설치하기

💻 실습

  • Ingress Controller 설치 + 여러 앱 도메인 분기 처리
  • HPA로 자동 확장 설정 후 부하 테스트
  • Helm으로 Redis, nginx 같은 앱 설치해보기

📌 보너스: 계속해서 성장하고 싶다면?

  • 클라우드 쿠버네티스 (EKS, GKE 등)
  • CI/CD 도입 (ArgoCD, GitHub Actions)
  • 모니터링 (Prometheus, Grafana)
  • GitOps 방식 운영

💡 추천 학습 자료

  • 📘 책: 『핵심만 골라 배우는 쿠버네티스』, 『쿠버네티스 완벽 가이드』
  • 🎥 유튜브 채널: 드림코딩, 테크보이 워니, 조코딩
  • 🖥️ 실습 환경: Play with Kubernetes, Minikube, Docker Desktop
반응형

'INFRA' 카테고리의 다른 글

[쿠버네티스(k8s)] [0단계] 사전 준비: 용어 감 잡기 (하루~이틀)  (0) 2025.04.21
[리눅스] 배치 실행 스크립트  (1) 2025.02.28
NAS서버 동기화 문제  (0) 2025.02.28
[Nginx] SSL 통신 오류  (0) 2025.02.27
vi 커멘트  (0) 2025.02.27