월루를 꿈꾸는 대학생
CoreDNS & Service (MetalLB) 본문
실습 환경
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-
*위 포스팅 참조*
'Server&Network > Kubernets_Dokcer' 카테고리의 다른 글
로컬에서 k8s 구축하기 (1) | 2023.03.04 |
---|---|
쿠버네티스 API 개념 및 보안 내용 정리 (0) | 2022.03.14 |
KNAS Service (ClusterIP & NodePort) (0) | 2022.02.12 |
쿠버네티스 대시보드 삽질기 (0) | 2022.02.06 |
KNAS 3주차 _ 2 (0) | 2022.02.03 |