교육, 커뮤니티 후기/인프런 교육

<인프런> 대세는 쿠버네티스 [초급] - No.5 Kubernetes Overview

Somaz 2022. 8. 29. 13:20
728x90
반응형

Kubernets Overview

오늘은 Kubernetes의 전반적인 개념 중 Object와 Controller의 역할에 대해 간단하게 정리해보았다.
Kubernetes는 분산된 컨테이너 환경을 효율적이고 유연하게 관리하기 위한 오케스트레이션 플랫폼이다.


Master 노드와 여러 Worker 노드로 구성되어 있으며, 이 구조 안에서 다양한 Object(자원)와 Controller(제어기)가 존재하여 클러스터를 자동화하고 안정적으로 운영할 수 있게 한다.

 

 

학습 내용은 다음과 같이 구성되었다:

  • Object: Pod, Service, Namespace, Volume, ConfigMap, Secret 등
  • Controller: ReplicationController, ReplicaSet, Deployment, DaemonSet, Job, CronJob
  • 기능 요약: Auto Healing, Auto Scaling, Rollback, Scheduled Task 실행 등

 

 

 

 

 


 

 

 

 

Object

 

Kubernetes는 서버 한대는 master로 쓰고 나머지는 node로 써서 연결이 된다. master는 Kubernetes 전반적인 기능들을 컨트롤하는 역할이고 node들은 자원을 제공한다. 만약, 전체자원을 늘리고 싶다면 node를 추가하면 된다.

 

그리고 Cluster안에 Namespace라는 안에 Kuberenets Object들을 독립된 공간으로 나누어 준다.

namespace 에는 kubernetes 최소 배포단위인 Pod들이 있고 pod들에게 외부로부터 연결이 가능하도록 IP를 할당해주는 Service가 있어서 연결을 할 수 있다. 그러나 서로 다른 namespace를 가지고 있는 pod들 끼리는 연결을 할 수 없다.

 

namespace 에는 ResourceQuota / LimitRange를 설정해서 한 namespace에서 사용할 수 있는 자원의 양을 한정시킬 수 있다.

pod의 개수를 제한 할 수도 있고, CPUMemory도 제한할 수 있다.

 

pod  생성 시 container 안에 환경변수 값을 넣어준다거나, 파일을 mount해줄 수 있는데, ConfigMap이나 Secret을 통해서 셋팅을 해준다.

 

pod 안에는 여러 개의 Container들이 있고,  container 하나 당 하나의 app이 동작한다. 따라서, pod에는 여러 app들이 돌아 가고 있다. 그러나, pod에 문제가 생겨서 재 생성이 되면, 그 안에 있는 Data들이 날아간다.

 

그래서 Volume을 만들어서 pod에 연결을 하면 Data는 이 곳에 별도로 저장을 할 수 있으니, pod가 재 생성되어도 data가 날아가는 문제를 해결할 수 있다.

 

 

 

Controller

Replication Controller, ReplicaSet이 기본적인 Controller이다. pod가 죽으면 감지해서, 다시 살려준다든지 pod의 개수를 늘리거나 줄일 수 있다. (Auto Healing / Auto Scaling)

 

Deployment는 배포 후에 pod들을 새 버전으로 업그레이드를 해준다. 업그레이드 도중에 문제가 생기면 Rollback을 도와준다.

 

DaemonSet은 한 node에 pod가 하나씩만 유지가 되도록 하게 해준다. 이렇게 사용해야 되는 module들이 있다.

Job은 특정 작업만 하고 종료시켜야 할 때, 사용을 한다. 주기적으로 사용을 해줘야 할때는 CronJob을 사용한다.

 

 

지금까지 초급편에서 배울 내용을 간단하게 정리해보았다.

 

 

 


 

 

 

마무리

이번 학습을 통해 Kubernetes의 핵심 요소인 Object와 Controller의 역할을 이해할 수 있었다.
각 Object는 독립적으로 존재하는 것이 아니라 서로 유기적으로 연결되어 클러스터를 구성하며,


Controller는 이러한 Object들을 지속적으로 감시하고 자동화하는 중요한 역할을 한다.

  • Pod는 Kubernetes의 최소 실행 단위이며, 컨테이너들을 묶는 그릇이다.
  • Service는 Pod에 외부 접속을 가능하게 하는 IP 및 라우팅 수단이다.
  • Volume은 데이터를 안전하게 보관하기 위한 저장소 연결 방식이다.
  • Controller들은 클러스터의 상태를 유지하고, 배포·업데이트·복구를 자동으로 수행한다.

 

앞으로의 학습에서는 Ingress, Helm, Metrics, Autoscaling과 같은 실전 운영에 필요한 고급 기능들도 하나씩 익혀가며,
실제 클러스터 환경에서 Kubernetes를 더 잘 활용할 수 있는 역량을 키워나가보자.

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

728x90
반응형