본문은 인프런의 [쉽게 시작하는 쿠버네티스]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
애플리케이션 배포
- 애플리케이션을 배포하는 쿠버네티스의 단위는 Pod
- 강의에서는 마스터 노드를 통해 각 워커 노드에 nginx 애플리케이션을 설치할 예정
파드(Pod)란?
- 파드는 하나의 일을 하기 위해 묶인 컨테이너의 집합
- 대부분은 하나의 파드가 하나의 컨테이너로 이루어진다
- 파드의 자원
- 볼륨과 같은 공유 스토리지
- 클러스터 IP 주소와 같은 네트워킹
- 컨테이너 이미지 또는 사용할 특정 포트와 같이 각 컨테이너가 동작하는 방식에 대한 정보
노드(Node)란?
- 파드는 노드 상에서 동작한다
- 노드는 쿠버네티스에서 워커 머신을 의미하며 클러스터에 따라 가상 또는 물리 머신일 수 있다
- 각 노드는 컨트롤 플레인에 의해 관리된다
서비스(Service)
- 클러스터 외부와 연결하기 위해서 안전한 공간처럼 설정해둔 것을 서비스 영역이라고 한다
- '문'의 개념보단 집 내부의 '거실'이 적절한 비유
- 특정 타겟에 도달하기 위해 항상 거쳐야 하는 영역
- 그림 상에선 파드에 직접 연결되어 있는 것처럼 보여지지만 실제 구조는 노드에 접속한 후 노드 포트를 통해 파드가 위치한 곳을 찾아가는 방식
디플로이먼트(Deployment)
- 파드가 한 개인 경우 파드가 죽는다면?
- 여러 개의 파드가 돌아가야 할 필요가 있다
- 디플로이먼트는 파드를 모아놓은 단위
- kubectl create나 kubectl apply 명령어로 디플로이먼트를 배포
ReplicaSet의 수를 늘려줘야 파드가 늘어남
kubectl scale deployment deploy-nginx --replicas=3
로드밸런서를 사용한 디플로이먼트 노출
- 위와 같이 노드포트를 통해 디플로이먼트를 노출하는 것은 보안적으로 다소 위험함
- 사용자에게 노드의 IP를 노출하므로
- 따라서 디플로이먼트를 로드밸런서로 타입으로 선언하여 노출하는것이 좋음
로드밸런스의 장점
- 노드포트와 달리 직접 노드의 IP를 노출하지 않아도 됨
- 성능 최적화 가능
참고
https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/explore/explore-intro/
'인프라 > Kubernetes' 카테고리의 다른 글
[쉽게 시작하는 쿠버네티스] 4. 쿠버네티스 오브젝트 (0) | 2022.08.30 |
---|---|
[쉽게 시작하는 쿠버네티스] 3. 쿠버네티스 인사이드 (2) | 2022.08.26 |
[쉽게 시작하는 쿠버네티스] 1. 쿠버네티스 환경 구성 (0) | 2022.08.16 |