首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes NAT流服务器-连接被拒绝

Kubernetes NAT流服务器-连接被拒绝
EN

Stack Overflow用户
提问于 2020-07-19 08:47:25
回答 1查看 1.6K关注 0票数 4

我正在使用NATS开发一个微服务web应用程序(React和Node),并在GCP集群上运行它。

我无法连接到NAT流服务器荚。端口4222和8222是开放的,我正在收到连接被拒绝的错误。

错误:

代码语言:javascript
复制
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
  }
}

Pod + NAT流媒体服务器服务文件

代码语言:javascript
复制
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'
                  ]

服务配置:

代码语言:javascript
复制
---
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描述服务nats-srv

代码语言:javascript
复制
$ 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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 09:24:07

服务有选择器apps: nats,但是部署有标签app: nats。它们需要是same.This,这就是为什么服务中的Endpoints没有Pod,因此您得到了connection refused。按以下方式修改服务

代码语言:javascript
复制
---
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62978093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档