gpt4 book ai didi

azure - Kubernetes 服务未映射正确的端口

转载 作者:行者123 更新时间:2023-12-03 00:42:04 24 4
gpt4 key购买 nike

我想公开 Azure Kubernetes 集群上 MQTT 服务器的默认端口 (1883) 和 WS 端口 (9001)。

无论如何,这是我当前编写的部署:

apiVersion: apps/v1
kind: Deployment
metadata:
name: mqtt-server
spec:
replicas: 1
selector:
matchLabels:
app: mqtt-server
template:
metadata:
labels:
app: mqtt-server
type: backend
spec:
containers:
- name: mqtt-server
image: eclipse-mosquitto:1.5.4
resources:
requests:
cpu: 250m
memory: 256Mi
ports:
- name: mqtt-dflt-port
containerPort: 1883
- name: mqtt-ws-port
containerPort: 9001
---
apiVersion: v1
kind: Service
metadata:
name: mqtt-server-service
spec:
selector:
app: mqtt-server
type: LoadBalancer
ports:
- name: mqtt-dflt-port
protocol: TCP
port: 1883
targetPort: 1883
- name: mqtt-ws-port
protocol: TCP
port: 1884
targetPort: 9001

当我部署它时,一切都很好,但 MQTT 代理无法访问,并且我的服务是这样描述的:

mqtt-server-service   LoadBalancer   10.0.163.167   51.143.170.64   1883:32384/TCP,1884:31326/TCP   21m

为什么 1883/9001 端口没有按应有的方式转发?

最佳答案

首先,确保您正在从内部连接到服务的集群 IP集群,不是来自外部。不必费心 ping 服务 IP 来确定服务是否可访问(请记住,该服务的集群 IP 是一个虚拟 IP,对其执行 ping 操作将永远不起作用)。如果您已经定义了就绪探针,请确保它成功;否则

pod 不会成为服务的一部分。要确认 pod 是服务的一部分,请检查相应的 End-使用 kubectl get endpoints 的点对象。如果您尝试通过其 FQDN 或其一部分访问该服务(例如 -ple、myservice.mynamespace.svc.cluster.local 或 myservice.mynamespace)和它不起作用,请查看是否可以使用其集群 IP 而不是 FQDN 来访问它。检查您是否正在连接到该服务公开的端口目标端口。尝试直接连接到 pod IP 以确认您的 pod 正在接受连接系统蒸发散在正确的端口上。如果您甚至无法通过 Pod 的 IP 访问您的应用程序,请确保您的应用程序不是仅绑定(bind)到本地主机。

关于azure - Kubernetes 服务未映射正确的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55498575/

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