openshift中的一个典型service有一个name和一个selector。应用程序可以用service name去发现其他service. 一个service用它的selector去找到pods(pods才真正的接收请求)
一个应用根据openshift internal DNS server或者环境变量去发现service。用环境变量去发现service要求service必须先于pod的创建,这样这个应用才能接受环境变量的值。用内部DNS server的方法就灵活许多,因为它允许应用去动态发现服务。这个service name对该openshift cluster的所有pod而言是一个local DNS host name。
而如果一个openshift cluster内部的服务向访问外部的服务该怎么办呢?
我们假设app在openshift cluster 内部,db在集群外部,我们可以参考以下步骤
1. 查询db settings在集群内部的app里的设置
![](https://img.haomeiwen.com/i5947200/2635bef31403bd31.png)
2. 连接外部db服务
![](https://img.haomeiwen.com/i5947200/b97de9a495078668.png)
3. 在集群中建立external 服务和internal服务的关联
![](https://img.haomeiwen.com/i5947200/f508b6ea306cb21e.png)
4. 测试连接性
![](https://img.haomeiwen.com/i5947200/f5d36e82eaa56d87.png)
完毕。
网友评论