gpt4 book ai didi

node.js - Kubernetes NAT 流服务器 - 连接被拒绝

转载 作者:行者123 更新时间:2023-12-02 11:32:09 25 4
gpt4 key购买 nike

我正在使用 NATS 开发一个微服务 Web 应用程序(React 和 Node),并在 GCP Kubernetes 集群上运行它。
我无法连接到 NAT 流媒体服务器 pod。端口 4222 和 8222 已打开。我收到 连接被拒绝 错误。

Error:

Using ts-node version 8.10.2, typescript version 3.9.7
NatsError: Could not connect to server: Error: connect ECONNREFUSED 10.32.13.69:4222
at Socket.<anonymous> (/app/node_modules/nats/lib/nats.js:801:26)
at Socket.emit (events.js:314:20)
at emitErrorNT (internal/streams/destroy.js:100:8)
at emitErrorCloseNT (internal/streams/destroy.js:68:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
code: 'CONN_ERR',
chainedError: Error: connect ECONNREFUSED 10.32.13.69:4222
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '10.32.13.69',
port: 4222
}
}
用于 NAT 流媒体服务器的 Pod + 服务文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nats-depl
spec:
replicas: 1
selector:
matchLabels:
app: nats
template:
metadata:
labels:
app: nats
spec:
containers:
- name: nats
image: nats-streaming:0.17.0
## args provides arguments to the primary
## cmd executed when container starts
args: [
'--port', '4222',
'--http_port', '8222',
'--hb_interval', '5s',
'--hb_timeout', '5s',
'--hb_fail_count', '2',
'--stan_debug',
'--cluster_id', 'ticketing'
]
服务配置:
---
apiVersion: v1
kind: Service
metadata:
name: nats-srv
spec:
type: ClusterIP
selector:
apps: nats
ports:
- name: client
protocol: TCP
port: 4222
targetPort: 4222
- name: monitoring
protocol: TCP
port: 8222
targetPort: 8222

$ kubectl describe service nats-srv

$ kubectl describe service nats-srv
Name: nats-srv
Namespace: default
Labels: app.kubernetes.io/managed-by=skaffold-v1.11.0
skaffold.dev/builder=google-cloud-build
skaffold.dev/cleanup=true
skaffold.dev/deployer=kubectl
skaffold.dev/run-id=59070209-9ab7-47cd-ab0f-cdd91797b1a7
skaffold.dev/tag-policy=git-commit
skaffold.dev/tail=true
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/managed-by":"skaffold-v1.11.0","skaffold.dev...
Selector: apps=nats
Type: ClusterIP
IP: 10.32.13.69
Port: client 4222/TCP
TargetPort: 4222/TCP
Endpoints: <none>
Port: monitoring 8222/TCP
TargetPort: 8222/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>

最佳答案

服务有选择器 apps: nats但部署有标签 app: nats .它们必须相同。这就是为什么 Endpoints in service 没有 Pod IP,因此您得到 connection refused .修改服务如下

---
apiVersion: v1
kind: Service
metadata:
name: nats-srv
spec:
type: ClusterIP
selector:
app: nats
ports:
- name: client
protocol: TCP
port: 4222
targetPort: 4222
- name: monitoring
protocol: TCP
port: 8222
targetPort: 8222

关于node.js - Kubernetes NAT 流服务器 - 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62978093/

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