在kubernetes中部署Couchbase时出现连接拒绝错误{无法连接到127.0.0.1端口8091:连接被拒绝}

问题描述 投票:-1回答:1

我使用以下yaml文件在kubernetes中部署了ouchbase。

Master:

apiVersion: v1  
kind: ReplicationController  
metadata:  
  name: couchbase-master-rc
spec:  
  replicas: 1  
  selector:  
    app: master-pod  
  template:  
    metadata:  
      labels:  
        app: master-pod  
    spec:  
      containers:  
      - name: couchbase-master  
        image: arungupta/couchbase:k8s 
        env:  
          - name: TYPE  
            value: MASTER  
        ports:  
        - containerPort: 8091 
---
apiVersion: v1  
kind: Service  
metadata:   
  name: couchbase-master-service  
  labels:   
    app: couchbase-master-service  
spec:   
  ports:  
    - port: 8091  
  selector:   
    app: master-pod  
  type: LoadBalancer

工人:

apiVersion: v1  
kind: ReplicationController  
metadata:  
  name: couchbase-worker-rc  
spec:  
  replicas: 1  
  selector:  
    app: couchbase-worker-pod  
  template:  
    metadata:  
      labels:  
        app: couchbase-worker-pod  
    spec:  
      containers:  
      - name: couchbase-worker  
        image: arungupta/couchbase:k8s  
        env:  
          - name: TYPE  
            value: "WORKER"  
          - name: COUCHBASE_MASTER  
            value: "couchbase-master-service"  
          - name: AUTO_REBALANCE  
            value: "false"  
        ports:  
        - containerPort: 8091

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: couchbase
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: xxx.com
    http:
      paths:
      - path: /
        backend:
          serviceName: couchbase-master-service
          servicePort: 8091

吊舱开始运行,乍看起来似乎没有问题。但是,当我尝试点击HostUrl时,它给了我错误的网关。当我查看主人的吊舱日志时,显示出我在127.0.0.1:8091拒绝连接。我试图执行到Pod中并手动从entrypoint.sh应用curl语句,但是它也给我错误“无法连接到127.0.0.1端口8091:连接被拒绝”enter image description here

docker kubernetes deployment connection couchbase
1个回答
0
投票

我发现主图像正在使用this entrypoint script

我运行了该容器映像,由于15s sleep没有足够的时间来启动Couchbase服务器并打开8091端口,因此卷曲似乎失败了。

您最容易做的就是将此睡眠设置为更高的值,但是睡眠通常不是最佳选择。 (实际上,整个图像充满了不良习惯)。

更好的方法是用等待端口8091打开的以下行代替sleep:

while ! nc -z localhost 8091; do   
  sleep 1
done
© www.soinside.com 2019 - 2024. All rights reserved.