跳转到内容
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

Nacos支持从K8S服务发现中同步服务元数据

数据同步

Nacos监听K8S中服务和实例的变化情况,并获取其服务元数据,同步变更信息到Nacos的服务发现模块和实例中。支持K8S版本1.22(对应K8S-Java-API版本为14.0.0)。示意图如下:

K8S资源同步至Nacos资源的映射方案(单向,Nacos资源同步至K8S资源待补充):

K8S中需要同步的数据K8S中的字段映射到Nacos中的字段
service nameservice.metadata.nameservice.name
service targetPort(pod port)(多个)service.ports.targetPortinstance.port
service nameservice.metadata.nameinstance.cluster
service port(多个)service.ports.portinstance.extendData<String, Object>
pod ippod.status.hostIP或者service.ipFamiliesinstance.ip

配置文件

按照部署文档搭建好Nacos集群。

配置application.properties文件,打开K8S同步的开关:

nacos.k8s.sync.enabled=true

如果是从K8S集群外的应用程序使用Java API,需要指定kubeConfig:

nacos.k8s.sync.outsideCluster=true
nacos.k8s.sync.kubeConfig=/.kube/config

配置完成后,K8S中的服务和实例变化时会自动同步到Nacos中。