예시
입력 (Kubernetes YAML)
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
template:
metadata:
labels: {app: web}
spec:
containers:
- name: web
image: nginx
envFrom:
- configMapRef: {name: web-config}
---
apiVersion: v1
kind: Service
metadata: {name: web}
spec:
selector: {app: web}
ports: [{port: 80}]
---
apiVersion: v1
kind: ConfigMap
metadata: {name: web-config}
data: {LOG_LEVEL: info}결과
3 리소스, 2 관계. - Service/web → Deployment/web (selector 매칭) - Deployment/web → ConfigMap/web-config (envFrom)
참고
Service → Workload 는 selector 가 pod template labels 와 정확히 매칭될 때만 연결. 다른 namespace 의 리소스는 같은 namespace 안에서만 매칭합니다.
사용법 / 자주 묻는 질문
이런 경우 사용하세요
- Helm chart 또는 Kustomize 의 render 결과를 시각화해 관계 검증
- kubectl get all -o yaml 결과를 붙여넣어 실행 중 리소스 구조 파악
- PR 리뷰 — 새 매니페스트가 기존 리소스와 어떻게 연결되는지 한눈에
- 온보딩 자료 — 신입에게 '우리 서비스의 K8s 구조' 설명할 때
- 마이그레이션 검증 — 클러스터 간 옮길 때 관계 누락 확인
자주 묻는 질문
- Q.어떤 리소스를 지원하나요?
- A.Deployment / StatefulSet / DaemonSet / Job / CronJob / Pod / Service / Ingress / ConfigMap / Secret / PersistentVolumeClaim / HorizontalPodAutoscaler / ServiceAccount / Namespace. CRD (CustomResourceDefinition) 는 지원하지 않습니다.
- Q.관계는 어떻게 추론하나요?
- A.Ingress→Service: spec.rules backend service name. Service→Workload: selector ↔ pod template labels. Workload→ConfigMap/Secret: envFrom / env.valueFrom / volumes 참조. Workload→PVC: volumes.persistentVolumeClaim. HPA→Workload: spec.scaleTargetRef.
- Q.민감한 매니페스트도 안전한가요?
- A.예. 모든 처리는 브라우저 안에서 끝납니다. Secret 의 stringData / data 값도 서버로 전송되지 않습니다. 페이지를 닫으면 메모리에서도 사라집니다.
재미있는 사실
Kubernetes 의 어원은 그리스어 'κυβερνήτης' (조타수·항해사). 줄임말 K8s 는 'K' + 8 글자 + 's' = 'ubernete'. 같은 어원의 단어 — Helm (조타륜) 이 chart 패키지 매니저 이름이 된 이유.
kubernetes.ioKubernetes 는 Google 의 내부 시스템 Borg (2003-, 모든 Google 서비스 운영) 의 후속. Borg → Omega → Kubernetes 진화 — 2014 년 Google 이 오픈소스 공개. 'Kubernetes' 이름 자체가 Borg 의 함선 이름 reference.
Wikipedia — Borgv1.0 출시는 2015 년 7월. CNCF 첫 졸업 프로젝트 (2018). 현재 가장 활발한 OSS 중 하나 — 5000+ contributors, 매년 50만+ commit. 거의 모든 클라우드 (GKE/EKS/AKS) 가 관리형으로 제공.
CNCF — Kubernetes
관련 가이드
- Kubernetes YAML 완벽 정리 — 매니페스트 구조·리소스 종류·연결 방식
모든 Kubernetes 매니페스트의 공통 구조 (apiVersion / kind / metadata / spec), 실무에서 쓰는 리소스 종류, Service 가 label 로 Pod 를 찾는 방식, 입문자가 자주 빠지는 매니페스트 함정.
- Docker Compose 완벽 정리 — 서비스·네트워크·볼륨·실전 구성법
docker-compose.yml 의 구조, 각 top-level 키 (services / networks / volumes / configs / secrets) 역할, depends_on 과 healthcheck 차이, named volume vs bind mount, 개발 환경을 깨뜨리는 함정들.
- Docker 컨테이너는 어떻게 격리될까?
컨테이너는 가벼운 VM 이 아닌, namespace 와 cgroup 으로 격리된 Linux 프로세스. namespace · cgroup · overlay 파일시스템 · image layer · Docker daemon 의 실제 동작을 풀어본다.
관련 도구
- JSON 포매터 / 검증기
JSON 문자열을 포맷팅·검증·압축합니다. 들여쓰기 조정과 키 정렬 옵션이 있으며, 브라우저에서 즉시 실행됩니다.
- 문자열 케이스 변환
문자열을 camelCase·PascalCase·snake_case·kebab-case·CONSTANT_CASE·Title Case 6개 형태로 동시에 변환해 보여줍니다.
- 정규식 테스터
JavaScript 정규식을 실시간으로 테스트합니다. g/i/m/s/u/y 플래그와 캡처 그룹을 지원합니다.
- Markdown 프리뷰
Markdown을 HTML로 렌더링하여 좌·우로 비교 표시합니다. CommonMark + GFM(테이블·코드 펜스·태스크 리스트) 지원.
- HTML → Markdown
HTML을 Markdown으로 변환합니다. 헤딩·리스트·링크·코드·표·인용 지원. 브라우저 DOMParser 사용 — 정확하고 0 dependency.
- YAML ↔ JSON 변환
YAML과 JSON을 양방향 변환합니다. YAML 측의 주석·멀티라인 문자열을 허용합니다.
- 텍스트 비교
두 텍스트를 줄·단어·문자 단위로 비교하고 추가/삭제를 강조합니다.
- JSON 비교
두 JSON을 정렬·정규화 후 비교, 변경점을 강조합니다. 잘못된 JSON 에러 안내 포함.
- CSV ↔ JSON
CSV와 JSON을 상호 변환합니다. 쿼팅·구분자·헤더 행을 지원합니다.
- SQL 포매터
SQL 쿼리를 들여쓰기·키워드 케이스에 맞게 포매팅합니다. PostgreSQL/MySQL/SQLite/Standard 지원.
- XML 포매터
XML을 보기 좋게 포매팅하거나 압축합니다. SOAP·sitemap·설정 파일에 적합.
- XML ↔ JSON
XML과 JSON을 상호 변환합니다. 속성과 요소 표기를 모두 지원합니다.
- 스마트 붙여넣기
어떤 텍스트든 붙여넣으면 적합한 도구를 추천합니다 — JSON·JWT·Base64·URL·UUID·Cron 등 15종 자동 감지.
- 로렘 입숨 생성기
더미 텍스트를 단어·문장·문단 단위로 생성합니다. 정통 Lorem Ipsum 또는 랜덤.
- JSON Path 추출기
JSONPath 표현식($.store.book[*].author 등)으로 JSON에서 값을 추출합니다.
- JSON Schema 검증기
JSON 데이터를 JSON Schema(Draft 2020-12)로 검증합니다. Ajv + format 검증 지원.
- JSON Schema 생성기
샘플 JSON에서 JSON Schema(Draft 2020-12)를 자동 생성합니다. 타입·필수 필드·중첩 구조 추론.
- HTML 포매터
HTML을 보기 좋게 들여쓰기·압축·속성 정렬합니다.
- CSS 포매터
CSS를 들여쓰기·압축합니다. 셀렉터·속성 스타일 옵션.
- JavaScript 포매터
JavaScript를 들여쓰기·압축합니다. 중괄호 스타일/들여쓰기 옵션.
- TOML ↔ JSON
TOML과 JSON을 상호 변환합니다. Cargo.toml, pyproject.toml 등 설정 파일에 자주 사용.
- INI ↔ JSON
INI 설정 파일을 JSON으로 변환합니다. [section]·주석(;/#)·key=value 지원.
- JSON → TypeScript
JSON 샘플로 TypeScript interface를 생성합니다. 중첩 객체는 별도 interface로 분리.
- JS Object → JSON
JavaScript 객체 리터럴(따옴표 없는 키, 작은따옴표, trailing comma, 주석)을 표준 JSON 으로 변환합니다. 관대한 파서, 엄격한 출력.
- Slug 생성기
텍스트를 URL-safe slug으로 변환합니다. 구분자/대소문자/악센트 제거 옵션.
- ASCII 트리
들여쓰기 또는 경로 목록을 box-drawing 트리(├── │ └──)로 변환합니다.
- Diff 패치
두 텍스트로부터 unified diff(-u) 패치를 생성합니다. `git apply` / `patch -p0` 호환.
- Mock 데이터 생성기
이름·이메일·커스텀 필드·UUID·날짜 등 가짜 JSON 레코드와 SQL INSERT seed 데이터를 생성합니다. 외부 의존 없음.
- MongoDB Extended JSON
MongoDB Extended JSON(EJSON)을 Canonical ↔ Relaxed 양방향 변환하거나, BSON wrapper를 제거해 일반 JSON으로 만듭니다. 16종 wrapper 인식 ($oid/$date/$numberLong/$numberDecimal/$binary/…).
- Docker Compose 시각화
docker-compose.yml 을 붙여넣으면 서비스·네트워크·볼륨·depends_on 을 인터랙티브 그래프로 그립니다. 100% 브라우저 처리, yaml 라이브러리는 lazy import.
- PDF 텍스트 추출
PDF 파일에서 텍스트를 추출합니다. 페이지별 또는 전체 합쳐서. 마크다운 호환 출력, 브라우저에서만 처리.
- PPTX 텍스트 추출
PPTX 파일에서 슬라이드 텍스트를 추출합니다. 플레인 / 마크다운 / 슬라이드별 3 모드. 덱을 마크다운으로 옮길 때 유용 — 모두 브라우저에서.
- 정규식 다이어그램
정규식을 railroad 다이어그램으로 시각화. 분기·그룹·반복을 한눈에 — 브라우저에서.
- 글자수 세기
글자수(공백 포함/제외)·단어·문장·문단·줄·바이트 수를 실시간으로 세어줍니다. 자소서·리포트 분량 확인까지 브라우저에서 바로.
- 토큰 계산기 (LLM)
LLM 토큰 수와 비용을 계산합니다. GPT는 정확(tiktoken), Claude/Gemini는 추정. 컨텍스트 한도 게이지. 브라우저에서 바로.