Kubernetes 32

EKS Node의 최대 Pod 수 - Security Groups per Pod 사용 시

개요Security Groups per Pod 사용 시 EKS 노드에 설정되는 최대 pod 수가 달라지는 부분에 대해 설명합니다.Security Groups Per Pod(sgpp)해당 기능은 pod에서 노드의 sg를 사용하지 않고, pod 개별로 sg를 설정하여 사용할 수 있는 기능입니다.VPC CNI에서 ENABLE_POD_ENI=true 설정을 추가하여 사용할 수 있습니다.ENABLE_POD_ENI=true 설정을 추가하면, 노드에는 하나의 Trunk ENI가 생성되고, pod가 생성될 때마다 Branch ENI가 생성되어 Trunk ENI와 연결됩니다.Branch ENI에 pod의 sg가 설정됩니다. 참고로, Trunk ENI는 EC2에 추가할 수 있는 최대 ENI 수에 포함됩니다(참고). 그리고..

Kubernetes 2024.11.18

Amazon EKS VPC CNI + AWS LB Controller 사용 시 설정 별 통신 흐름

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.9주차는 VPC CNI + AWS LB Controller를 주제로 진행되었습니다.이번 글에서는 VPC CNI와 AWS LB Controller를 함께 사용할 때 서비스 접근 시 통신 흐름에 대해 살펴보려 합니다. 실습 환경EKS 클러스터 생성# YAML 파일 다운로드curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/kans/eks-oneclick.yaml# CloudFormation 스택 배포# aws cloudformation deploy --template-file eks-one..

Cilium CNI와 eBPF

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.8주차는 Cilium CNI를 주제로 진행되었습니다. BPF/eBPF클러스터 내 iptables의 성능을 개선하기 위해 eBPF를 지원하는 CNI가 다수 있고, 사용 사례도 증가하고 있습니다.Kubernetes 공식 문서에서도 kube-proxy를 선택 사항으로 표기하고 있습니다.BPF(Berkeley Packet Filter)네트워크 패킷 필터링에 사용되는 기술로 커널에서 실행되는 일종의 VM(Virtual Machine)입니다.sandbox 환경(격리된 환경)에서 실행되어 BPF를 통해 커널이 이벤트를 트리거할 때 안전하게 실행할 수 있습니다.커널을 다시 컴파일하지 ..

istio 이해하기 - Envoy proxy

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.7주차는 Istio를 주제로 진행되었습니다.이번 글에서는 Istio의 Data Plane인 proxy에 대해 다루고 있습니다.istio 아키텍처proxy : data plane, Envoy proxy 기반으로 구성(L4/7 proxy) 되며, 마이크로서비스 간의 모든 네트워크 통신을 라우팅하고 제어함istiod : control plane• Pilot - data plane과 통신하며 라우팅 규칙 동기화, 서비스 디스커버리와 로드 밸런싱 설정을 제공• Citadel - 인증서 관리, mTLS 통신 담당• Galley - Service의 endpoint 정보 업데이트Env..

CoreDNS와 NodeLocal DNS 이해하기

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다. 6주차는 Ingress & Gateway API + CoreDNS를 주제로 진행되었습니다. 이번 글에서는 CoreDNS와 NodeLodalDNS에 대해 다루고 있습니다. CoreDNSCoreDNS는 Kubernetes 클러스터 내부 DNS 서버입니다. 클러스터에서 Pod와 Service가 생성되면 자동으로 이에 대한 DNS 레코드가 생성됩니다. CorefileCoreDns deployment에는 아래 configmap을 /etc/coredns에 마운트하여 사용하고 있습니다.apiVersion: v1 data: Corefile: | .:53 { errors health ..

kube-proxy IPVS 모드

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.5주차는 LoadBalancer(MetalLB), IPVS + LoxiLB를 주제로 진행되었습니다.이번 글에서는 kube-proxy IPVS 모드에 대해 다루고 있습니다.아래 테스트는 kubeadm를 사용한 EC2 기반 클러스터에서 진행됩니다.IPVS 세부 설정클러스터 생성 후 kube-proxy configmap을 보면, 아래와 같은 옵션을 확인할 수 있습니다....ipvs: excludeCIDRs: null minSyncPeriod: 0s scheduler: "" strictARP: false syncPeriod: 0s tcpFinTimeout: 0s t..

kube-proxy 모니터링 환경 구성 실습(serviceMonitor, podMonitor)

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.5주차는 LoadBalancer(MetalLB), IPVS + LoxiLB를 주제로 진행되었습니다.이번 글에서는 kube-proxy 모니터링 환경 구성 실습에 대해 다루고 있습니다.아래 포함된 테스트는 kind로 구성한 클러스터에서 진행되었습니다.클러스터 생성# EC2 생성curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/kans/kans-5w.yamlaws cloudformation deploy --template-file kans-5w.yaml --stack-name mylab -..

Kubernetes Service 분석 - ClusterIP, NodePort

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.4주차는 Service(ClusterIP, NodePort)를 주제로 진행되었습니다.아래 포함된 테스트는 kind로 구성한 클러스터에서 진행되었습니다.kube-proxy 모드kube-proxy는 서비스에서 파드로의 연결이 가능하게 해주는 컴포넌트이기 때문에, 어떤 모드를 사용하느냐에 따라 통신 방식이 다릅니다.userspace서비스에 대한 요청이 netfilter에 의해 모두 kube-proxy(user space에 속함)로 보내집니다.패킷에 대해 user space kernel space 로 전환이 필요하기 때문에 비효율적이며, kube-proxy 다운 시 이슈가 발..

Calico 개념 및 실습

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.3주차는 Calico CNI를 주제로 진행되었습니다. Calico란?Calico는 Kubernetes 워크로드와 Kubernetes가 아닌 레거시 워크로드가 원활하고 안전하게 통신할 수 있도록 해주는 네트워킹 및 보안 솔루션입니다. Calico CNI와 Calico network policy가 있습니다. Calico 구성 요소calico datastorecalico 동작을 위한 데이터 저장소이며, Kubernetes API server(기본), ETCD 중 선택 가능하며 해당 저장소에 접근하기 위한 driver를 제공함(kubernetes, etcd)calico-node..

Flannel CNI 실습

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.2주차는 K8S Flannel CNI & PAUSE를 주제로 진행되었으며,이번 글에서는 Flannel CNI 실습을 다룹니다. CNI란?Linux 컨테이너에서 네트워크 인터페이스를 구성하기 위한 플러그인(지정된 네트워크 구성을 적용하는 프로그램)을 작성하는 사양과 라이브러리로 구성되어 있습니다. 또한 여러 개의 지원되는 플러그인도 포함하고 있습니다. CNI는 오직 컨테이너의 네트워크 연결성과, 컨테이너가 삭제될 때 할당된 자원을 제거하는 일에만 집중합니다.CNI 플러그인은 컨테이너가 네트워크에 연결되기 위한 모든 작업에 책임을 가지며, IP 관리(할당, 회수)와 라우팅 ..

반응형