쿠버네티스 서비스

hi·2023년 3월 17일
0

쿠버네티스

목록 보기
4/60

쿠버네티스 서비스란 무엇입니까

쿠버네티스 파드는 소모품이며 레플리카셋에 의해 오토스케일링 시 생성되고 제거됩니다. 따라서 IP 주소로 파드에 액세스하는 것은 권장되지 않습니다. 이 문제를 해결하기 위해 쿠버네티스에선 쿠버네티스 서비스란 개념을 활용합니다.

쿠버네티스는 가상 IP 기반 브리지를 제공하며 이를 통해 파드에 액세스 할 수 있습니다. 그리고 이러한 방식엔 파드 액세스 서비스, 공개 노출된 서비스와 같은 방식이 있습니다.

파드 액세스 서비스란 무엇입니까

파드 액세스 서비스란 마이크로서비스 아키텍처에서 프라이빗 네트워크 내의 여러 마이크로서비스에 액세스하기 위한 서비스입니다. 일반적으로 다른 단위 서비스에 관한 액세스는 IP 주소 또는 DNS 요청으로 이루어집니다. 그리고 쿠버네티스는 이 두 가지 모두를 지원합니다.

환경변수

파드가 노드에서 시작되면 Kubectl은 실행 중인 모든 서비스가 지정된 순서에 따라 환경변수로 액세스되도록 선언합니다.

DNS

DNS를 통한 서비스 접근은 첫 번째 옵션이 아닌 선택 사항이지만 쿠버네티스에서 권장되는 에드온입니다. 각 서비스는 DNS 레코드가 생성되는 즉시 자체적으로 DNS 레코드를 등록합니다. DNS 레코드는 <service-name>.<namespace> 패턴을 따릅니다. 동일한 네임스페이스의 모든 파드는 <service-name>으로 서비스에 직접 액세스할 수 있지만 네임스페이스의 외부 파드는 .<namespace>를 포함해야 서비스에 액세스할 수 있습니다.

서비스를 공개적으로 노출하기

쿠버네티스에선 다음과 같은 방식으로 서비스를 외부에 노출시킬 수 있습니다.

클러스터 IP

서비스는 클러스터의 내부 IP로 노출될 수 있습니다. 이 경우 해당 서비스에는 같은 클러스터군에 속한 파드들만 액세스할 수 있습니다.

노드 포트

서비스가 특정 포트의 노드 IP 주소에 노출될 수 있습니다. <NodeIP>:<PORT> 주소로 서비스에 액세세할 수 있으며, 내부적으로 쿠버네티스는 노드 IP와 실제 서비스 간의 연결 역할을 클러스터 IP 서비스를 만듭니다. 각 노드는 선택한 포트를 서비스 파드로 프락시합니다.

로드 밸런서

노드포트를 가리키는 퍼블릭 IP는 노드포트로 라우팅된 다음 클러스터 IP로 다시 라우팅됩니다. 서비스 구성 시 spce.type을 LoadBalancer로 지정해주면 로드 밸런서 유형을 추가하실 수 있습니다.

0개의 댓글