-
쿠버네티스 디플로이먼트 서비스 | Kubernetes Deployment Service 정리 cmd[데이터베이스] 2021. 1. 10. 20:19728x90반응형
이 글은 위키북스 「시작하세요! 도커/쿠버네티스」 6장의 내용을 정리한 글입니다.
앞선 내용
포드와 레플리카셋
Deployment 디플로이먼트
실제 쿠버네티스 운영 환경에서 레플리카셋을 YAML 파일에서 사용하는 경우는 없음
레플리카셋과 포드의 정보를 정의하는 디플로이먼트 오브젝트를 YAML 파일에 정의해 사용
레플리카셋의 상위 오브젝트
디플로이먼트를 생성하면 해당 디플로이먼트에 대응하는 레플리카셋도 함께 생성됨
deployment-nginx.yaml
디플로이먼트 사용 이유
애플리케이션의 업데이트와 배포를 더욱 편하게 만들기 위해서
디플로이먼트는 컨테이너 애플리케이션을 배포하고 관리하는 역할
애플리케이션을 업데이트 할 때 레플리카셋의 변경사항을 저장하는 리비젼(revision)을 남겨 롤백을 가능하게 함
쿠버네티스는 디플로이먼트를 생성할 때 포드를 외부로 노출하지 않음
디플로이먼트의 YAML파일에는 단지 포드의 애플리케이션이 사용할 내부 포트만 정의 =containerPort
서비스 Service
containerPort를 외부로 노출해 사용자들이 접근하거나, 다른 디플로이먼트의 포드들이 내부적으로 접근하는데 필요한 쿠버네티스 오브젝트
포드에 어떻게 접근할 것인가에 따라 종류가 세분화
기능
여러 개의 포드에 쉽게 접근할 수 있도록 고유한 도메인 이름 부여
여러 개의 포드에 접근할 때, 요청을 분산하는 로드 밸런서 기능 수행
클라우드 플랫폼의 로드 밸런서, 클러스터 노드의 포트 등을 통해 포드를 외부로 노출
ClusterIP 타입: 쿠버네티스 내부에서만 포드들에 접근할 때 사용
NodePort 타입: 포드에 접근할 수 있는 포트를 클러스터의 모든 노드에 동일하게 개방, 외부에서 포드에 접근 가능
LoadBalancer 타입: 클라우드 플랫폼에서 제공하는 로드 밸런서를 동적으로 프로비저닝해 포드에 연결 , 외부에서 포드에 접근 가능, 클라우드 플랫폼 환경에서만 사용 가능
ClusterIP 타입
hostname-svc-clusterip.yaml
NodePort 타입
모든 노드의 특정 포트를 개방해 서비스에 접근하는 방식
hostname-svc-nodeport.yaml
NodePort 타입은 ClusterIP의 기능을 포함
클러스터 서비스의 내부 IP와 DNS 이름을 사용해 접근 가능
내부 네트워크와 외부 네트워크 양쪽에서 접근 가능
LoadBalancer 타입
hostname-svc-lb.yaml
클라우드 플랫폼으로부터 도메인 이름과 IP를 할당 받음
로드밸런서를 동적으로 생성하는 기능을 제공하는 환경에서만 사용 가능
일반적으로 AWS, GCP 같은 클라우드 플랫폼 환경에서만 사용 가능
로드 밸런싱: 요청이 여러 개의 포드로 분산되는 기능
externalTrafficPolicy
외부에서 들어온 요청은 각 노드 중 하나로 보내지며, 그 노드에서 다시 포드 중 하나로 전달됨
•Cluster: 모든 노드에 랜덤한 포트를 개방, default
•Local: 포드가 생성된 노드에서만 포드로 접근할 수 있으며 로컬 노드에 위치한 포드 중 하나로 요청이 전달됨, 네트워크 홉 발생하지 않음
ExternalName 타입
쿠버네티스를 외부 시스템과 연동해야 할 때 사용
서비스가 외부 도메인을 가리키도록 설정 가능
쿠버네티스와 별개로 존재하는 레거시 시스템에 연동해야 하는 상황에서 유용하게 사용
external-svc.yaml쿠버네티스 내부의 포드들이 externalname-svc라는 이름으로 요청을 보낼 경우,
쿠버네티스의 DNS는 my.database.com으로 접근할 수 있도록 CNAME 레코드를 반환
(Canonical Name 도메인을 가리키는 다른 이름)
728x90반응형'[데이터베이스]' 카테고리의 다른 글
2021 SQLD 합격 (2) 2021.05.11 2021 SQLD 시험 일정 (0) 2021.01.17 쿠버네티스 포드 레플리카셋 | Kubernetes Pod Replicaset 정리 cmd (0) 2021.01.10 쿠버네티스 VS Code YAML 파일 만들기 (0) 2021.01.10