디플로이먼트는 애플리케이션(컨트롤러, 파드)을 배포하고 선언적으로 업데이트를 수행하는 리소스이다. 디플로이먼트 리소스는, 하위에 레플리카셋 컨트롤러를 제어하고, 그리고 레플리카셋 컨트롤러가 하위 파드를 제어하는 구조이다.
#vim myapp-deploy.yml

일부러 오타를 만든 후
#kubectl crete -f myapp-deploy.yml
다시 #vim myapp-deploy.yml 수정 후.

#kubectl apply -f myapp-deploy.yml
apply를 했지만 기존의 레플리카셋은 남아있고 파드만 새로 작성되었다.
#watch -n1 kubectl get deploy,po,replicasets.apps,deployments.apps

다른 방식으로 이미지를 변경하고 확인하는 방법.

#kubectl edit deployments.apps myapp-deploy 로 수정한 deployment의 CHANGE-CAUSE를 바꿔줄 수 있다.
ghcr.io/c1t1d0s7/go-myweb:v1으로 일부러 오타를 낸 후
RollingUpdate를 추가하면

파드가 1개를 실행하다가 멈춘다.

#kubectl rollout history deployment myapp-deploy로 확인 후. (Deployment파일에 kubernetes.io/change-cause: 를 추가하지 않으면 버전이 작성되지 않는다.)
이전 버전으로 돌아갈 수 있다.
#kubectl rollout undo deployment myapp-deploy --to-revision=3


#vim myapp-sts.yml

#vim myapp-svc-headless.yml

파드별로 접속이 가능함.

기존에있던 스토리지클래스로 스테이트풀셋 생성.
