본문 바로가기

분류 전체보기

(202)
[KANS] 쿠버네티스 네트워크 (17) AWS EKS: VPC CNI 목표:1. VPC CNI이란? 2. Prefix Delegation ? 3. NLB vs ALB ( Hyperplane 아키텍처 ? )4. CoreDNS와 NodeLocalDNS5. 토스 SLASH 24 - 커널 단 Observability 강화 하기 테스트  - Flamegraph - page fault 찾기 , OOM 과정 찾아보기 VPC CNI  ☑️  CNI 정의K8s에서는 POD간의 통신을 확장하는 규약을 CNI(Container Network Interface)로 정의 하고 있다. 번역이라 말이 어려운데 쉽게 말해서 CNI  → 네트워크 환경을 구성해준다고 생각하자네트워크 환경을 구성한다 = IP 할당, 라우팅 테이블 관리,AWS VPC CNI 도 마찬가지로 CNI 인데, 차이점이라고 하면 파..
[KANS] 쿠버네티스 네트워크 (16) Cilium - pod통신, service 통신 목표:1. Cillum의 POD 통신 자세히 알아보자2. Cillium의 Service 통신 자세히 알아보자Cilium POD 통신 Packet Flowpod 투 podEgress Ingress 노드간 POD 통신 실습을 위해 3개의 POD를 디폴트 네임스페이스에 생성하겠습니다.cat  환경변수 삽입 및 확인 NETPODIP=$(kubectl get pods netpod -o jsonpath='{.status.podIP}')WEBPOD1IP=$(kubectl get pods webpod1 -o jsonpath='{.status.podIP}')WEBPOD2IP=$(kubectl get pods webpod2 -o jsonpath='{.status.podIP}')# 단축키(alias) 지정alias p0="..
[KANS] 쿠버네티스 네트워크 (15) Cilium 목표:1. Cilium 이란?  2. XDP란? 3. Cillum 설치 1. Cilium ?Cilium은 eBPF (Berkeley Packet Filter)를 기반으로 Pod Network 환경 + 보안 을 제공하는 CNI Plugin 입니다2021년 10월에 CNCF 소속 프로젝트가 되었고, 현재는 Google GKE Data Plane, AWS EKS Anywhere에 Cilium을 기본 CNI로 이용k8s에서 구체적으로 살펴보면, Cilium이 없는 경우엔 좌측 그림처럼 호스트와 Pod 환경에서 동일한 동작을 수행하면서 오버헤드가 존재하게 되는데, Cilium을 이용하게 되면 기타 중복되는 오버헤드 없이 통신을 수행하게 되면서 성능에 많은 이점이 존재  eBPF (Berkeley Packet F..
[KANS] 쿠버네티스 네트워크 (14) Service Mesh (istio) : Traffic Management 목표:(1) istio 기능 - Traffic Management  4개 서비스 모두 v1 의 서브셋(subset) 에 전송하는 정책 테스트L7 Layer Header을 이용한 지능적 라우팅Fault Injection동작 소개 : 클라이언트 PC → Istio ingressgateway 파드 → (Gateway, VirtualService + DestinationRule) → Cluster(Endpoint - 파드)Gateway : 지정한 인그레스 게이트웨이로부터 트래픽이 인입, 프로토콜 및 포트, HOSTS, Proxy 등 설정 가능VirtualService : 인입 처리할 hosts 설정, L7 PATH 별 라우팅, 목적지에 대한 정책 설정 가능 (envoy route config) 사용 예시 : 헤..
[KANS] 쿠버네티스 네트워크 (13) Service Mesh : istio 목표:1. 서비스 메시 소개2. Envoy 소개3. istio 소개 4. istio 기본 default 설정 (gateway , virtual service) 를 통한 기본 인입서비스 메시 등장배경 : 마이크로서비스 아키텍처 환경의 시스템 전체 모니터링의 어려움, 운영 시 시스템 장애나 문제 발생할 때 원인과 병목 구간 찾기 어려움내부망 진입점에 역할을 하는 GW(예. API Gateway) 경우 모든 동작 처리에 무거워지거나, 내부망 내부 통신 제어는 어려움 기본 동작 :파드 간 통신 경로에 프록시를 놓고 트래픽 모니터링이나 트래픽 컨트롤 → 기존 애플리케이션 코드에 수정 없이 구성 가능!1. 애플리케이션의 변경 없이 , 모든 애플리케이션 통신 사이에 Proxy를 두고 통신 해보자.파드 내에 사이드..
[KANS] 쿠버네티스 네트워크 (12) Gateway API 목표:1. Gatway API vs API Gateway2. Gateway API 란? 3. Gloo Gateway APIGateway API vs API GatewayGateway API vs. API GatewayOne of the first questions that came to my mind when I started exploring the Kubernetes Gateway API was, “How is it different from an API Gateway?” I figured you might have the same question too!😃While both concepts involve routing and managing traffic, they serve very diffe..
[KANS] 쿠버네티스 네트워크 (11) ingress 목표:1. ingress 에 대해 알아보자.2. ingress를 통한 통신 흐름을 알아보자.3. ingress의 각 기능들을 알아보자.  인그레스(Ingress) 소개인그레스란?  클러스터 내부의 서비스(ClusterIP, NodePort, Loadbalancer)를 외부로 노출(HTTP/HTTPS) - Web Proxy 역할 7계층 HTTP/HTTPS를 이해함 - URL,Hostname, path 기반 라우팅 가능추상화된 API 오브젝트로 이를 통해 클러스터 내부의 svc에 external 접근을 가능하게 함 , 특히 HTTP로드밸런싱 , SSL 종료 , 카나리 업그레이드 하지만 ingress frozen 앞으로는 Gateway API만 개발될 예정Ingress-Controller란?외부에서 인그레스로..
[KANS] 쿠버네티스 네트워크 (10) Service : LoadBalancer 목표:1. Service 에 대해 알아보자 ( Nodeport Hostport의 한계와 Loadbalancer ) 2. MetalLB에 대해서 알아보자 3. 실습을 통해 통신흐름을 분석해보자. 서비스 - Nodeport와 Hostport 서비스(Service)  - Nodeport와 Hostport?  서비스 중에서 다음과 같이 cloudfront에 접근해야 되는 상황이 있었다. worker 노드의 IP가 변경되어서 통신이 안된 상황이 있었다.서비스는 pod가 위치한 노드의 인터페이스를 통해 외부로 snat 되어 나가기 때문에 바뀐 ip를 cloudfront와 AWS LB 사이드에 방화벽 허용신청을 해야했다. 기본적으로 외부 간의 통신은 ingress를 통해 통신 할거라고 생각했지만 어느 쪽에서 requ..