Part 18/26: SecurityContext와 PSA
Kubernetes에서 Pod와 컨테이너의 보안 설정은 SecurityContext와 Pod Security Admission(PSA)을 통해 제어한다. 이 기능들은 컨테이너가 호스트 시스템에 미치는 영향을 제한하고, 최소 권한 원칙을 적용하는 데 핵심적이다. SecurityContext 개념 원문 (kubernetes.io - Securi...
Kubernetes에서 Pod와 컨테이너의 보안 설정은 SecurityContext와 Pod Security Admission(PSA)을 통해 제어한다. 이 기능들은 컨테이너가 호스트 시스템에 미치는 영향을 제한하고, 최소 권한 원칙을 적용하는 데 핵심적이다. SecurityContext 개념 원문 (kubernetes.io - Securi...
Kubernetes의 RBAC(Role-Based Access Control)은 “누가” “무엇을” “어디서” 할 수 있는지를 제어한다. API 요청의 인증(Authentication) 이후 인가(Authorization) 단계에서 RBAC 규칙이 적용된다. RBAC 기본 개념 원문 (kubernetes.io - Using RBAC Autho...
Kubernetes에서 리소스 관리는 클러스터 안정성과 애플리케이션 성능의 핵심이다. requests는 스케줄링의 기준이 되고, limits는 런타임 제한을 설정한다. 이 두 값이 Pod의 QoS(Quality of Service) 클래스를 결정하며, 리소스 부족 시 어떤 Pod가 먼저 축출되는지에 영향을 미친다. 리소스 요청(Requests)과 제...
Kubernetes 스케줄러는 Pod가 실행될 노드를 결정한다. 기본적으로 리소스 가용성과 균형을 고려하지만, nodeSelector, Affinity/Anti-Affinity, Taints/Tolerations 등을 통해 세밀한 제어가 가능하다. 스케줄링 과정 kube-scheduler의 동작 flowchart TB detect["1. ...
컨테이너의 파일시스템은 일시적(ephemeral)이다. 컨테이너가 재시작되면 모든 데이터가 사라진다. Kubernetes는 Volume을 통해 데이터 지속성을 제공하고, PersistentVolume(PV)과 PersistentVolumeClaim(PVC)을 통해 스토리지를 추상화한다. Volume의 필요성 컨테이너 스토리지의 한계 컨테이너 재시...
애플리케이션 설정을 컨테이너 이미지에 하드코딩하면 환경별로 다른 이미지를 만들어야 한다. Kubernetes는 ConfigMap과 Secret을 통해 설정을 컨테이너와 분리하여 이식성과 보안성을 높인다. 원문 (kubernetes.io - ConfigMaps): A ConfigMap is an API object used to store non...
기본적으로 Kubernetes 클러스터 내의 모든 Pod는 서로 자유롭게 통신할 수 있다. 이는 마이크로서비스 간 통신에 편리하지만, 보안 관점에서는 위험할 수 있다. NetworkPolicy는 Pod 수준에서 네트워크 트래픽을 제어하는 방화벽 역할을 한다. 원문 (kubernetes.io - Network Policies): NetworkPo...
Service의 NodePort나 LoadBalancer는 L4(TCP/UDP) 수준에서 동작한다. 웹 애플리케이션에서 URL 경로나 호스트 기반 라우팅, TLS 종료 등 L7(HTTP/HTTPS) 기능이 필요할 때 Ingress를 사용한다. 원문 (kubernetes.io - Ingress): Ingress exposes HTTP and HT...
Kubernetes에서 Pod는 일시적(ephemeral)인 존재이다. Pod가 재시작되면 IP 주소가 변경되고, Deployment로 관리되는 Pod들은 언제든지 새로운 Pod로 교체될 수 있다. 이러한 환경에서 안정적인 네트워크 통신을 위해 Service라는 추상화 계층이 필요하다. 원문 (kubernetes.io - Service): In...
1. StatefulSet 1.1 StatefulSet이란? 원문 (kubernetes.io - StatefulSets): StatefulSet is the workload API object used to manage stateful applications. It manages the deployment and scaling of a set...