据我所知,这更像是一道开发问题而非服务器问题,但它非常接近两者的边界,如果大家认为需要,可以随意迁移到serverfault.com。 我有一个服务,让我们称其为
在这之前,我有一个运行Apache Traffic Server的反向代理服务器。在url remapping config file中有一个简单的映射规则。
所以所有的传入请求都映射到上述描述的
(见https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/files/records.config.en.html#dns)
此配置更改描述如下:
Traffic Server可以通过将未限定的主机名扩展到本地域来尝试解析未限定的主机名。例如,如果客户端对未限定的主机(例如host_x)发出请求,并且Traffic Server本地域为y.com,则Traffic Server将扩展主机名为host_x.y.com。
现在,在kubernetes中一切都运行得非常好。
但是,在
因此,我可以使两个平台上的事情正常工作,但这需要进行配置更改。 我可以启动traffic-server的启动脚本以确定我们是否在kube或docker中运行,并根据我们运行的位置编写上面的配置行,但理想情况下,我希望DNS跨平台保持一致。 我对DNS(特别是DNS默认域/本地域)的理解很有限。
任何提示吗?理想情况下,为docker-compose选择一个本地域名似乎是最好的选择。
web
,它在docker-compose.yml
文件中声明如下: web:
image: webimage
command: run start
build:
context: ./web
dockerfile: Dockerfile
在这之前,我有一个运行Apache Traffic Server的反向代理服务器。在url remapping config file中有一个简单的映射规则。
map / http://web/
所以所有的传入请求都映射到上述描述的
web
服务中。这在docker-compose
中非常有效,但是当我将该服务移动到Kubernetes,并使用以下服务描述时,情况发生了变化:apiVersion: v1
kind: Service
metadata:
labels:
io.kompose.service: web
name: web
spec:
clusterIP: None
ports:
- name: headless
port: 55555
targetPort: 0
selector:
io.kompose.service: web
status:
loadBalancer: {}
...traffic server报错,因为无法解析DNS名称web
。
我可以通过以下配置更改轻微更改Traffic Server的DNS行为来解决此问题:
CONFIG proxy.config.dns.search_default_domains INT 1
(见https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/files/records.config.en.html#dns)
此配置更改描述如下:
Traffic Server可以通过将未限定的主机名扩展到本地域来尝试解析未限定的主机名。例如,如果客户端对未限定的主机(例如host_x)发出请求,并且Traffic Server本地域为y.com,则Traffic Server将扩展主机名为host_x.y.com。
现在,在kubernetes中一切都运行得非常好。
但是,在
docker-compose
中运行时,traffic-server抱怨无法解析web
。因此,我可以使两个平台上的事情正常工作,但这需要进行配置更改。 我可以启动traffic-server的启动脚本以确定我们是否在kube或docker中运行,并根据我们运行的位置编写上面的配置行,但理想情况下,我希望DNS跨平台保持一致。 我对DNS(特别是DNS默认域/本地域)的理解很有限。
任何提示吗?理想情况下,为docker-compose选择一个本地域名似乎是最好的选择。