Обнаружение одноранговых узлов Istio RabbitMQ StatefulSets
У меня есть кластер RabbitMQ , работающий в Kubernetes. Он работает, как и ожидалось, без включенной инъекции Istio . К сожалению, при включении istio-injection происходит сбой кластера. Это вызвано ошибкой обнаружения одноранговых узлов во время процесса запуска. Я получил следующую ошибку в журналах pod:
2022-06-23 12:39:59.907 [error] <0.249.0> CRASH REPORT Process <0.249.0> with 0 neighbours exited with reason: no match of right hand value {error,eacces} in rabbit_peer_discovery_k8s:make_request/0 line 110 in application_master:init/4 line 138
Я создал запись службы для каждого модуля и выставил все необходимые порты, сообщив istio, что они находятся внутри сетки службы, пример ServiceEntry в rabbitMQ, но, к сожалению, я все еще получаю те же ошибки — это выглядит так:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
labels:
app: rabbitmq-ha
chart: rabbitmq-ha-1.12.1
heritage: Tiller
release: rabbitmq
name: rabbitmq
namespace: rabbitns
spec:
hosts:
- rabbitmq-0.rabbitmq-discovery.rabbitns.svc.cluster.local
- rabbitmq-1.rabbitmq-discovery.rabbitns.svc.cluster.local
location: MESH_INTERNAL
ports:
- name: http
number: 15672
protocol: TCP
- name: amqp
number: 5672
protocol: TCP
- name: epmd
number: 4369
protocol: TCP
- name: amqps
number: 5671
protocol: TCP
- name: exporter
number: 9419
protocol: TCP
- name: inter-node
number: 25672
protocol: TCP
resolution: NONE
Версии:
$ istioctl version
client version: 1.14.0
control plane version: 1.14.0
data plane version: 1.14.0 (3 proxies)
$ kubectl version --short
Client Version: v1.21.5
Server Version: v1.22.4
Дополнительная информация: Отчет об анализе с помощью команды istioctl bug-report.
Error [IST0106] (ServiceEntry rabbitns/rabbitmq) Schema validation error: multiple hosts provided with non-HTTP, non-TLS ports
По-видимому, Istio хорошо обнаруживает обычные сервисы (которые прикрепляют 1 единственный DNS ко всем модулям, а затем к ним обращаются в стиле циклического перебора), но он не знаком с DNS для каждого модуля, поэтому он отклоняет его. Эта проблема не связана с mTLS, так как я получил тот же результат с включенным/отключенным mTLS.
Не могли бы вы помочь мне решить эту проблему?