服务“ kubernetes”已删除-意外删除kubernetes服务

时间:2019-06-13 04:36:13

标签: kubernetes amazon-eks eks

我不小心删除了kubernetes svc:

service "kubernetes" deleted

使用:

 kubectl delete svc --all

我该怎么办?我只是想删除服务,以便可以启动新服务。

1 个答案:

答案 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服务器日志。