У меня есть кластер kubernetes с тремя узлами в Azure, с тремя брокерами Kafka и одним экземпляром zookeeper.Брокеры Kafka и zookeeper общедоступны путем развертывания их соответствующих служб (Load Balancer).
Теперь я развертываю реестр схемы и хотел бы, чтобы он был доступен снаружи кластера kubernetes.Я выполняю те же шаги, что и раньше, но не могу получить доступ к API реестра схемы из-за пределов кластера kubernetes.Если я закручиваю реестр схемы из контейнера Docker, все работает нормально, поэтому я предполагаю, что реестр схемы работает правильно.Вот мои дескрипторы yamls реестра схемы:
Развертывание реестра схемы:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: schema-registry
spec:
replicas: 1
template:
metadata:
labels:
name: schema-registry
spec:
containers:
- env:
- name: SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL
value: zookeeper-cluster-ip:2181
- name: SCHEMA_REGISTRY_HOST_NAME
value: registry-0.schema.default.svc.cluster.local
- name: SCHEMA_REGISTRY_LISTENERS
value: http://0.0.0.0:8081
name: schema-registry
image: confluentinc/cp-schema-registry:5.0.1
ports:
- containerPort: 8081
restartPolicy: Always
Служба реестра схемы:
apiVersion: v1
kind: Service
metadata:
name: schema-registry
labels:
name: schema-registry
spec:
ports:
- port: 8081
selector:
name: schema-registry
type: LoadBalancer
После развертывания службы общедоступный ipсгенерировано:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
schema-registry LoadBalancer X.X.X.X. X.X.X.X. 8081:30921/TCP 13m
, поэтому я запускаю
curl -X GET -i -H "Content-Type: application/vnd.schemaregistry.v1+json" http://X.X.X.X:8081/subjects
Но ответа нет.Изнутри контейнера я получаю ответ от команды curl.
Причина, по которой я хочу, чтобы реестр схемы был доступен извне кластера, заключается в том, что мы хотим получить к нему доступ из кластера Nifi.
Возможно ли это?