필요한 값만 채우면 바로 kubectl apply 할 수 있는 Deployment YAML을 만들어 줍니다.
이 둘을 헷갈리면 클러스터가 이상하게 동작합니다.
파드가 자꾸 재시작된다면 kubectl describe pod에서 OOMKilled가 보이는지 먼저 확인하세요. 메모리 limit이 너무 낮다는 뜻입니다.
기동이 느린 앱에 liveness만 짧게 걸면, 아직 뜨는 중인데 죽었다고 판단해 무한 재시작 루프에 빠집니다. 그래서 initialDelaySeconds를 넉넉히 주거나 startupProbe를 따로 쓰는 것이 안전합니다.
nginx:latest처럼 쓰면 지금 어떤 버전이 떠 있는지 알 수 없고, 롤백도 불가능합니다. 버전 태그나 커밋 해시를 쓰는 것이 원칙입니다.
kubectl apply -f deployment.yaml
kubectl rollout status deployment/이름 -n 네임스페이스
kubectl get pods -n 네임스페이스 -w
kubectl logs -f deployment/이름 -n 네임스페이스
# 문제가 생겼을 때 되돌리기
kubectl rollout undo deployment/이름 -n 네임스페이스
이 Deployment를 외부에 노출하려면 Service 생성기와 Ingress 생성기를 이어서 사용하세요.