Kubernetes(쿠바네티스) 개념정리(Network)

이한결·2024년 6월 8일

Software

목록 보기
4/5
post-thumbnail

Kubernetess Network

  • 모든 pod들에는 임시 private IP 주소를 부여한다 -> 자신만의 virtual network
  • 하나의 Node속 pod들 사이의 통신은 하드웨어 없이 소프트웨어로만 통신 가능하다
    Pause 컨테이너: pod를 노드의 네트워크에 연결하는 Gateway
    CNI addon: 클러스터에서 pod간의 네트워킹을 관리하고 설정
    netfilter: 라우팅 테이블을 참조하여 트래픽을 변환하고 전달

Worker Node: Private IP & Public IP
Pod: Private IP
Cluster: Private IP
-> Service를 Expose하기 위해서는 Public IP가 필요

동작 방식

  1. kubectl를 통해서 사용자가 명령어를 보낸다
  2. master node에서 api server는 명령어를 받는다
  3. 해당 정보를 controller manager와 scheduler를 이용해 worker node로 보낸다
  4. 각 worker node에서 kubelet이 명령을 받아 pod와 컨테이너를 관리

Service & Ingress in k8s

  • Pod는 private IP를 사용하기 때문에 외부에서 접근할 수 없고, 내부에서도 생성, 소멸하는 IP주소를 알 수 없으면 접근 X
    cf. pod에 Static IP를 부여하지 않는 이유는 생성과 소멸이 반복되기 때문
  • Service가 pod들에게 stable IP와 DNS이름을 제공
  • NodePort type의 Service: 외부에 서비스를 제공하는 노드의 public IP를 공개(TC
    p/UDP)
  • Ingress: 여러 서비스에 대한 외부 접근을 하나의 EndPoint로 관리할 수 있도록 한다(HTTPS,HTTP)

Service Type

  • Cluster IP: Default 값으로 사용되며 cluster 내부에서만 통신 가능
  • NodePort: static port 번호를 cluster에게 지정하여 외부에서 접근하도록 함(30000~32767)
  • LoadBalancer: 자동으로 NodePort와 ClusterIP Service들을 생성

동작 방식

  1. 클라이언트가 도메인으로 HTTP 요청을 보낸다
  2. Ingress가 라우팅 규칙에 따라 service에 전달
  3. Service는 지정된 pod로 전달 (pod -> targetPort로 매핑)
  4. Deployment는 파드를 생성하고 각 파드는 Targetpod에서 애플리케이션을 실행

마치며

해당 정리 내용은 인터넷 및 강의록을 기반으로 작성하였음을 밝히며, 오류가 존재할 수 있음을 밝힙니다. 감사합니다.

profile
열정으로 가득할 페이지

0개의 댓글