Service : ClusterIP
기본적으로 클러스터 내부에서 서로 통신할 수 있는 IP를 가지고 있음
즉, 외부에서 바로 클러스터로 접근 할 수 없음
그렇다면, 이러한 구성자체에서 외부랑 통신할 수 있는 방법은?
Kube-Proxy
하지만, kube-proxy가 외부로의 접근을 허용할 수 있게 한다
각 클러스터의 노드마다 실행되고 있으면서 클러스터 내부ip로 연결하는 역할
네트워크를 관리하는 방법 : userspace / iptables / ipv3
proxy-mode 확인 : iptables(default)
1) userspace 모드
클라이언트는 서비스ip의 한테 요청을 하고,
iptables를 거쳐서 큐브프록시한테 전달,
이걸 각각 적절한 pod한테 연결(round robin방식)
2) iptables 모드 (default)
kube-proxy가 iptable을 관리하는 역할만 함
직접 client로 부터 트래픽을 받진 않음
client로 부터 오는 요청은 iptables를 거쳐서 직접 pod로 전달
그래서 userspace보다 빠른 성능을 가짐
userspace차이점
pod하나로 request를 보내는데 실패하면 다른pod로 연결을 재시도하지만,
ipdatables모드에서는 연결요청이 실패하면 재시도하지 않음
3) ipvs 모드
모든 리눅스 커널에 있는 l4 로드밸런싱 기술
ipvs 커널모듈이 설치되어 있어야하
iptables보다 빠르고 좋은 성능, 더 많은 로드밸런싱 알고리즘
SelfLinked : /api/v1/namespaces/default/services/kubernetes
http://localhost:8080/api/v1/proxy/namespaces/services/kubernetes http:/
kube-proxy로 어떻게 접근?
프록시 시작 kubectl proxy --port =8080
이걸 실행해서 확인할 주소는?
https://kubernetes.io/ko/docs/tutorials/services/source-ip/
어떻게 접속가능한지 확인할 수 있지?
https://blog.leocat.kr/notes/2019/08/22/translation-kubernetes-nodeport-vs-loadbalancer-vs-ingress
'🌴 DevOps > Docker & K8s' 카테고리의 다른 글
쿠버네티스 ingress 구성 (1/3) -ingress (인그레스) 개념 (0) | 2020.05.24 |
---|---|
쿠버네티스로 외부통신하기(3/3) - LoadBalancer (0) | 2020.05.24 |
쿠버네티스로 외부통신하기(2/3) - NodePort (0) | 2020.05.24 |
쿠버네티스 환경구성(kubeadm.ver)(4/5)-마스터노드설정 (0) | 2020.05.18 |
쿠버네티스 환경구성(kubeadm.ver)(3/5) - 패키지 설치 (0) | 2020.05.18 |
쿠버네티스 환경구성(kubeadm.ver)(2/5)- 쿠버네티스/docker 설치 (0) | 2020.05.18 |