【问题标题】:Connection refused error when deploying couchbase in kubernetes {failed to connect to 127.0.0.1 port 8091: Connection refused}在 kubernetes 中部署 couchbase 时出现连接被拒绝错误 {无法连接到 127.0.0.1 端口 8091:连接被拒绝}
【发布时间】:2020-05-02 02:17:31
【问题描述】:

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

大师:

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 时,它给了我错误的网关。当我查看主 pod 的日志时,它显示我在 127.0.0.1:8091 处拒绝连接。我尝试执行到 pod 并手动应用 entrypoint.sh 中的 curl 语句,但它也给了我错误 “未能连接到 127.0.0.1 端口 8091:连接被拒绝”

【问题讨论】:

  • 我建议不要使用 arungupta/couchbase:k8s,这是一个可能已经过时的非官方图像。另外,我建议使用 Couchbase 运算符进行 kubernetes 部署:couchbase.com/products/cloud/kubernetes
  • 实际上我没有完全访问集群的权限。所以我不会去应用集群角色和集群角色绑定。所以我不能和接线员一起工作。没有运营商我只是在网上找到这个yaml文件作为例子。

标签: docker kubernetes deployment connection couchbase


【解决方案1】:

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

我运行了这个容器镜像,看起来 curl 失败了,因为 15s sleep 没有足够的时间让 couchbase-server 启动和打开 8091 端口。

您可以做的最简单的事情是将此睡眠设置为更高的值,但睡眠通常不是最佳选择。 (其实这整张图都是坏事)。

更好的方法是将 sleep 替换为等待端口 8091 开放的以下行:

while ! nc -z localhost 8091; do   
  sleep 1
done

【讨论】:

  • 我实际上是新手。所以我有一个疑问。我认为 entrypoint.sh 在图像内。那么如何更新里面的内容呢?
  • 看起来here 是您需要的所有文件。你只需要构建它并推送到 docker repo。
猜你喜欢
  • 2016-12-24
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多