跨集群服务注册

提示

  • 该文章仅适用于不同 Kubernetes 集群间的 POD 可 IP 直连

背景及架构

北极星支持对接多k8s集群,不同集群的服务注册同一个北极星服务端,可以实现多集群之间的直通POD负载均衡,可以解决使用K8S的CLUSTER IP负载均衡模式下会出现的长连接负载不均等问题。

北极星服务端只部署一套,不同的k8s集群中的POD,通过集群内的k8s controller,将POD信息同步到北极星,同时将集群名作为服务实例的标签注册上去,便于用户进行查找以及按集群就近路由。

部署k8s controller

k8s controller需要部署到k8s的集群中,可以参考以下文档进行部署:k8s controller部署指南

配置集群名

k8s controller默认会以default集群名进行部署,我们需要修改成实际的集群名。

  • 修改配置文件集群名

打开polaris-controller的安装包(非源码包),找到configmap.yaml这个文件,并且在文件中,将clusterName的值修改成实际的集群名称

    # k8s集群名,需要修改成实际的集群名称
    clusterName: "default" 

修改完毕后,通过kubectl apply -f configmap.yaml,将配置重新发布。

  • 重启controller

找到polaris-controller的部署路径,一般在polaris-system命名空间下,将controller的POD重启

  • 观察北极星控制台

打开北极星控制台,找到对应通过的服务名,进入实例列表,确认POD IP是否已经带入clusterName的标签信息。