Kubernetes YAML 패턴: 실무에서 자주 사용하는 5가지 예시
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 대상자: Kubernetes 관리자, CKA 시험 준비자, 프로덕션 클러스터 관리자
- 난이도: 중급~고급 (실무 경험자 및 시험 준비자 대상)
핵심 요약
- 자원 제한 설정:
resources.requests
및resources.limits
를 통해 CPU/메모리 할당 최적화 (100m
,128Mi
등) - ConfigMap 볼륨 마운트:
volumeMounts
와configMap
을 통해 외부 설정 파일을 Pod에 안전하게 배포 - HPA(수평 Pod Autoscaler):
averageUtilization: 60
기준으로 자동 스케일링,minReplicas
및maxReplicas
설정 필수
섹션별 세부 요약
1. 기본 Deployment와 자원 제한
- apps/v1
API 사용, replicas: 2
로 무중단 배포 보장
- resources.requests
와 resources.limits
를 통해 CPU/메모리 할당 최적화 (예: cpu: "100m"
, memory: "128Mi"
)
- 시험 및 프로덕션 환경에서 안정적인 성능 보장
2. ConfigMap 볼륨 마운트
- volumeMounts
를 통해 /etc/config
경로에 ConfigMap 마운트
- configMap.name: my-configmap
으로 외부 설정 파일을 Pod에 전달
- 애플리케이션의 설정 변경 시 재배포 없이 즉시 반영 가능
3. 서비스 + Ingress 조합 (HTTP 라우팅)
- Service
로 Pod에 접근 가능한 엔드포인트 정의 (port: 80
, targetPort: 8080
)
- Ingress
를 통해 example.com
도메인을 web-svc
서비스에 연결
- pathType: Prefix
로 경로 기반 라우팅 구현
4. Horizontal Pod Autoscaler (HPA)
- autoscaling/v2
API 사용, scaleTargetRef
로 Deployment 연결
- CPU 사용률 60%
기준으로 minReplicas: 2
~ maxReplicas: 10
간 자동 스케일링
- 클러스터 부하에 따른 자동 확장으로 서비스 가용성 향상
5. 네트워크 정책 (Namespace 제한)
- NetworkPolicy
로 allowed-ns
라벨이 있는 Namespace만 허용
- podSelector: {}
로 모든 Pod에 적용, ingress.from.namespaceSelector
로 접근 제어
- 보안 강화를 위한 네트워크 트래픽 제한 패턴
결론
- Kubernetes 실무에서 자주 사용되는 YAML 패턴은
자원 제한
,ConfigMap
,HPA
,Ingress
,NetworkPolicy
등이며, CKA 시험 및 프로덕션 배포 시 반드시 적용해야 함. - 추가 학습: CKA Study Guide에서 무료/유료 버전 제공 (코드
CKA15SUMMER
사용 가능).