使用 K8s 和网格代理

介绍北极星如何实现 K8s 服务注册和网格代理接入,以及它们的应用场景。

随着容器化的普及,越来越多用户使用 K8s 部署应用,北极星支持 K8s 服务注册和健康检查。另外,Linkerd 和 Istio 等服务网格通过流量劫持的方式实现大部分服务治理功能,北极星也支持这种接入方式。

K8s服务同步

架构原理

北极星提供polaris-controller,基于kubernetes的controller机制,监听service&pod事件,将K8s Namespace, Service以及Endpoint,实时同步成北极星对应的命名空间、服务、服务实例列表。

用户无需依赖任何SDK及框架,即可实现基于POD的服务实例注册、反注册和健康检查。

应用场景

北极星是一个计算与存储分离的系统,具备极强的可扩展性,一个北极星集群可以支持多个k8s集群同时接入。接入到同一个北极星的集群的多个k8s集群中的应用,可以共享同一份服务数据,实现集群间的无感知调用。

网格代理

架构原理

北极星支持Proxy网格模式,envoy数据面可以直接接入北极星控制面实现服务发现和治理。北极星支持自动注入envoy代理,用户程序无需做任何改动,即可实现自动往POD中注入envoy。

应用场景

北极星提供了多种框架的适配插件,可以支持当下比较流行的proxyless网格模式的接入。SpringCloud、Dubbo的应用可以零改造接入服务网格,共享统一的服务治理模型,与使用Envoy代理的应用无缝互通。