Y.Baek
Learning Archive of Baek
Y.Baek
전체 방문자
오늘
어제
  • 분류 전체보기 (8)
    • 소개 (0)
    • Machine Learning (0)
    • MLOps (0)
    • 개발, 인프라 (4)
    • 알고리즘 & 코딩테스트 (1)
    • 책 리뷰 (3)
    • 생각과 경험 (0)

태그

  • 짧은 후기
  • Kubernetes
  • 리뷰
  • 책리뷰
  • undo
  • History
  • 코딩테스트
  • Update
  • OKR
  • 뇌 과학
  • 강의
  • 책 리뷰
  • Python
  • Til
  • 알고리즘
  • 수학
  • udemy
  • 프로그래밍 언어
  • 일잘하는법
  • Kubectl

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
Y.Baek

Learning Archive of Baek

[kubernetes] Udemy "Kubernetes for the Absolute Beginners - Hands-on" 강의 리뷰
개발, 인프라

[kubernetes] Udemy "Kubernetes for the Absolute Beginners - Hands-on" 강의 리뷰

2022. 2. 7. 22:54

강의 내용 요약

강의가 끝난 시점에서 기억나는 내용을 정리해보자면...

 

단순히 말해 Kubernetes는 Orchestration 프로그램이다.

각각의 기능을 갖고 있는 Pod들을 wrapping하여 관리하고 연결함으로서 상호작용할 수 있도록 한다.

https://kubernetes.io/ko

 

Kubernetes

K8s를 어디서나 실행 쿠버네티스는 오픈소스로서 온-프레미스, 하이브리드, 또는 퍼블릭 클라우드 인프라스트럭처를 활용하는 데 자유를 제공하며, 워크로드를 사용자에게 관건이 되는 곳으로

kubernetes.io

 

예를 들어 Web application을 만든다고 하면 웹 페이지를 띄우는 기능도 필요하고 이와 상호작용할 수 있는 redis, db 등도 필요할 수 있다. 이 때 각 기능들을 Pod으로 띄우고 연결하는 역할을 하는 것이 Kubernetes다. 특정 Pod이 죽었을 때 되살리거나 부하를 조절하기 위해 Pod을 복제, 관리하는 등의 역할도 해준다!

 

Kubernetes로 운영하는 과정을 간략히 설명하자면, 개별적인 기능 단위인 Pod(웹 앱, db 등에 해당)을 생성, 관리하는 Deployment를 생성한다. 이를 Service라는 객체를 생성해서 외부 접근이나 내부 다른 Deployment들과 연결한다. Pod을 Service로 연결하는 것도 가능하긴 하지만 이렇게 하면Deployment의 장점을 활용하기 어렵다.

 

Deployment를 생성하면 Deployment는 ReplicaSet(Replication Controller도 비슷한 역할을 하지만 좀 더 old한 개념)을 생성하고 ReplicaSet은 정해진 수의 Pod을 유지하도록 생성, 삭제한다. 

 

Pod은 kubectl로 생성하는 가장 작은 기능 단위이며 실제 application이 구현되어 있는 container들을 포함한다.

 

ReplicaSet은 정해진 수 만큼의 Pod이 항상 정상적으로 살아있을 수 있도록 Pod이 죽으면 재생성하는 등의 역할을 한다.

 

Deployment를 통해 Pod의 버전을 업데이트(Update)할 수 있다. 특히 전체 Pod을 한번에 끄고 재생성하지 않고 하나씩 끄고 하나씩 재생성하는 식의 Rolling Update를 할 수 있으며 Pod을 예전 버전으로 되돌려 Update 이전으로 돌아가는 Rollback을 할 수있다. 

 

Deployment, Replica Set, Pod의 관계

 

Service는 각 Deployment나 Pod이 Networking할 수 있도록 하거나 외부에서 접속 가능하도록 port를 연결하고 접속 부하를 알아서 분배하는 등의 연결자 역할을 한다. 어떤 Netwoking을 생성하느냐에 따라 NodePort, ClusterIP, LoadBalancer 세 type으로 나뉜다.

 

이 정도만 정리가 되어도 간단한 웹 서비스를 호스팅 할 수 있다.

더보기

(예시) kubernetes로 웹 서비스 배포하기

웹 서비스 Deployment 생성

db Deployment 생성

웹과 db를 연결하는 Service(type: ClusterIP) 생성

웹 서비스를 외부와 연결하는 Service(type: NodePort) 생성

 

 

강의 후기

 

회사 Udemy 계정으로 수강한 kubernetes 기초 강의를 마무리했다.

간단한 kubernetes의 개념과 아주 간단한 데모를 해볼 수 있었다.

따라쓰기 수준의 데모지만 덕분에 기억에도 잘 남고 명령어, yaml과 친숙해질 수 있었다 아쉬운 점은 후반 Service, Networking 즈음에서는 데모가 별로 없어서 그런지 이해하기 어려웠고 집중력도 떨어졌다.

특히 GCP, AWS, Azure에서 kubernetes를 지원하는 서비스 intro하는 부분은 스킵했다.

 

듣다보니 나도 kubernetes를 활용해서 간단한 서비스를 만들어볼 수 있겠다는 자신감이 약간 생겼다.

물론 서버 준비와 호스팅이 아주 귀찮은 진입장벽이라 의지가 꺾일 것 같지만...

 

어렵고 이해 안가는 부분은 다음 수준의 강의로 보강해야겠다.

이러다 자격증(CKAD)까지 따면 좋을 것 같은데 내가 그렇게까지 열심히 kubernetes를 공부하는 것에 우선순위를 두는것이 맞는걸까라는 생각이 든다.

 

 

Reference

강의 url: https://www.udemy.com/course/learn-kubernetes

다음 수준 강의 url: https://www.udemy.com/course/certified-kubernetes-application-developer

'개발, 인프라' 카테고리의 다른 글

[Python] Iterable, Iterator, Generator, yield. [i for i in a]와 (i for i in a)가 다른 이유  (0) 2022.02.21
[kubernetes] kubectl --record, kubectl rollout undo  (0) 2022.02.08
[kubernetes] kubectl create vs apply ... and edit  (0) 2022.01.31
    '개발, 인프라' 카테고리의 다른 글
    • [Python] Iterable, Iterator, Generator, yield. [i for i in a]와 (i for i in a)가 다른 이유
    • [kubernetes] kubectl --record, kubectl rollout undo
    • [kubernetes] kubectl create vs apply ... and edit
    Y.Baek
    Y.Baek
    ML Engineer 더 잘 기억하기 위해 기록합니다.

    티스토리툴바