Service

Ryu·2021년 12월 1일

Kubernetes

목록 보기
7/9

기본

Pod는 각각의 고유 IP를 사용
Service는 Pod의 가변적인 IP문제를 해결하기 위해 등장
고정 내부 IP 할당, Default DNS Name, Pod로의 logical connection 담당

아래와 같이 Pod 업데이트 명령 실행 시 다른 IP 할당된 것을 확인

ClusterIP (default)

클러스터 내부에서만 접근 가능한 IP (외부 통신 X)

아래와 같이 Pod와 ClusterIP가 생성된 것을 확인

PodIP가 EndPoint로 연결

Node에서 홈페이지로 접속

NodePort

Port번호를 통해 외부에서 접근 (NAT 컨셉)

아래와 같이 NodePort가 생성된 것을 확인

NodePort 번호와 WorkerNode IP 확인 후 외부 접속 시도

Loadbalancer

Loadbalancer 사용 방법
1. 퍼블릭 클라우드의 로드밸런서
2. MetalLB
3. External IP 지정

간단한 테스트 목적이므로 3번 방법을 사용

아래와 같이 외부에서 External IP로 접속한 것을 확인

Ingress

HTTP(S) 기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트
Deployment와 Service에 접근하기 위한 관문 같은 역할
Ingress는 부하 분산, SSL 종료, 명칭 기반의 가상 호스팅을 제공

# Ingress-nginx controller 설치 명령어
sudo git clone https://github.com/kubernetes/ingress-nginx.git

kubectl apply -f ingress-nginx/deploy/static/provider/baremetal/deploy.yaml 
kubectl get service -n=ingress-nginx

아래와 같이 nginx controller가 생성된 것을 확인

Deployment 및 ClusterIP 배포

아래와 같이 Pod 및 CluserIP가 생성된 것을 확인

Ingress의 경우 IP 및 Domain 기반 접속 방식을 사용
아래 Kubernetes 공식 문서에서 제공되는 이미지를 기반으로 테스트 진행

IP 기반 Ingress 접속

아래와 같이 IP 기반 Ingress 접속된 것을 확인

Domain 기반 Ingress 접속

Domain기반 테스트를 위해 window hosts 파일에 Domain 설정

hosts파일 수정

아래와 같이 Domain 기반 Ingress 접속된 것을 확인

Can Do It
brb

profile
Let me start

0개의 댓글