DevOps BootCamp/쿠버네티스

쿠버네티스-작동원리

cloudmaster 2023. 5. 5. 18:23

쿠버네티스

 

 > 클라우드 서비스 프로바이더가 아님

 > AWS, Microsoft Azure의 대안도 아님

 

Cluster(배포 혹은 원하는 최종 상태를 구성하는 모든 것의 컬렉션 세트)
Master Node
  : Control Plane -> Pod 및 container 제어
  : API Server(Worker Node와 통신)
  : Scheduler(Pod를 감시) - API에 알림
  : Kube-Controller-Manager(Worker Node 전체를 감시하고 제어)
    -> 적당한 수의 포드를 가동 중에 있는지 확인하는 역할
  : Cloud-Controller-Manager(클라우드 프로바이더에 따라 다름)
    -> 클라우드 프로바이더에게 무슨 일을 해야 하는 지 알려줌

Worker Node
 = ec2 인스턴스(가상 머신)
  : Docker,
  : kubelet(Master Node와 통신을 위해서)
  : kube-proxy 서버 
    > Pod는 Worker Node에서 자신을 실행
    > 2개 이상의 Pod를 실행시킬 수 있음
    > 포드 네트워크 트래픽의 제어를 설정하는 또 다른 도구
    > 인바운드, 아웃바운드
  : Pod(container)
    > 여러 컨테이너를 포함할 수도 있음
    > 임시적

Services
 > 논리적 세트
 > 독립적인 IP 주소를 가진 Pod 그룹
 > 특정 IP 주소 또는 도메인으로 특정 Pod를 연결할 수 있도록 하는 용어

 

 

‘ brew install kubectl ’로 설치

cubectl -> 클러스터에 명령 전달

 

‘ brew install minikube ’로 설치

minikube 명령어 -> 클러스터, Master Node, Worker Node 생성

                                쿠버네티스를 실행하고, 테스트하기 위해 로컬에 설치하는 도구

로컬 머신에서 가상 머신으로 클러스터를 생성함

 

minikube 시작 전 필요한 환경

 

필요한 것

 

minikube status -> minikube 클러스터가 생성됐는지 확인해 줌

 

minikube dashboard -> 클러스터 실행을 유지하는 프로세스

 > control + c 키로 종료시킬 수 있다

 

 

쿠버네티스 객체

 

1. Pod(container)
 > 임시적, 포드가 종료되면 데이터 손실

 

2. Deployment
 > 쿠버네티스를 작업할 때 사용하는 주요 객체
 > 생성하고 관리해야 하는 pod의 수와 컨테이너 수에 대한 지침 제공
 > 하나 이상의 pod를 제어
 > 중지하고 삭제, 롤백 가능
 > 명령적 접근, 선언적 접근이 있음

 

3. Service 객체
 > Pod의 집합, 공유 ip주소 제공
 > Pod의 내부 ip주소는 바뀌기 때문에 외부에서 접근하기 어려움