Kubernetes를 처음 배우는 분이라면 .yaml 파일을 처음부터 작성하는 것이 너무 번거롭다고 느낄 때가 많습니다. 특히 Deployment, Service, ConfigMap, Secret 같은 리소스를 직접 작성하려면 필드와 옵션을 일일이 기억해야 하죠.
하지만 kubectl --dry-run=client 옵션을 활용하면, 실제 클러스터에 적용하지 않고 YAML 파일을 바로 생성할 수 있습니다. 오늘은 이 유용한 팁과 함께 자동으로 YAML 파일을 만들어주는 간단한 쉘 스크립트까지 소개합니다.
--dry-run=client 활용법
예를 들어 Nginx Deployment를 만들고 싶지만, 먼저 YAML 파일로 확인하고 싶다면 다음 명령어를 사용할 수 있습니다.
kubectl create deployment drydeploy --image=nginx --replicas=3 --dry-run=client -o yaml > drydeploy.yaml
--replicas=3→ 생성할 Pod 수--dry-run=client→ 실제 클러스터에 적용하지 않고 시뮬레이션-o yaml→ YAML 형식 출력> drydeploy.yaml→ 파일로 저장
이렇게 생성된 drydeploy.yaml을 열어서 필요한 설정을 수정한 후, 실제 클러스터에 적용할 수 있습니다.
kubectl apply -f drydeploy.yaml
쉘 스크립트로 YAML 자동 생성
매번 명령어를 입력하는 대신, 아래와 같이 사용자가 선택하면 자동으로 YAML 파일을 생성해주는 스크립트를 만들 수 있습니다.
🧩 kube-yaml-generator.sh
#!/bin/bash
echo "Select resource type:"
echo "1) Deployment"
echo "2) Service"
echo "3) ConfigMap"
echo "4) Secret"
read -p "Enter number: " choice
read -p "Enter resource name: " name
case $choice in
1)
read -p "Enter image name (e.g. nginx): " image
read -p "Replica count (default 1): " replicas
replicas=${replicas:-1}
kubectl create deployment "$name" \
--image="$image" \
--replicas="$replicas" \
--dry-run=client -o yaml > "${name}-deployment.yaml"
echo "✅ ${name}-deployment.yaml created."
;;
2)
read -p "Enter port number (e.g. 80): " port
kubectl expose deployment "$name" \
--port="$port" \
--target-port="$port" \
--type=ClusterIP \
--dry-run=client -o yaml > "${name}-service.yaml"
echo "✅ ${name}-service.yaml created."
;;
3)
read -p "Enter key: " key
read -p "Enter value: " value
kubectl create configmap "$name" \
--from-literal="$key=$value" \
--dry-run=client -o yaml > "${name}-configmap.yaml"
echo "✅ ${name}-configmap.yaml created."
;;
4)
read -p "Enter key: " key
read -p "Enter value: " value
kubectl create secret generic "$name" \
--from-literal="$key=$value" \
--dry-run=client -o yaml > "${name}-secret.yaml"
echo "✅ ${name}-secret.yaml created."
;;
*)
echo "Invalid selection."
;;
esac
스크립트 사용법
- 파일 저장 →
kube-yaml-generator.sh - 실행 권한 부여:
chmod +x kube-yaml-generator.sh- 실행:
./kube-yaml-generator.sh- 선택한 리소스의 YAML 파일이 생성됩니다.
요약
- .yaml 파일을 처음부터 작성하는 대신
--dry-run=client로 빠르게 생성 - 쉘 스크립트를 활용하면 반복 작업 최소화
- YAML 파일을 버전 관리(Git)나 CI/CD 파이프라인에 그대로 활용 가능
Kubernetes 학습 초반에는 실제 클러스터에 적용하기 전에 YAML 파일로 미리 확인하는 습관을 들이면 오류를 줄이고 학습 효율도 높일 수 있습니다.