kubectl diff로 apply 전 변경분 미리보기
조회 3 · 댓글 0
매니페스트를 kubectl apply 하기 전에 실제로 뭐가 바뀌는지 확인하고 싶을 때 씁니다. kubectl diff는 클러스터의 live 리소스와 지금 적용하려는 내용을 비교해서 YAML diff로 보여줍니다. 인자는 apply와 똑같이 -f로 파일, 디렉터리, URL, 표준입력을 받습니다.
kubectl diff -f deploy.yaml
cat service.yaml | kubectl diff -f -
kubectl diff -k ./overlays/prodCI에 넣을 때 종료 코드를 조심해야 합니다. 0은 차이 없음, 1은 차이 있음, 1보다 크면 에러입니다. 즉 변경분이 있으면 1로 떨어지므로 이걸 그냥 실패로 처리하면 안 됩니다. 0과 1을 정상으로 두고 2 이상만 에러로 걸러주면 됩니다.
주의할 점으로, 기본 동작에서 Secret 값은 마스킹되어 diff에 실제 값이 안 나옵니다. 값까지 봐야 하면 --show-secrets를 줘야 합니다(민감정보가 터미널/로그에 찍히니 조심). diff 명령 자체는 기본이 diff -u -N이고, KUBECTL_EXTERNAL_DIFF 환경변수로 바꿀 수 있습니다.
KUBECTL_EXTERNAL_DIFF="colordiff -N -u" kubectl diff -f deploy.yaml🔗 https://kubernetes.io/docs/reference/kubectl/generated/kubectl_diff/
로그인 후 답글을 남길 수 있습니다.