用阿里云容器服务,应用内不同服务之间服务发现方式有若干种。但是应用间如何服务发现?
比如应用A里,有服务a和服务b,服务a依赖服务b,则通过编排文件,a中link上b,在a的处理中直接通过b的服务名即可连b。那么,假如有应用B和应用C,应用C为独立部署的服务scale副本有3个,对外暴露9090端口,非http协议服务,如何在应用B中发现对外提供服务的应用C,并且应用B和应用C都在同一集群中,不要产生外网流量,已知通过容器服务集群的节点IP可以访问应用C,但因为集群不只一个节点,应用C的副本实例也不止一个,单独通过一个节点的IP访问显然不合理。集群在控制台界面绑定了外网的负载均衡。通过aliyun.lb.port标签连一个内网负载均衡,发现十分不稳定,不清楚是配置有问题,还是负载均衡有问题,之所以怀疑负载均衡有问题,是因为删掉负载均衡监听,再建,刚建是能连的。但有个一两次连接后,便无法访问。http和非http服务都出现这个现象。
基于内网DNS的服务发现,请使用PrivateZone服务
https://www.aliyun.com/product/pvtz?
自答:
其他应用部署的服务,编排模板制定hostname标签。依赖的应用内通过external_links标签指定依赖的hostname,然后可以通过hostname访问。使用时阿里云容器服务要给external_links起别名,别名可以与原名相同。不然创建应用会失败。以后应该会修复这个问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。