gpt4 book ai didi

kubernetes - NodePort 服务不能通过 `port` 号从外部访问

转载 作者:行者123 更新时间:2023-12-03 08:18:59 24 4
gpt4 key购买 nike

我有以下服务配置:

kind: Service
apiVersion: v1
metadata:
name: web-srv
spec:
type: NodePort
selector:
app: userapp
tier: web
ports:
- protocol: TCP
port: 8090
targetPort: 80
nodePort: 31000

这个服务背后有一个 nginx 容器。虽然我可以通过 nodePort 访问该服务,无法通过 port 访问服务 field 。我可以通过 kubectl 查看配置和 Kubernetes 仪表板,但 curl连接到该端口(例如 curl http://192.168.0.100:8090 )会引发 连接被拒绝 错误。

我不确定这里有什么问题。我是否需要确保任何代理服务在节点或容器内运行?

最佳答案

获取kubernetes服务的IP,然后打8090;它会起作用的。
nodePort 表示服务绑定(bind)到端口 31000 的节点。

这些是可行的三件事:

curl <node-ip>:<node-port>        # curl <node-ip>:31000
curl <service-ip>:<service-port> # curl <svc-ip>:8090
curl <pod-ip>:<target-port> # curl <pod-ip>:80

所以现在,让我们看3种情况:

1.你在kubernetes集群里面(你是一个pod)
<service-ip><pod-ip><node-ip>将工作。

2.您在节点
<service-ip><pod-ip><node-ip>将工作。

3.你在节点外

仅限 <node-ip>假设 <node-ip> 将起作用是可达的。

关于kubernetes - NodePort 服务不能通过 `port` 号从外部访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43789155/

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