k8s的namespace一直terminating的完美解决方案

namespace一直卡在terminating的解决方案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#开启一个代理终端  
kubectl proxy 
Starting to serve on 127.0.0.1:8001 
再开启一个操作终端 将test namespace的配置文件输出保存 
$ kubectl get ns test -o json > test.json 
#在test.json中删除spec及status部分的内容还有metadata字段后的","号,切记! 
剩下内容大致如下 
{ "apiVersion": "v1",
"kind": "Namespace", "metadata": { "annotations": { "cattle.io/status": "{\"Conditions\":[{\"Type\":\"ResourceQuotaInit\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2020-10-09T07:12:17Z\"},{\"Type\":\"InitialRolesPopulated\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2020-10-09T07:12:18Z\"}]}", "lifecycle.cattle.io/create.namespace-auth": "true" }, "creationTimestamp": "2020-10-09T07:12:16Z", "deletionTimestamp": "2020-10-09T07:12:22Z", "name": "test", "resourceVersion": "471648079", "selfLink": "/api/v1/namespaces/test", "uid": "862d311e-d87a-48c2-bc48-332a4db9dbdb" } } 
调接口删除 
$ curl -k -H "Content-Type: application/json" -X PUT --data-binary @test.json http://127.0.0.1:8001/api/v1/namespaces/test/finalize

查找对应的pod

1
2
#查询对应的pod 
kubectl exec -it $(kubectl get pod -n zhiyi-system-test|grep "ai-live-dev"|awk '{print $1}') -n zhiyi-system-test -- tail -f /home/ailive-logs/gray/ailive_dao.2019-05-16.log

k8s 修改mtu的值

1
2
3
4
5
之后你就可以到Node上执行ifconfig观察cali*网卡的MTU,不过你会失望,因为这样的修改只对之后创建的Pod有效,对于已有Pod不发生作用,解决办法有两个:

干掉这些Pod,让K8S的自动重启机制创建新Pod,不过这个办法不好,可能对Stateful Pod有删除数据的风险(这个我也没试过)。
ifconfig <interface> mtu <size> up到每个Node上把已经存在的cali*网卡的mtu都设置一遍,运行这个命令:
ifconfig | grep cali | cut -d ' ' -f 1 | xargs -n1 -I{} sudo ifconfig {} mtu <size> up
Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up