Я развернул Kafka как набор состояний с zookeeper, настроенным как селектор лидера, безголовый сервис. Кафка работает абсолютно нормально, как и ожидалось. Однако я сталкиваюсь с проблемами при настройке Istio для доступа к kafka.
$ kubectl get pods -owide | grep -i kafka
kafka-mon-0 1/1 Running 0 3d1h <IP>
$ kubectl get svc -owide | grep -i kafka
kafka-mon-http LoadBalancer <IP> <Ext-IP> 8080:30875/TCP app=kafka-mon
kafka-mon-svc ClusterIP None <none> 8080/TCP app=kafka-mon
Если я настрою Istio с помощью службы Kakfa LoadBalancer, я смогу получить доступ к интерфейсу пользователя. Однако, если я использую безголовый сервис, то сам интерфейс не доступен. Я также проверил с другими службами, то же самое.
$ kubectl get gateway,virtualservice | grep -i kafka
gateway.networking.istio.io/kafka-mon-gateway 4h
virtualservice.networking.istio.io/kafka-mon-vservice 4h
Istio отлично работает, если Virtualservice настроен со службой балансировки нагрузки, но не с безголовой службой. Пожалуйста, помогите мне разобраться в проблеме.
Для Istio я развернул маршрутизатор шлюза в качестве внутреннего входного шлюза с http-портом 80, https-портом-443 и виртуальной службой маршрутизации с хостом назначения маршрутизации в качестве службы Kafka-headless. Он не работает, но работает, если маршрутизация хост назначения настроен как служба балансировки нагрузки.
Я не могу устранить проблему. Пожалуйста, предложите.