Kubernetes通过HostAliases自定义hosts

2022-12-01 18:27:29 浏览数 (1)

背景:

今天突然就有了那么一个需求,记录一下:腾讯云的redis内网地址都是IP的方式。我们的服务注册在了nacos中。小伙伴本地测试链接上nacos(nacos开通了外网访问),获取redis中redis配置都是内网的redis IP故无法加入注册到集群。同事问我能不能将Redis ip设置成域名的方式,那样他本地好歹能做个假的解析做一个欺骗把服务启动起来?(懒得改代码毕竟)

正好就搜到了这两篇文章:Kubernetes之自定义hosts 与 使用 HostAliases 向 Pod /etc/hosts 文件添加条目

故记录一下!

Kubernetes通过HostAliases自定义hosts

初始配置:

nacos中关于redis的配置:

image.pngimage.png

至于腾讯云的redis服务是内网IP的方式,虽然现在也有了可以开启外网地址的途径:

image.pngimage.png
image.pngimage.png

但是如果开通外网地址,还是会涉及到修改代码判断内网外网地址,nacos增加配置,甚至要设置安全组?放弃了。还是老老实实使用host的方式去了

修改host的方式

没有看到那两篇文章的时候我就想到了host的方式:恩 最苯的方法就是修改主机的host配置文件:

image.pngimage.png

基本就是那么一个过程我也测试通过了.紧接着问题有来了,我有四台work节点。难道要每台work节点都要设置Host吗?如果以后修改怎么办?增加机器呢?不想使用这样的方式,还有就是镜像打包的时候直接打进去host?也不现实,我镜像是准备复用的还......然后就找到了前面的两篇文章,采用了HostAliases的方式!

HostAliases自定义hosts

nacos配置

先修改一下nacos中配置文件:

image.pngimage.png

修改发版模板文件

我的ci/cd都直接偷懒用jenkins。反正现在还够用 tpl模板 发版将表情替换生成yaml文件,然后发布到集群中,使用用的这种的思路:

我的tpl文件:

image.pngimage.png
代码语言:txt复制
      hostAliases:                   #配置hosts文件
      - ip: "10.0.4.82"            #配置解析的IP
        hostnames:
        - "qa-xx.xxxx.com"

基本就是那么玩的。jenkins 更新服务,查看pod启动日志没有问题,pod都running了 ,进入pod查看hosts一下:

image.pngimage.png

ok,就到这里了,只是简单记录一下HostAliases!以后说不定还能用到.......

0 人点赞