跳转至

应用集锦

强制删除命令空间

# 1
kubectl delete ns <ns> --force=true --grace-period=0

# 2
kubectl get ns kube-server -o json > kube-server.json

## edit kube-server.json
# spec.finalize=[]

kubectl proxy 

curl -i -k -H "Content-Type: application/json" \
  -X PUT \
  --data-binary @kube-server.json \
  http://127.0.0.1:8001/api/v1/namespaces/kube-server/finalize

# 3
kubectl get ns kube-server -o json > kube-server.json

## edit kube-server.json
# spec.finalize=[]
kubectl replace --raw "/api/v1/namespaces/kube-server/finalize" -f kube-server.json

# 3
kubectl proxy

python3 force-remove.py kube-server

#!/usr/bin/env python3
import atexit
import json
import requests
import subprocess
import sys

namespace = sys.argv[1]
proxy_process = subprocess.Popen(['kubectl', 'proxy'])
atexit.register(proxy_process.kill)
p = subprocess.Popen(['kubectl', 'get', 'namespace', namespace, '-o', 'json'], stdout=subprocess.PIPE)
p.wait()
data = json.load(p.stdout)
data['spec']['finalizers'] = []
requests.put('http://127.0.0.1:8001/api/v1/namespaces/{}/finalize'.format(namespace), json=data).raise_for_status()

# 4
kubectl edit ns kube-server
## remove config
#  finalizers:
#  - controller.cattle.io/namespace-auth