반응형
🍳머리말
k8s cluster의 resource들을 지울 때 종종 terminating상태에서 멈춰있는 경우가 있습니다. {}부분은 직접 입력해야하는 부분입니다.
📕 kubectl server로 curl
📔 namespace 강제 삭제
curl 명령어로 해당 finalizers를 끄는 temp json file을 작성해 namespace의 api를 호출해 해당 file을 넣음으로써 가능합니다.
(
NAMESPACE=olm
kubectl proxy &
kubectl get namespace $NAMESPACE -o json |jq '.spec = {"finalizers":[]}' >temp.json
curl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json 127.0.0.1:8001/api/v1/namespaces/$NAMESPACE/finalize
)
📕 --grace-period=0 --force
📔 pod 강제 삭제
kubectl -n {namespace명} delete pods --grace-period=0 --force {pod명}
📕Patch
📔 patch로 resource spec에 정의된 finalizers 끄기
설정된 resource 내 finalizers가 null이 아닌 경우 해당 resource 또는 이를 포함하는 상위 resource를 delete했을 때 stuck 현상이 발생합니다. file을 수정할 필요없이 patch로 원하는 field 내용을 변경할 수 있습니다.
kubectl patch {resource종류} {resource명} -p '{"metadata":{"finalizers":null}}'
제 경우에는 crd 삭제시 patch로 crd 내 spec들 중 finalizers를 null로 바꿔 삭제했습니다.
'Cloud' 카테고리의 다른 글
(Kubernetes) - resouce 생성 예시 file (0) | 2022.03.31 |
---|---|
(Redis Operator) - 설치방법 (0) | 2022.01.26 |
(Kubernetes) - 명령어 모음 (0) | 2022.01.06 |
(Operator-sdk) - Ubuntu에서 operator project 만들기 (0) | 2021.12.23 |
(Kubernetes) - cluster상에서 WAS-DB 연결 (10) | 2021.12.17 |