Single Node로 K8s가 구성되어 있다고 생각해보자.
그럼 Node는 192.168.1.2 IP를 가지고 있고, Pod는 내부적으로 10.244.0.0/16 대역을 가지고 있다.
Node의 192.168.1.2 ip의 경우, ssh를 통해 접속이 가능하지만, Pod의 경우 내부 10.244.0.0/16 대역은 외부에서 접근할 수 없다.
그럼 Multi-Node로 구성되어 있을 때는?
동일한 Cluster 내에서 각 Node가 동일한 대역을 갖고있으면 IP 충돌이 일어난다.
그런데, K8s cluster가 setup될 때, k8s는 이런 이슈를 해결하기 위한 networking 종류를 자동으로 셋업하지 않는다.
그럼 All nodes가 NAT 없이 통신할 수 없는 방법은 무엇일까?
Calico, cisco ACI networks, Cilium 등 pre-built solutions을 사용할 수 있다.
이건 각 플랫폼의 환경에 따라 달라지는 부분으로 (ex. VMware를 쓴다면 NSX-T가 good option)
각자 환경에 맞춰 맞는 networking solution을 선택하면 된다.
위는 Calico networking setup을 한 것인데, Node간 다른 network 를 할당했다.
이런 Networking은 모든 pod 및 노드의 가상 network가 유니크한 ip를 할당받게 만든다.
그리고, 다른 노드에 있다고 해도, 할당된 ip로 서로간 통신 할 수 있다.
출처)
자료의 기반은 모두 Udemy의 'Kubernetes for the Absolute Beginners - Hands-on' Course 입니다!
'직장생활 > Kubernetes(K8s), Docker' 카테고리의 다른 글
Kubernetes 왕초보 강의 9: Microservices Architecture (ft. Udemy) (0) | 2021.10.07 |
---|---|
Kubernetes 왕초보 강의 8: Service-NodePort, ClusterIP, LoadBalancer (ft. Udemy) (0) | 2021.10.07 |
Kubernetes 왕초보 강의 6-3: Deployments (ft. Udemy) (0) | 2021.10.06 |
Kubernetes 왕초보 강의 6-2: Replication Controller, ReplicaSet (ft. Udemy) (0) | 2021.10.06 |
Kubernetes 왕초보 강의 6-1: PODs with YAML (ft. Udemy) (0) | 2021.10.06 |