이번 포스팅에서는 kubernetes에 대해 알아보겠습니다.
예전에 포스팅 없이 쿠버네티스에 대해 공부해본적이 있는데, 그땐 잘 이해가 안되더라고요.
지금은 컨테이너 개념에 대해 학습했으니 그때보다 더 이해가 잘 되지 않을까 싶습니다.
저번에 저희학교에 지한별님 강연오셨을때 다음 PPT장면이 있었는데,

안에 있는 오픈소스 프레임워크가 실제로 기업에서 전부 사용하고 있다고 했었습니다.
저 중에서 클라우드에서 가장 핵심이 되는 부분이 aws와 쿠버네티스, 젠킨스라고 생각을 합니다.
쿠버네티스에 대해 처음 접한것도 토스 세미나에서

해당 영상을 유튜브로 돌려봤었습니다.
쿠버네티스는 여러 서버 위에서 컨테이너를 자동으로 배포·실행·관리해주는 오픈소스 플랫폼입니다.
Docker가 컨테이너 하나를 실행하는 도구라고 생각하면, k8s는 수십~수천개의 컨테이너를 여러개의 서버에 나눠서 안정적으로 운영하는 시스템입니다.
이게 잘 이해가 안될 수 있는데, 웹 서버 컨테이너(동일 코드)를 3개 실행하고 싶을때 이걸 YAML로 작성해서 k8s에 전달하면, k8s가 운용 가능한 서버 중 적당한 서버를 골라서 컨테이너를 올립니다. 만약에 그 웹서버중 하나가 죽으면 k8s에서 자동으로 감지하고 다른 곳에 서버를 띄웁니다.
kubernetes의 기본 개념들을 먼저 살펴보겠습니다
- Cluster : K8s에서 관리하는 전체 서버 묶음입니다. 여러대의 서버를 하나의 큰 실행환경처럼 다룹니다.
- Node : 클러스터에 포함된 실제 서버입니다. VM일 수도 있고, 물리 서버일 수도 있습니다.
- Pod : k8s에서 컨테이너를 실행하는 최소 단위입니다. 보통 컨테이너 하나가 Pod 하나 안에서 실행됩니다.
- Deployment : 이 Pod를 몇 개 유지할지, 어떤 이미지로 실행할 지를 정의하는 객체입니다.
- Service : Pod이 계속 생성되고 죽어도 고정된 주소로 접근할 수 있게 해주는 네트워크 객체입니다.
구조는 크게 두 부분으로 나뉩니다.
- Control Plane : 클러스터를 관리하는 두뇌 역할로, 사용자가 원하는 상태를 저장하고, 상태를 감시하면서 새 Pod을 만들고, 복구합니다.
- Worker Node : 실제 애플리케이션 컨테이너가 실행되는 서버입니다. 여기에는 kublet, container runtime, kube-proxy와 같은 구성요소가 있습니다.

큰 박스 중 왼쪽 박스가 Control Plane고 그 오른쪽 Node박스가 컨테이너가 실제로 실행되는 서버입니다.
kublet은 노드의 에이전트들이고, 실제 컨테이너 런타임에 실행을 요청합니다.
k-proxy는 kube-proxy로 Pod IP가 바뀌어도 서비스 이름/IP로 접근할 수 있게 네트워크 규칙을 관리합니다.
쿠버네티스 관련 보안 자료를 찾았는데

22년도 자료라 조금 오래되긴 했습니다.
쿠버네티스 보안이란 영역이 조금 넓긴 합니다.

다양한 설정부터 시작해서, 조금 생각치 못한 부분으로 Container image 관련 취약점도 있었는데, 공급망 공격과 비슷하게 취약한 이미지자체를 배포하거나, 오래된 버전의 소프트웨어를 사용하는 이미지를 사용하면 취약한 부분이 있을 수 있습니다.
쿠버네티스에 이미지를 사용할때는 신뢰할 수 있는 컨테이너 레지스트리를 사용해야 하고, 이미지도 최대한 minimal하게 사용해야 합니다.
다음 포스팅에서는 쿠버네티스 환경을 구축하고, 이게 어떻게 침해사고로 이뤄지는지 좋은 실습 자료를 찾아서 진행해보겠습니다
'취약점분석 (Blue Team) > Cloud' 카테고리의 다른 글
| [Cloud] OWASP Kubernetes Top 10 (0) | 2026.06.17 |
|---|---|
| [Cloud] Kubernetes 보안 실습 시나리오 1 ( RCE후 Pod 생성 ) (1) | 2026.06.16 |
| [Cloud] 도커 컨테이너 리눅스에서 구현 실습 (0) | 2026.06.15 |
| [Cloud] Docker 도커와 컨테이너 (0) | 2026.06.15 |
| Toss의 K8S를 더 안전하게: Falco를 활용한 K8S 위협 모니터링 토스 가디언즈 (0) | 2026.05.05 |