문서를 살펴보면 ‘a’포드를 삭제하는 API 호출이 있지만 모든 네임 스페이스에서 모든 포드를 종료하는 방법이 있습니까?
답변
요청한 내용을 정확하게 수행하라는 명령은 없습니다.
다음은 일부 일치하는 항목입니다.
이 명령을 사용하여 단일 네임 스페이스에서 모든 포드를 삭제할 수 있습니다.
kubectl delete --all pods --namespace=foo
네임 스페이스에서 모든 배포를 삭제할 수도 있습니다. 그러면 네임 스페이스에 해당하는 배포에 연결된 모든 포드가 삭제됩니다.
kubectl delete --all deployments --namespace=foo
이 명령을 사용하여 모든 네임 스페이스와 모든 네임 스페이스의 모든 객체 (노드 및 일부 이벤트와 같은 네임 스페이스가없는 객체는 아님)를 삭제할 수 있습니다.
kubectl delete --all namespaces
그러나 후자의 명령은 kube-system 네임 스페이스의 항목을 삭제하여 클러스터를 사용할 수 없게하므로 원하는 작업이 아닐 수 있습니다.
이 명령은 kube-system을 제외한 모든 네임 스페이스를 삭제합니다.
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done
답변
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
성가신 복제 컨트롤러도 제거하십시오.
답변
당신 sed
은 이것을해야합니다 :
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace \1 delete pod \2/e'
설명합니다 :
kubectl get pods --all-namespaces
모든 네임 스페이스의 모든 포드 목록을 가져 오려면 command 를 사용하십시오 .--no-headers=true
헤더를 숨기려면 옵션을 사용 하십시오.- 사용
s
의 명령을sed
나타내는 처음 두 단어 페치namespace
하고pod's name
각각 그 조합delete
들을 사용하여 명령. - 마지막
delete
명령은 다음과 같습니다
kubectl --namespace kube-system delete pod heapster-eq3yw
. - 명령
e
수정자를 사용하여s
위에서 조립 한 명령을 실행하면 실제delete
작업 이 수행됩니다 .
kube-system
네임 스페이스에서 포드를 삭제하지 않으려면 명령 전에 네임 스페이스 grep -v kube-system
를 제외 하도록 추가해야합니다 .kube-system
sed
답변
당신은 단순히 실행할 수 있습니다
kubectl delete all --all --all-namespaces
-
첫 번째
all
는 공통 리소스 종류 (포드, 복제 세트, 배포 등)를 의미합니다.kubectl get all == kubectl get pods,rs,deployments, ...
-
두 번째
--all
는 선택한 종류의 모든 자원을 선택하는 수단입니다.
참고 all
포함되지 않습니다 :
- 네임 스페이스가 아닌 리소스 (예 : clusterrolebindings, clusterroles 등)
- 구성 맵
- 역할 바인딩
- 역할
- 비밀
- …
완벽하게 정리하려면
- 다른 도구 (예 : Helm, Kustomize 등)를 사용할 수 있습니다.
- 네임 스페이스를 사용할 수 있습니다.
- 리소스를 만들 때 레이블을 사용할 수 있습니다.
답변
다음은 grep으로 확장하여 이름별로 필터링 할 수있는 하나의 라이너입니다.
kubectl get pods -o jsonpath="{.items[*].metadata.name}" | \
tr " " "\n" | \
xargs -i -P 0 kubectl delete pods {}
답변
kubectl delete po,ing,svc,pv,pvc,sc,ep,rc,deploy,replicaset,daemonset --all -A
답변
이미 생성 된 포드가있는 경우 먼저 모든 배포를 삭제하는 것이 좋습니다
kubectl delete -n *NAMESPACE deployment *DEPLOYMENT
NAMSPACE와 DEPLOYMENT를 해당하는 것으로 바꾸면 다음 명령으로 모든 배포 정보를 얻을 수 있습니다.
kubectl get deployments --all-namespaces