본문 바로가기

전체 글

(197)
K8s Gateway API 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s중 Gateway API에 대해 자세히 알아보겠습니다.  Gateway API- 기존의 Ingress에 헤더 기반 라우팅, 헤더 변조, 트래픽 미러링(쉽게 트래픽 복제), 역할 기반 등 기능 추가 - Docs  Gloo Gateway Install KinD Cluster#cat kind-1node.yamlkind: ClusterapiVersion: kind.x-k8s.io/v1alpha4nodes:- role: control-plane extraPortMappings: - containerPort: 30000 hostPort: 30000 ..
K8s Ingress(L7) 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s중 Ingress에 대해 자세히 알아보겠습니다.   실습 환경 구성 - VPC 1개(퍼블릭 서브넷 2개), EC2 인스턴스 4대 (Ubuntu 22.04 LTS, t3.medium - vCPU 2 , Mem 4)# YAML 파일 다운로드curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/kans/kans-6w.yaml# CloudFormation 스택 배포# aws cloudformation deploy --template-file kans-1w.yaml --stac..
K8S IPVS Proxy 모드 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s Service 중 IPVS Proxy 모드에 대해 자세히 알아보겠습니다.  IPVS- IPVS 는 리눅스 커널에서 동작하는 소프트웨어 로드밸런서- 백엔드(플랫폼)으로 Netfilter 를 사용하며, TCP/UDP 요청을 처리 가능- iptables 의 rule 기반 처리의 성능 한계와 분산 알고리즘이 없어서, 최근에는 대체로 IPVS 를 사용함  Netfilter Hook Function : 6개의 Netfilter Hook Function 을 사용 → IPVS Dummy Interface 사용하기 때문에 Local Hook 사용  IPSET - i..
K8S Service : LoadBalancer(MetalLB) 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s Service 중 LoadBalancer 에 대해 자세히 알아보겠습니다.  LoadBalancer Type - k8s Docs외부 클라이언트가 '로드밸런서' 접속 시 부하분산 되어 노드 도달 후 iptables rule로 목적지 파드와 통신됨 클라우드 환경 LoadBalancer ServiceAWS 환경의 AWS LoadBalancer 서비스- CLB : 클래식 로드밸런서. NLB/ALB에 비해서 가장 적은 기능을제공하며 가장 오래된 로드밸런서- NLB : 네트워크 로드밸런서. CLB/ALB에 비해 처리 속도가 빠르고 L4 계층에서 동작 .TCP/U..
K8S Service : NodePort 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s Service 중 NodePort에 대해 자세히 알아보겠습니다.  NodePort 생성 배경클러스터 외부에서는 서비스(ClusterIP)로 접속이 불가능하여 NodePort 타입으로 외부에서 접속 가능 NodePort- 외부 클라이언트가 '노드IP:NodePort' 접속 시 해당 노드의 iptables Rule에 의해서 SNAT/DNAT 되어 목적지 파드와 통신 후 리턴 트래픽은 최초 인입 노드를 경유해서 외부로 되돌아감- 모드 노드(마스터 포함)에 iptables rule 이 설정되므로, 모든 노드에 NodePort 로 접속 시 iptables r..
K8S Service : ClusterIP 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 k8s Service 중 Cluster IP에 대해 자세히 알아보겠습니다.  Service- 쿠버네티스에서 동작하는 애플리케이션을 내/외부에서 유연하게 접속하기 위한 서비스라는 오브젝트가 있음apiVersion: v1kind: Servicemetadata: name: my-servicespec: selector: app.kubernetes.io/name: MyApp ports: - protocol: TCP port: 80 targetPort: 9376  Service 등장 배경1. 파드 생성 : K8S 클러스터 내부에서만 ..
Calico 네트워크 모드 / 접근 통제 방법 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 Calico의 네트워크 모드와 네트워크 접근 통제 방법에 대해 자세히 알아보겠습니다.  Calico 는 다양한 네트워크 통신 방법(모드)를 제공합니다.Calico 나 Cilium 에서 파드 혹은 네임스페이스의 레벨에서 IN/OUT 트래픽에 대한 통제가 가능합니다. 네트워크 모드1. IPIP 모드파드 간 통신이 노드와 노드 구간에서는 IPIP 인캡슐레이션을 통해서 이루어 집니다- 다른 노드 간의 파드 통신은 tunl0 인터페이스를 통해 IP 헤더에 감싸져서 상대측 노드로 도달 후 tunl0 인터페이스에서 Outer 헤더를 제거하고 내부의 파드와 통신 - 다른..
Calico 기본 통신(다른 노드에서 Pod - Pod 간) 안녕하세요. Kubernetes Advanced Networking Study(=KANS) 3기 모임에서 스터디한 내용을 정리했습니다. 해당 글에서는 Calico의 다른 노드에서 파드 간 통신에 대해 자세히 알아보겠습니다.  - 다른 노드 환경에서 파드 간 통신 시에는 IPIP 터널(기본값) 모드를 통해서 이루어 집니다 각 노드에 파드 네트워크 대역은 Bird 에 의해서 BGP 로 광고 전파/전달 되며, Felix 에 의해서 호스트의 라우팅 테이블에 자동으로 추가 및 삭제 됩니다다른 노드 간의 파드 통신은 tunl0 인터페이스를 통해 IP 헤더에 감싸져서 상대측 노드로 도달 후 tunl0 인터페이스에서 Outer 헤더를 제거하고 내부의 파드와 통신됩니다   파드 배포 전 기본 상태 확인 노드간 BGP ..