본문 바로가기
개발 공부 기록하기/- AWS & Infra

Kuberneties 책 정리 2장 - 팟, 레플리케이션 컨트롤러, 서비스

by soulduse 2022. 8. 29.
반응형

회사에서 인프라에 대해 다뤄야 하는 경우가 자주 생기는데 쿠버네티스에 대해 정확히 이해하지 못한 상태에서 사용법만 익혀서 사용중인것 같다. 그래서 정확히 이해하고 사용하려고 책을 한권 샀다(Kuberneties IN ACTION). 그냥 단순히 읽기만 하려니 머릿속에 정리가 되지 않는 느낌이라. 나를 위해서라도 블로그에 기록하며 내용을 정리해보고자 한다.

파드와 컨테이너의 이해

  • 시스템에 가장 중요한 구성 요소는 Pod이라고 함.
  • Pod은 원하는 만큼의 컨테이너를 포함시킬 수 있음.
  • 컨테이너 내부에는 우리가 배포한 프로세스가 있고 지정한 포트(ex. 8080, 80에) 바인딩 되어 HTTP 요청을 기다린다.
    (프로세스는 Node.js, Java Application, etc..가 될 수 있음)
  • Pod은 자체 고유한 사설 IP 주소와 호스트 이름을 갖는다.

레플리케이션 컨트롤러 역할

  • Pod을 복제하고 항상 실행상태로 만드는 역할을 한다.
  • 어떠한 이유에서 Pod이 내려갈 수 있고, 그 Pod을 대체하기 위해 새로운 Pod을 띄워주는 역할로 보면 됨.

서비스가 필요한 이유

  • Pod의 경우 트래픽에 따라 스케일 아웃이나, 인에 의해 언제나 생성, 삭제 될 수 있으며, 이외에 다양한 상황에서도 삭제, 생성 될 수 있다.
  • 새로운 팟이 생성 될 때마다 새로운 IP를 할당 받기 때문에 변화무쌍한(?) IP를 단일 IP와 포트의 쌍으로 노출시키는 문제를 서비스가 해준다.
    (생각 해보면 당연하며 서비스가 반드시 있어야 하는 이유이기도 하다, 팟이 새로 떴다고 서비스 연결이 안되면 안되지 않는가 😅)
  • 서비스가 생성되면 정적 IP를 할당받고 서비스가 존속하는 동안 IP는 변경되지 않는다.
  • 클라는 팟에 직접적으로 호출하는게 아닌 서비스에 할당된 IP를 통해 연결하게 된다.

서비스의 IP와 포트로 유입된 요청 -> 서비스에 속해 있는 Pod중 하나에게 전달되는 형태로 이해하면 됨.

애플리케이션 수평 확장 (보통 스케일 아웃이라고 많이 부름)

  • 쿠버네티스의 장점중 하나인게 간단하게 배포를 확장할 수 있다는 점이 있다.
    (운영에서 트래픽이 일시적으로 몰렸을때 얼마나 큰 이점이 있었던가..!, 트래픽이 감소하면 알아서 스케일-인 해준다.)
# deployment 생성 image는 도커 허브에 등록해준 간단한 이미지를 가져온다.
kubectl create deployment kubia --image=soulduse/kubia

kubectl get deployments

로 조회하면 아래와 같이 팟이 하나 떠있는걸 확인할 수 있다.

# 스케일 아웃을 해보자 팟의 개수를 3개로 늘려준다.
kubectl scale deployments/kubia --replicas=3

그럼 그 결과는? 아래와 같이 팟의 개수가 3개로 늘어난 것을 확인할 수 있다.

# 팟들을 다시 확인해보면?
kubectl get pods -o wide

- 다시 정리 해보면 쿠버네티스에게 pod 인스턴스가 3개를 유지해야 함을 알려줬다.

- 쿠버네티스에 어떠한 액션이 필요한지는 지시 하지 않았다.

- 유지 해야되는 팟의 개수만 정의 하였고 시스템의 의도하는 상태를 선언적으로 지정해줌으로써 쿠버네티스가 알아서 현재 상태를 검사하여 의도한 상태로 조정한다. 전체적인 쿠버네티스를 사용하는 방법은 이러한 형태로 사용되는것 같다.

(앞으로 배우게 될 것 같지만, 회사에서는 pod의 min, max Replication 개수를 설정하고 팟의 성능또한 설정한다. 이 외에 꽤 많은 설정들을 정의하여 yaml 파일로 만들어두면 쿠버네티스는 그 환경설정 데이터만 보고 거기에 맞게끔 현재 팟의 상태를 지속적으로 확인하여 팟을 유동적으로 관리 운영하는것 같다.)

정리하며 느낀점

  • 확실히 그냥 읽는것보다는 학습 자체는 매우 느리다

  • 하지만 정리하며 작성하니 머릿속 장기 기억적으로는 오래 남을듯 하다.

  • 이렇게 하나하나 차근차근 이해해 나가고 내것으로 만들면 언젠간 더 성장한 모습으로 쿠베를 활용하고 있지 않을까 생각해본다.

오늘은 여기서 끝!

반응형