목록k8s (38)
근묵자흑
1. Nginx Ingress Controller의 등장 배경1.1 C10K 문제와 이벤트 기반 아키텍처인터넷 발전 초기 단계에서 대부분의 웹 서버는 연결당 하나의 프로세스나 스레드를 할당하는 방식으로 동작했습니다. 이는 적은 수의 연결에서는 잘 작동했지만, 동시 연결 수가 증가하면서 한계에 부딪혔습니다.1990년대 후반, Dan Kegel은 "C10K 문제"라는 용어를 만들었습니다. 이는 서버가 10,000개의 동시 연결(Connections 10K)을 처리하는 과제를 의미합니다. 하드웨어 자원이 충분함에도 불구하고 I/O 처리 방식의 한계로 인해 서버가 제대로 처리하지 못하는 현상이었습니다. C10K 문제의 핵심 원인:1. 연결당 하나의 프로세스/스레드 모델의 비효율성2. 커널의 I/O 처리 방식(s..
1. 인그레스를 사용하는 이유쿠버네티스 환경에서 애플리케이션을 외부에 노출시키는 방법은 여러 가지가 있습니다. 기본적인 Service 리소스(NodePort, LoadBalancer, ClusterIP)만으로도 기본적인 네트워킹 요구사항을 충족할 수 있지만, 복잡한 프로덕션 환경에서는 한계점이 명확해집니다.인그레스(Ingress)를 사용하는 근본적인 이유는 Layer 7(HTTP/HTTPS) 수준의 라우팅과 로드 밸런싱 기능을 제공하기 위함입니다. 기존 Service만으로는 구현하기 어려운 고급 트래픽 제어 기능이 필요할 때 인그레스가 그 해결책이 됩니다.1.1 비용 최적화클라우드 환경에서 LoadBalancer 타입의 Service를 사용하면 각 서비스마다 별도의 로드 밸런서가 프로비저닝되어 비용이 증..
쿠버네티스(Kubernetes)는 현대 클라우드 네이티브 환경에서 컨테이너 오케스트레이션의 표준으로 자리잡았지만, 복잡한 아키텍처와 다양한 구성 요소로 인해 보안 취약점에 노출될 가능성이 있습니다. 특히 서비스(Service)와 시크릿(Secret) 리소스는 클러스터 운영에 필수적이지만, 잘못 구성되면 심각한 보안 위협을 초래할 수 있습니다. 1. 서비스(Service) 관련 취약점1.1 서비스 계정 토큰 탈취공격 방법:공격자가 Pod 내부에 접근하면 자동으로 마운트되는 /var/run/secrets/kubernetes.io/serviceaccount/token 파일에서 서비스 계정 토큰을 추출할 수 있습니다.이 토큰은 기본적으로 만료 시간이 없어, 탈취 시 장기간 악용될 수 있습니다.추출된 토큰으로 K..
소개쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 강력한 오픈소스 플랫폼입니다. 쿠버네티스는 다양한 리소스 타입을 통해 컨테이너 오케스트레이션을 효과적으로 수행합니다. 이 가이드에서는 쿠버네티스의 핵심 개념 중 서비스(Service), 네임스페이스(Namespace), 컨피그맵(ConfigMap), 시크릿(Secret)에 대해 자세히 알아보겠습니다.이 네 가지 리소스는 쿠버네티스 애플리케이션의 네트워킹, 조직화, 구성 관리, 기밀 정보 관리를 위한 필수적인 구성 요소입니다. 이들을 이해하고 효과적으로 활용하면 쿠버네티스의 장점을 극대화할 수 있습니다.서비스 (Service)서비스의 필요성파드(Pod)는 쿠버네티스의 기본 실행 단위이지만, 여러 특성으로 인해..
쿠버네티스(Kubernetes, K8s)는 컨테이너화된 애플리케이션을 자동화된 방식으로 배포, 확장 및 관리하기 위한 오픈소스 플랫폼입니다. 오늘은 쿠버네티스의 핵심 구성 요소인 Pod, ReplicaSet, Deployment에 대해 자세히 알아보겠습니다.1. Pod: 쿠버네티스의 기본 단위Pod이란?Pod은 쿠버네티스에서 컨테이너를 관리하는 가장 작은 배포 단위입니다. Pod이 생성되면 쿠버네티스 클러스터 내에서 고유한 IP 주소를 할당받게 됩니다.Pod의 특징하나의 Pod에는 하나 이상의 컨테이너가 포함될 수 있음 (pod ≠ container)일반적으로 하나의 애플리케이션 컨테이너를 하나의 Pod으로 실행Pod 내의 모든 컨테이너는 네트워크 네임스페이스를 공유Pod은 임시적(Ephemeral)인 ..
Kubernetes에서 Pod을 배포할 때 다양한 오류와 실수가 발생할 수 있습니다. 이러한 문제들은 애플리케이션 가용성, 성능, 그리고 클러스터 전체의 안정성에 영향을 미칠 수 있습니다. 이 글에서는 가장 흔히 발생하는 오류들과 그 해결 방법, 그리고 개발자와 운영자들이 자주 범하는 실수에 대해 살펴보겠습니다.1. 리소스 관리: Requests와 Limits리소스 관리는 Kubernetes에서 가장 중요하면서도 가장 자주 실수하는 부분입니다. 리소스 요청(requests)과 제한(limits)을 올바르게 설정하지 않으면 애플리케이션 성능과 클러스터 안정성에 직접적인 영향을 미칩니다.자주 발생하는 리소스 관련 실수리소스 요청을 설정하지 않거나 매우 낮게 설정resources: {} # BestEffor..