我有一个关于如何在Kubernetes中使用go-micro的问题。 AFAIK,Kubernetes已经具有用于服务发现的kube-dns和具有 Service 抽象的kube-proxy来暴露Pod。
是否可以使用go-micro,但可以 skip kubernetes go-micro插件向Kubernetes API服务器注册自己?
因为我不确定为什么首先需要这样做。事实是,仅将健康的pod包含到 service 的端点中,kubelet会自动为我们做到这一点(通过livenessProbe和readinessProbe检查,它可以确定Pod是否健康)。>
我问的是这个问题,因为我们也在使用istio-proxy。每当Pod启动时,我们都会遇到微服务错误,因为istio-proxy尚未准备好路由流量(甚至是流量到kube api,因为它会拦截来自我们主容器的出口流量(它使用go-micro Kubernetes插件))。
2018/10/17 04:37:55无法创建服务器!原因:补丁 https://10.32.64.1:443/api/v1/namespaces/data-cdp/pods/cdp-booking-context-svc-stable-864645684b-xd2tb: 拨打tcp 10.32.64.1:443:connect:连接被拒绝
然后,它多次导致crashloopback中的主容器(go-micro kube插件应用程序),直到istio-proxy准备就绪。这不是什么大问题,但令我烦恼的是注册事情背后的动机。