一次切换k8s命名空间带来的问题

一开始,公司内满足同一条件的服务,部署在同一个命名空间,后来制定了新的规范,不同服务使用独立的命名空间,由此带来了一些问题。

规范升级前,配置中心(服务名为dcs)与其他后端服务部署在同一个命名空间,后端服务可以直接通过dcs(既是服务名,也是域名)连接配置中心。

后端服务切换到独立的命名空间之后,无法通过dcs连接配置中心,需要使用另外的域名,不同的环境,配置中心的域名也不同。

此时就面临一个问题,后端服务如何做到不同环境使用不同的域名连接配置中心?
以前都是用配置中心控制不同环境的变量,但是现在这个变量就是配置中心自己的域名,拿到域名才能连接配置中心。

经讨论,在容器平台上配置环境变量,可以解决这个问题。具体做法为:在不同环境的容器平台上,配置DCS_URL这个环境变量,变量值为不同环境的dcs域名,后端代码通过一定api获取到变量值。
以java为例:

System.getEnv("DCS_URL")

不仅如此,以前jdbc.url中可以用db服务名代替ip地址,现在也只能写成具体的ip。

你可能感兴趣的:(一次切换k8s命名空间带来的问题)