쿠버네티스 이해해보기 [kube-proxy]
·
tech/k8s
서로 다른 노드에서 파드간 통신쿠버네티스에서 서로 다른 노드 간의 통신에는 일반적으로 L3 라우팅이 사용됩니다.또한 서로 다른 노드 간의 통신을 위해 물리 네트워크는 브릿지가 어떤 형태로 든 연결되어 있어야 합니다.    이러한 컨테이너 네트워크 연결을 위해 컨테이너 네트워크 인터페이스(CNI) 프로젝트가 시작되었습니다. CNI 종류에는 아래와 같은 것이 있습니다.- Calico- Clilium- Flannel- Romana- AWS CNI / Azure CNI (public cloud) 이전 포스팅에서 보았던 파드 내 네트워크 할당과 더불어 노드 간 연결에서도 CNI는 역할을 합니다. CNI는 브리지 별로 서로 같은 대역 내에서 겹치지 않게 네트워크를 할당하고 라우팅 테이블을 설정합니다.이 덕분에 서로..
[쿠버네티스 인 액션] 파드 메타데이터와 그 외 리소스 접근하기
·
tech/k8s
쿠버네티스 인 액션 8장   애플리케이션은 자신에 대한 상세 정보나 실행중인 환경 정보, 또는 클러스터 내 다른 구성요소의 정보가 필요할 수 있습니다.일반적으로 애플리케이션 설정 데이터는 환경변수 또는 컨피그맵, 시크릿 봄륨으로 애플리케이션에 전달됩니다. 예를 들면 디비 접속정보나 특정 URL에 대한 정보가 컨피그맵 또는 시크릿으로 구성되어 파드에 마운트 되기도 합니다.다만 이러한 데이터는 직접 설정했거나 파드가 스케줄링 되기 전 데이터입니다.그렇다면 파드IP, 호스트 노드 이름, 자드 자체 이름 등 실행 시점까지 알려지지 않은 데이터는 어떻게 될까요? 이는 Downward API로 확인할 수 있습니다.https://kubernetes.io/docs/concepts/workloads/pods/downwa..
쿠버네티스 이해해보기 [CNI와 containerd]
·
tech/k8s
시작전에docker 대신 containerd 가 설치된 환경에서 nerdctl CLI tool을 통해 CNI 이해를 좀더 해보겠습니다.containerd, nerdctl, cni-plugin 설치는 기회가 된다면 포스팅 하도록 하겠습니다. 저희는 쿠버네티스 이해가 목적이니 이번에도 가볍게 따라가보면서네트워크 네임스페이스와 CNI 동작에 대해 익숙해져 보겠습니다.   컨테이너 네트워크containerd는 컨테이너의 실행과 관리를 담당하는 런타임(Runtime) 입니다.도커가 아닌 containerd 만 설치하게 되면 nerdctl CLI tool 을 사용하여 조작하게 됩니다.   containerd는 cni-plugin을 설치하여 CNI를 사용할 수 있습니다.CNI는 구성파일을 통해 컨테이너의 네트워크를 ..
쿠버네티스 이해해보기 [네트워크 동작 방식]
·
tech/k8s
쿠버네티스는 만져보는 시간이 길어질 수록 점점 공부할 것이 많아집니다.항상 정리하고 싶었지만 그동안 업무에서 다뤄보지 않았다는 이유로 공부를 미루고 있었습니다.그러다가 최근 이직 후 데브옵스 엔지니어로써 업무를 시작하는 과정에서 쿠버네티스를 제대로 이해해보려고 합니다.경험이 부족한 엔지니어가 머리를 굴려가며 쿠버네티스를 이해해보는 시리즈라고 편하게 봐주셨으면 좋겠습니다.그래서 전반적으로 이해하려고 노력했던 사고 흔적들을 말로 풀어서 적어볼까합니다.포스팅 맨 밑에는 참고했던 링크를 적어둡니다. (제대로된 글을 보시려면 해당 링크들을 먼저보시는 걸 권고드립니다)    노드 네트워크우선 노드라는 것을 단순하게 호스트(=물리서버) 한대 라고 가정하고 접근하겠습니다.AWS나 Azure와 같은 퍼블릭 클라우드에서 ..