Набор состояний Mongo в Istio 0.8

Я сталкиваюсь с проблемами, пытаясь развернуть набор реплик mongodb с отслеживанием состояния с sidecar из cvallance при запуске istio 0.8, если я оставлю istio вне микса, все будет работать, но когда istio включен, mongo-sidecars не могут найти друг друга, а набор реплик не настроен . Ниже мое развертывание и обслуживание mongo.

apiVersion: v1
kind: Service
metadata:
  labels:
    service: mongo-test
    environment: test
  name: mongo-test
  namespace: test
spec:
  ports:
  - name: mongo
    port: 27017
  clusterIP: None
  selector:
    service: mongo-test
    role: mongo-test
    environment: test
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo-test
  namespace: test
spec:
  serviceName: "mongo-test"
  replicas: 3
  selector:
    matchLabels:
      service: mongo-test
  template:
    metadata:
      labels:
        role: mongo-test
        environment: test
        service: mongo-test
    spec:
      serviceAccountName: mongo-test-serviceaccount
      terminationGracePeriodSeconds: 60
      containers:
        - name: mongo
          image: mongo:3.6.5
          resources:
            requests:
              cpu: "10m"
          command:
            - mongod
            - "--bind_ip_all"
            - "--replSet"
            - rs0
            - "--smallfiles"
            - "--noprealloc"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db
        - name: mongo-sidecar
          image: cvallance/mongo-k8s-sidecar
          resources:
            requests:
              cpu: "10m"
          env:
            - name: MONGO_SIDECAR_POD_LABELS
              value: "role=mongo-test,environment=test"
  volumeClaimTemplates:
  - metadata:
      name: mongo-persistent-storage
      annotations:
        volumes.beta.kubernetes.io/storage-class: "mongo-ssd"
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 100Gi

person jelums    schedule 12.06.2018    source источник
comment
Не могли бы вы поделиться сообщением об ошибке, которое вы видите? Это поможет в расследовании.   -  person Mahmoud Sharif    schedule 25.08.2018


Ответы (2)


istio не поддерживает взаимный TLS для наборов состояний по крайней мере до версии 1.0.2.

person Paul Ma    schedule 08.10.2018

Вы видите это сообщение об ошибке?

Ошибка в рабочем цикле {Ошибка: подключение ECONNREFUSED 10.x.x.x:443 at TCPConnectWrap.afterConnect [как oncomplete] (net.js:x:x) errno: 'ECONREFUSED', код: 'ECONREFUSED', системный вызов: 'connect', адрес: '10.x.x.x', порт: 443} Ошибка в рабочем цикле { Ошибка: чтение ECONNRESET в TLSWrap.onread (net.js:x:x) errno: 'ECONNRESET', код: 'ECONNRESET', системный вызов: 'read' }

Я воспроизвел это на своем конце. Я запустил набор состояний MongoDB Statefulset в пространстве имен Istio с взаимной аутентификацией TLS включен. Я столкнулся с сообщением об ошибке, описанным выше.

Я смог исправить это, отключив взаимную аутентификацию TLS.

Используете ли вы взаимную аутентификацию TLS между сайдкарами в MongoDB StatefulSet? Если да, появится сообщение об ошибке, описанное выше.

Как только я отключил взаимную аутентификацию TLS, набор состояний mongo заработал. Если вы используете взаимную аутентификацию TLS, отключите ее, и statefulset должен работать. С моей стороны это сработало.

person Mahmoud Sharif    schedule 27.08.2018