K8s Gateway API
·
DevOps/✏️ Cloud
k8s Gateway API 는 기존 Ingress 한계를 극복, 클러스터 내외부의 네트워크 트래픽을 유연하고 표준화된 방식으로 관리하기 위해 탄생했다고 한다.사실 Ingress 만으로는 표준화된 기능이 없어서, annotation 으로 지정하거나 하는 등 쿠버네티스에서 오류를 검출할 수 없었다.왜냐하면 공식적으로 지원하는 기능이 아니기 때문에...그런 관점에서 손쉽게 사용하기 위해 탄생한게 Gateway API 가 아닌가 싶다.무엇보다 Ingress 로 구현하면 멀티 테넌시 환경에서 독립적으로 개발이 어렵기 때문에 이러한 점을 개선하여, 리소스 모델을 제공하고 클러스터 운영자, 인프라 제공자, 애플리케이션 개발자 등 각각 범위에 맞게 운영이 가능하다.핵심 리소스1. GatewayClass :- 게이트웨..
Kubernetes DNS ( coreDNS )
·
DevOps/✏️ Cloud
쿠버네티스에서 DNS 를 어떻게 사용하는지에 대해 간략히 정리하려함.CNI 까지 컨테이너 네트워크, 클러스터 네트워크 등을 공부하면서 어떻게 서로를 연결하고 식별하는지 흥미가 생기는 듯 하다.DNS 의 의미# ping dbping: unknown host db갑자기 db 에 ping 을 날리려고 하면, db 이름을 가진 host 가 어딘지 알 수 없지 않은가? 하지만 모든 서비스에서 db 의 IP 를 일일히 기억하고 싶지도 않다. 그래서 나온 것이 DNS 의 개념이다.cat >> /etc/hosts192.168.1.11 db# ping dbPING db (192.168.1.11) 56(84) bytes of data.64 bytes from db (192.168.1.11): icmp_seq=1 ttl=..
CNI (Container Network Interface)
·
DevOps/✏️ Cloud
Linux, docker, rkt, mesos, kubernetes 등 많은 솔루션에서 각자의 네트워킹 방식이 있다.이러한 방식을 통일하기 위해 Interface 를 만든 것을 CNI 라고 한다.쿠버네티스에서 CNI 는 클러스터 내의 파드들에게 네트워크 연결성을 제공하고 관리하는 것으로 볼 수 있다. 앞서 네트워크 네임스페이스와 네트워킹을 통해 브릿지 네트워크에 연결하고 컨테이너끼리 통신하는 방식이 있지만, 이는 수많은 파드가 운영되는 클러스터에서 일일히 작업할 수 없는 양에 달한다.그렇기 때문에 컨테이너가 생성될 때 자동으로 네트워크 연결성을 제공하기 위해 CNI 를 사용한다.동작하는 방식은 다음과 같음.1. 파드 생성 시 쿠버네티스는 CNI 플러그인에게 네트워크 설정을 요청 (weave, cilliu..
Docker Networking
·
DevOps/✏️ Cloud
Network Namespace — 데봅스 성장기 Network Namespace컨테이너가 어떻게 네트워킹을 구성하고, 호스트 부터 외부 인터넷까지 통신 되는지 이해가 너무 안되서 정리.도커가 구성하는 방법을 알려면 리눅스의 네트워크 네임스페이스 개념부터 알아jjoyling.tistory.com이전 글에서 network namepsace 를 이용한 방식으로 도커는 컨테이너로 환경을 격리하면서 네트워크도 격리한다.앞에 내용에 이어서 컨테이너 네트워크 구성 방식을 정리하려 함.1. none# docker run --network none nginxnone 네트워크는 도커 컨테이너가 아무 네트워크에도 연결되어 있지 않다. 어떤 방법으로도 컨테이너에 연결할 수 없다. 2. Hostdocker run --netw..
Network Namespace
·
DevOps/✏️ Cloud
컨테이너가 어떻게 네트워킹을 구성하고, 호스트 부터 외부 인터넷까지 통신 되는지 이해가 너무 안되서 정리.도커가 구성하는 방법을 알려면 리눅스의 네트워크 네임스페이스 개념부터 알아야 한다.network namespace리눅스에는 network namespace 라는 기능이 존재함.컨테이너는 격리된 환경이기 때문에, 컨테이너가 생성되면 Network namespace 가 생성됨.네임스페이스 안에서는 고유의 가상 인터페이스 라우팅, ARP 테이블을 가진다. 즉 host의 정보와 격리됨.# 리눅스 네트워크 네임스페이스 생성 방법(name : red, blue)ip netns add redip netns add blue# network namespace 조회 방법$ ip netnsredblue생성된 네임스페이스..