[TIL]Kubernetes Namespace, BusyBox, ConfigMap, Secret-2025.8.28
2025. 8. 28. 16:30ㆍ대외활동/인공지능사관학교
728x90
반응형
SMALL

📝 TIL: Kubernetes Namespace, BusyBox, ConfigMap, Secret 정리
1. Namespace
핵심 개념
- 논리적 구분: 하나의 쿠버네티스 클러스터를 여러 개의 가상 클러스터처럼 나누어 사용.
- 목적
- 리소스 격리 및 이름 충돌 방지
- RBAC 기반 접근 제어
- 리소스 할당량 관리 (Quota)
주요 명령어
- 조회: kubectl get ns
- 생성: kubectl create namespace dev
- YAML 생성: kubectl apply -f dev-namespace.yaml
- 특정 네임스페이스 리소스 조회: kubectl get pods -n dev
- 기본 네임스페이스 변경:
kubectl config set-context --current --namespace=dev
- 삭제: kubectl delete namespace <이름> (⚠️ 모든 리소스가 함께 삭제됨, finalizer 문제 시 강제 삭제 필요)
베스트 프랙티스
- 환경(dev, staging, prod)별 분리
- 팀별(frontend, backend) 분리
- 서비스별(monitoring, logging, ingress) 분리
2. BusyBox
핵심 개념
- 임베디드 리눅스의 스위스 군용칼: 하나의 실행 파일이 수많은 명령어(ls, ping, nslookup 등)를 제공
- Docker 이미지 특징
- 초경량 (수 MB 수준)
- 최소 구성 (불필요한 패키지 없음 → 보안 이점)
활용 사례
- 디버깅/네트워크 점검
- kubectl exec -it busybox -- /bin/sh
- ping, nslookup, wget 등을 이용해 연결 상태 확인
- Init Container로 사전 작업 수행
- Job/테스트 파드 실행 시 경량 이미지로 활용
실습 예제
#yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox-debug-pod
spec:
containers:
- name: busybox
image: busybox:1.36
command: ["/bin/sh", "-c", "ping -c 3 8.8.8.8 && sleep 3600"]
- 실행: kubectl apply -f busybox-debug.yaml
- 확인: kubectl logs busybox-debug-pod
3. ConfigMap
핵심 개념
- 애플리케이션 설정을 코드/이미지와 분리하여 관리하는 객체
- 민감하지 않은 데이터(DB 주소, API endpoint, feature flag 등)에 적합.
- 민감 데이터는 Secret에 저장해야 함.
생성 방법
1. 리터럴 값:
kubectl create configmap my-app-config --from-literal=app.mode=production
2. 파일 기반: --from-file=app.properties
3. YAML 선언 (권장): GitOps 등 버전 관리 용이
사용 방법
- 환경 변수 주입
- envFrom으로 전체 주입
- 볼륨 마운트 (파일처럼 사용)
volumes:
- name: config-volume
configMap:
name: my-nginx-config
주의 사항
- 변경 시 파드에 자동 반영되지 않음
- 안정적인 적용법: kubectl rollout restart deployment <이름>
4. Secret
핵심 개념
- 비밀번호, API 키, 인증서 같은 민감 정보 저장용 객체
- ConfigMap과 동일하게 key-value 저장, 하지만 목적이 보안
- 값은 Base64 인코딩 (암호화 아님). 실제 보안은 RBAC + etcd 암호화 설정에 의존해야 함.
생성 방법
- 리터럴 값:
kubectl create secret generic my-db-credentials \ --from-literal=DB_USER=kosa --from-literal=DB_PASSWORD='kosa1004$'
2. 파일 기반 (--from-file)
3. YAML 선언 (Base64 인코딩 후 data에 저장)
사용 방법
- 환경 변수 주입
- 볼륨 마운트 (TLS 인증서, 설정 파일)
volumes:
- name: db-secret-volume
secret:
secretName: my-db-credentials
보안 Best Practice
- 최소 권한 원칙 (필요한 키만 주입)
- RBAC로 Secret 접근 제한
- 운영 환경에서 etcd 저장 시 암호화 설정 필수
💡 오늘 배운 점 & 느낀 점
- 네임스페이스를 통해 환경·팀·서비스 단위로 리소스를 안전하게 분리할 수 있다는 점을 확인.
- BusyBox가 단순한 툴이 아니라 쿠버네티스 디버깅의 핵심 도구라는 걸 배움.
- ConfigMap과 Secret의 용도 구분이 매우 중요: “설정 vs 보안” 이 차이를 항상 기억해야 함.
- 실제 운영 환경에서는 rollout restart, RBAC 정책, 암호화 등 운영 안정성과 보안 강화가 필수라는 교훈을 얻음.
728x90
반응형
LIST
'대외활동 > 인공지능사관학교' 카테고리의 다른 글
| [TIL] Kubernetes 스토리지 & 보안 정리-2025.09.01 (1) | 2025.09.01 |
|---|---|
| [학습]IT·AI 업계 동향 파악.with GPT/Notion-인공지능사관학교6기 (2) | 2025.08.28 |
| [TIL] Docker Compose,Docker Replica-2025.8.19 (1) | 2025.08.28 |
| [TIL]Docker Swarm-2025.08.18 (0) | 2025.08.28 |
| [AI Crew][특강] 클라우드 시대의 준비 – 취업 전략부터 네이버 클라우드 동향까지/네이버클라우드특강3 (1) | 2025.08.28 |