为什么go micro Kubernetes插件需要将pod注册到注册表?
我有一个关于如何与Kubernetes一起使用go micro的问题。此外,Kubernetes已经拥有kube dns用于服务发现,kube代理具有服务抽象以公开POD 是否可以使用go-micro,但跳过kubernetes go-micro插件,将自己注册到kubernetes API服务器 因为我不知道为什么它首先是必要的。事实上,kubelet将自动为我们做到这一点(通过livenessProbe和readinessProbe检查,然后它可以确定pod是否健康),只将健康的pod包含到服务的端点 我问这个问题是因为我们也在使用istio代理。每当pod启动时,我们都会遇到微服务错误,因为istio代理尚未准备好路由流量(甚至是到kube api的流量,因为它拦截了来自主容器的出口流量(它使用go micro Kubernetes插件)) 2018/10/17 04:37:55无法创建服务器!原因:补丁 : 拨打tcp 10.32.64.1:443:连接:连接被拒绝为什么go micro Kubernetes插件需要将pod注册到注册表?,kubernetes,go-micro,Kubernetes,Go Micro,我有一个关于如何与Kubernetes一起使用go micro的问题。此外,Kubernetes已经拥有kube dns用于服务发现,kube代理具有服务抽象以公开POD 是否可以使用go-micro,但跳过kubernetes go-micro插件,将自己注册到kubernetes API服务器 因为我不知道为什么它首先是必要的。事实上,kubelet将自动为我们做到这一点(通过livenessProbe和readinessProbe检查,然后它可以确定pod是否健康),只将健康的pod包含到
然后,它会导致主容器(go micro kube插件应用程序)多次出现在crashloopback中,直到istio代理就绪。这不是一个大问题,但注册背后的动机让我感到困扰。你得到答案了吗?我还对部署在kubernetes infra上的一项服务进行了相同的查询。@RajaneeshSingh yup,基本上go micro这样做是为了实现客户端负载平衡(尤其是grpc)。如果您已经将istio/linker用作侧车,则不需要此行为。但是如果您不使用istio/linkerd来进行客户端负载平衡,那么可以使用kubeapi将服务发现信息存储到service/pod/deploy注释中(我忘了是哪个注释了)。谢谢阿贡。在我的场景中,我们有5-6个服务,主要是在AMQP中讨论&通过istio入口向外部世界公开REST。我们正在考虑在go micro中提供一项新服务,这仅仅是因为可插拔arch(将来可能需要gRPC传输),该服务也处理k8s CRD。我没有;在go micro中创建服务实例时,t get service discovery部件需要注册。也许我不需要它的第一位,因为K8有发现。你觉得怎么样?@RajaneeshSingh是的,我认为你可以忽略kubernetes插件,因为你提到你已经使用了istio(它可以实现grpc负载平衡)。