Ошибка при установлении соединения при развертывании couchbase в kubernetes {не удалось подключиться к порту 8091 на 127.0.0.1: соединение отклонено} - PullRequest
0 голосов
/ 02 мая 2020

Я использовал следующие файлы yaml для развертывания couchbase в kubernetes.

Мастер:

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. Я попытался exe c в модуль и применить операторы curl из точки входа. sh вручную, но он также выдал ошибку "не удалось подключиться к порту 8091 127.1.0.1: соединение отказано" . enter image description here

1 Ответ

1 голос
/ 04 мая 2020

Я обнаружил, что главное изображение использует этот сценарий точки входа

Я запустил этот образ контейнера, и похоже, что curl не работает, потому что 15s sleep не достаточно времени для запуска couchbase-server и открытия порта 8091.

Самое простое, что вы можете сделать, это установить для этого режима сна более высокое значение, но обычно режим сна не лучший вариант. (На самом деле весь этот образ полон плохих практик).

Лучше было бы заменить спящий режим следующими строками, ожидающими открытия порта 8091:

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