쿠버네티스 리소스 강제로 삭제하기

간혹 쿠버네티스의 리소스의 삭제가 불가능해지는 경우가 있습니다. 예를 들어, 커스텀 리소스를 등록하여 사용하다가, 의존성을 무시한채 컴포넌트를 제거해버려서 특정 리소스를 삭제하지 못하는 경우 입니다. 아무런 생각없이 다시 설치할 생각에, 네임스페이스를 제거해버렸다가, 영원히 삭제되지 않는 고통을 경험해 볼 수 있습니다.

이럴 경우 최후의 방법을 사용해야 하는데, 바로 etcd 의 리소스 데이터를 삭제해 버리는 것입니다. 정상적인 방법은 아니니, 꼭 필요한 경우가 아니면 사용하지 않는 것을 추천 드립니다.

다음은 etcdctl을 이용해서, 특정 리소스를 삭제하는 예제입니다.

tekton-pipelines 이라는 네임스페이스에 있는 echo-hello-world-task-run 라는 taskruns 커스텀 리소스를 삭제하는 것입니다.

ADVERTISE_URL="<https://10.203.163.116:2379>"
KEY="/registry/tekton.dev/taskruns/tekton-pipelines/echo-hello-world-task-run"

kubectl -n kube-system exec etcd-node001 -- sh -c \\
"ETCDCTL_API=3 etcdctl \\
--endpoints $ADVERTISE_URL \\
--cacert /etc/kubernetes/pki/etcd/ca.crt \\
--key /etc/kubernetes/pki/etcd/server.key \\
--cert /etc/kubernetes/pki/etcd/server.crt \\
del \\"$KEY\\"

etcd에 대한 자세한 사항은 “쿠버네티스의 etcd 살펴보기“를 참고하시기 바랍니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다