월루를 꿈꾸는 대학생

CoreDNS & Service (MetalLB) 본문

Server&Network/Kubernets_Dokcer

CoreDNS & Service (MetalLB)

하즈시 2022. 2. 20. 05:00
728x90

실습 환경 

 

 

 

 

Core DNS

- DNS 서버 역할을 해주는 파드 

 

- 클러스터 환경에서 dns 역할하는 서비스 오브젝트 

- 포트도 53

 

 

kubectl describe configmaps -n kube-system coredns

- 파드가 질의한 dns가 core dns에 없을 떄 다른 쪽으로 넘겨야함 

- /etc.resolv.conf에 설정된 dns 서버로 다시 질의 

 

 

-파드 생성 후 /etc/resolv.conf 확인 

-10.96.0.10 클러스터 ip에다가 dns 질의

- nodts:5 도메인 길이를 5단위로 맞추도록 노력해서 조회를 함 ( 쿠버네티스 관련 도메인 질의 우선 ) 

 

 

질의의 방향

 

- 도메인에 루트 도메인 붙이면 쓸데없는 조회없이 바로 조회됨 

 


 

DNS for Service 

- 파드의 ip가 동적 생성되니까 서비스에 매칭되는 도메인주소 ex_ service1.default.svc.cluster.local 같이 ip가 아니라 파드에 접근 시 서비스명을 미리 만들어서 세팅 후 파드 배포하면 유연하게 대응 가능 

 

cluster ip service 3개 생성 

 

굳이 클러스터ip로 접근하는 것이 아니라 서비스명으로 접근이 가능하다 

 


 

 

스테이트풀셋 , 헤드리스 서비스 

파드 생성도 순서대로 만들어짐 삭제도 순서대로 

0,1,2 등 숫자로 구분 

 

서비스네임인 sample-headless로 조회 

파드 3개 응답 받음 - headless 서비스 명으로 조회시 해당 서비스네임에 묶은 서비스 리스트를 반환 

 

 

 

개별 서비스네임으로 접근 가능 - 특정 파드에 접근이 가능 

 


로드밸런서 

 

- 노드포트의 부족한 점을 보완

- 외부 클라이언트가 '로드밸런서' 접속 시 부하분산 되어 노드 도달 후 iptables 룰로 목적지 파드와 통신됨

- 기본 nat가 2번 일어남 

 

Metal LB

- 온프레미스에서 사용할 수 있는 로드밸런서 

 

#l2 모드 

 

 

- 각 노드에 metal lb 스피커 파드가 배치가 됨

 

# bgp모드 

- 규모가 작더라도 bgp모드를 추천하심 

 

 

로드밸런서 배포

- selector app 으로 wepbod를 바라봄

- metallb 설치되어 있으므로 loadbalancer 사용 간으 

 

- external ip 가 생성됨 

- mac 주소가 같은 거에 따라 노드 배치 확인 가능 

- 로드밸런서 가고 노드 가고 iptable가고 파드로 가고 

 

- 외부 ip로 접근시 부하 분산이 일어남

 

# 장애 유발 k8s-w1

 

201의 맥주소가 변경되고 연결도 끊김 

다시 w1 기동시 201ip가 w1맥을 가져가고 연결이 다시 시작 -> 시간이 오래걸림  -> bgp모드 쓰자

 

 


 

BGP 모드 

 

- peer-address  : rtr 

 

 

# 배포 확인

 

metal lb ip

- 지정된 대역을 서비스로 광고 

- 172.20.1.1 은 w1 w2 m1로 가라

 

pc 에서 접근 확인

 

부하분산 확인 

 

마스터 노드에는 파드가 없는데 마스터노드의 ip가 있으니 마스터노드 갔다가 다시 iptalbe에 의해서 워커노드까지 가야함

kubectl patch svc svc1 -p '{"spec":{"externalTrafficPolicy": "Local"}}'

kubectl patch svc svc2 -p '{"spec":{"externalTrafficPolicy": "Local"}}'

kubectl patch svc svc3 -p '{"spec":{"externalTrafficPolicy": "Local"}}'

해당 서비스의 externalTrafficPolicy을 local로 변경하면 마스터 노드가 사라짐 -> 파드가 있는 워커노드만 라우팅이 잡힘 = 트래픽 경로 최적화 <매우 권장>


 

 

-과제1-

 

 

-과제2-

*위 포스팅 참조*

728x90