Deployment, Service, ConfigMap, Ingress 규칙 및 HPA에 대한 Kubernetes YAML 매니페스트를 생성합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: default
labels:
app: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: myapp:latest
ports:
- containerPort: 3000
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
env:
- name: NODE_ENV
value: "production"
livenessProbe:
httpGet:
path: /healthz
port: 3000
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 10Kubernetes 리소스는 YAML 매니페스트로 정의되며, `<code>kubectl apply -f`</code> 명령어를 통해 적용됩니다. Deployment는 복제된 Pod 집합을 관리합니다. Service는 안정적인 IP 주소나 DNS 이름을 통해 해당 Pod들을 외부로 노출합니다. ConfigMap은 시크릿이 아닌 구성 데이터를 저장합니다. Ingress는 외부 HTTP 트래픽을 내부 서비스로 라우팅합니다. HPA는 CPU 또는 메모리 사용량을 기준으로 Deployment 복제본의 규모를 자동으로 조정합니다.
상단의 탭에서 리소스 유형을 선택하세요. 해당 리소스에 대한 필드를 입력한 다음, 생성된 YAML을 복사하세요. ‘모든 리소스(All Resources)’ 탭을 사용하면 5개의 매니페스트를 모두 한 번에 <code>---</code> 구분자로 분리된 단일 다중 문서 YAML 파일로 생성할 수 있습니다.
리소스 요청은 컨테이너의 스케줄링을 위해 필요한 최소 CPU 및 메모리량을 정의합니다. 제한은 컨테이너가 소비할 수 있는 최대량을 상한으로 설정합니다. 제한 없이 요청만 설정하는 것이 프로덕션 환경에서 가장 일반적인 패턴으로, 버스팅을 허용하면서도 스케줄링 여유를 보장합니다. HPA를 사용하려면 클러스터에 메트릭 서버가 설치되어 있어야 합니다. Ingress 규칙을 적용하려면 nginx-ingress나 Traefik과 같은 Ingress 컨트롤러가 필요합니다.