我不小心删除了kubernetes svc:
service "kubernetes" deleted
使用:
kubectl delete svc --all
我该怎么办?我只是想删除服务,以便可以启动新服务。
答案 0 :(得分:0)
先谈一点理论;) 每当您删除kubernetes svc时,您也会同时删除端点,这就是 Reconciler进来了。它实际上是核心自举Kubernetes控制器循环的控制器管理器,它负责创建“ kubernetes ”服务,即 “ 默认”,“ kube系统”和“ kube-public ”命名空间,并提供对服务IP的IP修复检查。
因此,在健康的群集中,控制器管理员应自动重新创建 default.kubernetes 服务。
如果不是,我建议:
检查api服务器日志
kubectl logs -f kube-apiserver-master -n kube-system
您应该看到类似的内容:
Resetting endpoints for master service "kubernetes" to [10.156.0.3]
如果看不到,请尝试手动删除此服务的etcd密钥
由于集群的当前状态存储在etcd中,因此删除服务时可能会保留键:
a。 exec到etcd-master pods
kubectl exec -it etcd-master -n kube-system sh
b。获取etcd键值
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt get /registry/services/endpoints/default/kubernetes
c。如果您得到任何类似的值:
v1 Endpointst
O
kubernetesdefault"*$eafc04cf-90f3-11e9-a75e-42010a9c00032����z!
10.156.0.3
https�2TCP"
只需通过
将其删除ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt rm /registry/services/endpoints/default/kubernetes
完成后,再次检查api服务器日志。