k8s随笔 – service name的约束

公司的服务间调用是基于domain互相调用的,并且每个domain前面有4层负载,没有使用服务注册框架。

在切换到K8S方案后仍旧希望保持按domain互相调用,因此运维提出为每个服务创建一个service,其name设置为domain,这样服务间就可以用service name互相调用了。

在K8S中,service name会被追加上命名空间,然后注册到coredns作为内部domain存在。

比如:创建在default命名空间下的service叫做test,那么coredns就会注册domain:test.default.svc.cluster.global。

当容器解析test的时候,coredns会返回对应的service Cluster IP。

但在实践过程中发现,K8S是禁止service name中出现.字符的,这与上述coredns域名生成规范密不可分,所以该方案是不可行的。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~