【发布时间】:2021-07-08 07:34:15
【问题描述】:
我已经使用 ClusterIP 定义了一个新服务。
[ciuffoly@master-node ~]$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d1h
test-reg ClusterIP 10.102.196.35 <none> 5000/TCP 58m
test-web LoadBalancer 10.108.151.13 192.168.1.125 80:30001/TCP 73m
pod 正在 worker-node1 上运行,我可以使用在以太网 ip 上探测到的 worker-node1 连接到该服务器。
[ciuffoly@worker-node1 ~]$ ip addr show|grep "192\.168\.1\."
inet 192.168.1.20/24 brd 192.168.1.255 scope global noprefixroute ens33
[ciuffoly@worker-node1 ~]$ telnet 192.168.1.20 5000
Connected to 192.168.1.20.
Escape character is '^]'.
^]
telnet> q
[ciuffoly@master-node ~]$ telnet 192.168.1.20 5000
Connected to 192.168.1.20.
Escape character is '^]'.
^]
telnet> q
但我无法使用 ClusterIP 连接到此服务
[ciuffoly@master-node ~]$ telnet 10.102.196.35 5000
Trying 10.102.196.35...
^C
按照我也测试过 NodePort 的答案,但我仍然遇到同样的问题。
[ciuffoly@master-node ~]$ kubectl get services|grep reg
test-reg NodePort 10.111.117.116 <none> 5000:30030/TCP 5m41s
[ciuffoly@master-node ~]$ kubectl delete svc test-reg
service "test-reg" deleted
[ciuffoly@master-node ~]$ netstat -an|grep 30030
[ciuffoly@master-node ~]$ kubectl apply -f myreg.yaml
myreg.yamldeployment.apps/test-reg unchanged
service/test-reg created
[ciuffoly@master-node ~]$ netstat -an|grep 30030
tcp 0 0 0.0.0.0:30030 0.0.0.0:* LISTEN
这不起作用
[ciuffoly@master-node ~]$ telnet master-node 30030
Trying 192.168.1.10...
^C
这行得通
[ciuffoly@master-node ~]$ telnet worker-node1 30030
Trying 192.168.1.20...
Connected to worker-node1.
Escape character is '^]'.
^]
telnet> q
Connection closed.
【问题讨论】:
-
ClusterIP 在集群内有效。所以你需要进入一个 Pod 并使用 telnet 来使用该 ClusterIP
-
好的,但是有一种方法可以创建一个逻辑 ip,我可以从 master 和所有 worker 连接?我想将它用于本地寄存器
-
我看到您有一个附加了外部 IP 的 LoadBalancer 服务。它附着在什么上?你能描述一下(kubectl descrive resource-type resource-name)你想要访问的服务和 Pod 吗?
-
已解决所有问题已使用印花布代替法兰绒解决
标签: kubernetes flannel calico