原本我想下载ingress-nginx,一直拉不下来后面发现网站已经没有了
[root@k8s-master ~]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
default nginx-5f4cf5b5b4-gr95f 1/1 Running 0 11h
default nginx-5f4cf5b5b4-h28gj 1/1 Running 0 11h
default nginx-5f4cf5b5b4-wh9xd 1/1 Running 0 11h
ingress-nginx ingress-nginx-admission-create-zs4br 0/1 Completed 0 67s
ingress-nginx ingress-nginx-admission-patch-grsnf 0/1 CrashLoopBackOff 3 (24s ago) 67s
ingress-nginx ingress-nginx-controller-79759485b-6hrsf 0/1 Running 0 68s
kube-system calico-kube-controllers-86b55cf789-d52tz 1/1 Running 0 13h
kube-system calico-node-7c9sc 1/1 Running 0 13h
kube-system calico-node-q7bwq 1/1 Running 0 13h
kube-system calico-node-xk2ld 1/1 Running 0 13h
kube-system coredns-7bc88ddb8b-nv77z 1/1 Running 0 13h
kube-system dashboard-metrics-scraper-77b667b99d-dcbnv 1/1 Running 0 13h
kube-system kubernetes-dashboard-74fb9f77fb-m7lz6 1/1 Running 1 (92m ago) 13h
kube-system metrics-server-dfb478476-bkk4w 0/1 ImagePullBackOff 0 11h
kube-system node-local-dns-bwklb 1/1 Running 0 13h
kube-system node-local-dns-l4rxj 1/1 Running 0 13h
kube-system node-local-dns-zsbtj 1/1 Running 0 13h
后面删除服务一直删不掉就卡在这里
[root@k8s-master ~]# kubectl delete -f deploy.yaml
namespace "ingress-nginx" deleted
serviceaccount "ingress-nginx" deleted
configmap "ingress-nginx-controller" deleted
clusterrole.rbac.authorization.k8s.io "ingress-nginx" deleted
clusterrolebinding.rbac.authorization.k8s.io "ingress-nginx" deleted
role.rbac.authorization.k8s.io "ingress-nginx" deleted
rolebinding.rbac.authorization.k8s.io "ingress-nginx" deleted
service "ingress-nginx-controller-admission" deleted
service "ingress-nginx-controller" deleted
deployment.apps "ingress-nginx-controller" deleted
validatingwebhookconfiguration.admissionregistration.k8s.io "ingress-nginx-admission" deleted
serviceaccount "ingress-nginx-admission" deleted
clusterrole.rbac.authorization.k8s.io "ingress-nginx-admission" deleted
clusterrolebinding.rbac.authorization.k8s.io "ingress-nginx-admission" deleted
role.rbac.authorization.k8s.io "ingress-nginx-admission" deleted
rolebinding.rbac.authorization.k8s.io "ingress-nginx-admission" deleted
job.batch "ingress-nginx-admission-create" deleted
job.batch "ingress-nginx-admission-patch" deleted
查看ns发现一直Terminating中
NAME STATUS AGE
default Active 13h
ingress-nginx Terminating 4m12s
kube-node-lease Active 13h
kube-public Active 13h
kube-system Active 13h
[root@k8s-master ~]#
经过我网上查询资料解决这个问题
首先将命名空间 ingress-nginx
的详细信息以 JSON 格式输出,并将输出保存到名为 tmp.json
的文件中。
[root@k8s-master ~]# kubectl get ns ingress-nginx -o json > tmp.json
[root@k8s-master ~]# ls
anaconda-ks.cfg ansible ansible.tar.gz deploy.yaml kubeasz-3.6 kubeasz-3.6.zip original-ks.cfg tmp.json
进入tmp.json
文件并将我标记的那行文字删除
使用此命令开启端口,这个会占用当前页面,重新开个窗口执行下一步操作 kubectl proxy --port=8001
[root@k8s-master ~]# kubectl proxy --port=8001
Starting to serve on 127.0.0.1:8001
使用 cURL 工具向 Kubernetes API 发送一个 PUT 请求,以更新命名空间 ingress-nginx
的信息。注意要和你前面开启的端口一致
[root@k8s-master ~]# curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/ingress-nginx/finalize
执行完以后就不会再有terminating状态
[root@k8s-master ~]# kubectl get ns
NAME STATUS AGE
default Active 13h
kube-node-lease Active 13h
kube-public Active 13h
kube-system Active 13h