CKA Study Day 18

김건호·2023년 4월 18일
0

210-223

Pod Networking

클러스터의 네트워크 계층이 있음
파드 사이의 통신은 어떻게? -> 네트워크 솔류션을 직접 구현 해야함 -> 요구사항은 밝혀둠

  1. 모든 파드는 IP를 받아야함 -> 도커 브릿지와 비슷한 형태로
  2. 모든 파드는 같은 노드에 다른 파드에 접근 가능해야함
  3. NAT없이 다른 노드의 모든 파드에 접근 가능해야함 -> 노드를 라우터로 사용

CNI -> 쿠버네티스가 파드 만드는 동시에 네으퉈크 설정 스크립트를 실행 함
kubelet 은 컨테이너 실행될 때마다 cin-conf-dir, cni-bin-dir참조 -> 네트워크 스트크립트 실행

CNI in kubernetes

ps -aux | grep kubelet -> CNI에 관한 kubelet 설정확인 가능
ls /opt/cni/bin 모든 CNI 플러그인 실행 가능..
/etc/cni/net.d conf파일이 있음 CNI의 알파벳 순서로 한가지 선택

CNI weave

WeaveWokrs
라우팅 테이블의 상위 호환

Deploy Weave

파드로 배포가 가장 쉬움
kubectl apply -f "https://cloud.weave.wokrs~" -> 데몬셋으로 배포됨

IP Address Management - Weave

노드에서 가상 브릿지가 IP가 서브넷에 어떻게 할당되는지 ->
CNI에게 질의

관리법 중복 IP 할당 없이 관리해야함 파일에 IP를 저장 후 파일에 IP가 있나 확인
host-local 플러그인 사용
/etc/cni/net.d/net-script.conf 의 ipam에서 플러그인 선택가능

Service Networking

파드 끼리가 아닌 파드의 서비스를 통해 파드간 통신을 보통 함
서비스 생성 시 모든 파드에서 접근 가능 -> 서비스는 클러스터에 걸쳐 생성 클러스터 내에서만 접근 가능 -> ClusterIP
서비스 생성할때 미리 할당한 범위에서 IP를 받음
노드에서 실행되는 kube-proxy는 ip받아 테이블을 만듬 어떤 IP로 가야하는지
IP와 포트 조합으로

userspace, IPVS, iptables - 프록시 파드에 연결,

파드와 서비스는 같은 IP대역 할당 금지

iptables -L -t nat | grep service

cat /var/log/kube-proxy.log 어떤 rule이 추가되었는지 확인 가능

DNS in kubernetes

Cluster DNS
클러스터 각 노드에는 각각의 이름과 ip가 있음 ->DNS에 등록 되어있음
쿠버네티스는 기본 DNS 사용함
쿠버네티스 dns 는 서비스가 생성될 때마다 등록
다른 네임스페이스에서 접근하려면 풀 네임 사용해야함
web-service.apps[NS].svc.cluster.local
pod에 대한 기록도 dns에 등록 가능

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글