【发布时间】:2019-04-28 23:36:39
【问题描述】:
我在 Azure 上有一个三节点 kubernetes 集群,其中包含三个 Kafka 代理和一个 zookeeper 实例。 Kafka 代理和 Zookeeper 可通过部署其对应服务(负载均衡器)公开访问。
现在我正在部署一个模式注册表,我希望它可以从 kubernetes 集群外部访问。 我遵循与以前相同的步骤,但无法从 kubernetes 集群外部访问模式注册表 api。 如果我从 docker 容器中 curl 模式注册表,一切正常,所以我假设模式注册表正常运行。 这是我的架构注册表 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 集群访问它。
这可能吗?
【问题讨论】:
-
我想知道使用 Confluent Helm 图表是否会产生不同的结果
标签: kubernetes apache-kafka confluent-schema-registry