gpt4 book ai didi

openshift - 如何在 openshift 集群中解析 *.svc 地址

转载 作者:行者123 更新时间:2023-12-04 01:58:38 26 4
gpt4 key购买 nike

当我在 openshift 中创建应用程序时,它会在 *.svc 地址中公开服务。

oc project
Using project "coco" on server "https://master.lab.example.com:8443"
oc get svc -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
ruby-ex 172.30.18.144 <none> 8080/TCP 9h app=ruby-ex,deploymentconfig=ruby-ex

我可以从集群的一个节点 curl 它

 curl -vvv ruby-ex.coco.svc:8080
* About to connect() to ruby-ex.coco.svc port 8080 (#0)
* Trying 172.30.18.144...
* Connected to ruby-ex.coco.svc (172.30.18.144) port 8080 (#0)
....

因此它按预期工作,但我找不到谁在解决这个域名。还是来自同一个节点

 dig +short ruby-ex.coco.svc

什么都不输出。因此我想知道 curl 如何找到正确的 ip?

编辑 1:按照 Graham 的回答我的理解进步了

文件/etc/resolv.conf 包含以下内容:

search  lab.example.com cluster.local
nameserver 10.0.2.15

我可以看到 10.0.2.15 属于该节点并且 dnsmask 监听端口 53

netstat -tulnp | grep 10.0.2.15
tcp 0 0 10.0.2.15:53 0.0.0.0:* LISTEN 1274/dnsmasq
udp 0 0 10.0.2.15:53 0.0.0.0:* 1274/dnsmasq

进入dnsmask的conf

cat /etc/dnsmasq.d/node-dnsmasq.conf
server=/in-addr.arpa/127.0.0.1
server=/cluster.local/127.0.0.1

netstat -tulnp | grep 127.0.0.1:53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2128/openshift
udp 0 0 127.0.0.1:53 0.0.0.0:* 2128/openshift

表明openshift进程正在监听127.0.0.1:53。

当我挖掘使用这个服务器时连接超时

dig +short  @127.0.0.1 ruby-ex.coco.svc
;; connection timed out; no servers could be reached

但对于集群中的已知域,它会正确回答

dig +short  @127.0.0.1 node1.lab.example.com
172.25.250.11

我只是无法在 cluster.local 和 *.svc 地址之间建立链接,我也无法解释为什么 curl 解析地址而不是挖掘。

编辑2

由于我对/etc/resolv.conf 的理解不佳,我终于找到了答案。使用 resolv.conf 中的搜索指令 curl 尝试 ruby​​-ex.coco.svc 然后 ruby​​-ex.coco.svc.cluster.local 等等尝试每个域。确实

dig +short @127.0.0.1 ruby-ex.coco.svc.cluster.local
172.30.18.144

按预期工作,感谢您的帮助。

最佳答案

OpenShift 内部有一个 DNS 来处理请求。查看 /etc/resolv.conf ,它会有类似这样的内容:

nameserver 172.31.39.82
search myproject.svc.cluster.local svc.cluster.local cluster.local ap-southeast-2.compute.internal
options ndots:5

与服务名称相对应的主机名在创建时会添加到内部 DNS。

关于openshift - 如何在 openshift 集群中解析 *.svc 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com