docker - 无法使用服务 IP 访问 kafka
问题描述
要使用 Zookeeper 部署 Kafka,我们使用以下 yaml 代码。Kafka 运行成功,我们可以通过 pod IP 在 Kafka 主题上写入和读取数据,但我们无法通过服务 IP 写入 Kafka 主题。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zookeeper-cluster1
namespace: default
labels:
app: zookeeper-cluster1
spec:
replicas: 1
selector:
matchLabels:
app: zookeeper-cluster1
template:
metadata:
labels:
name: zookeeper-cluster1
app: zookeeper-cluster1
spec:
hostname: zookeeper-cluster1
containers:
- name: zookeeper-cluster1
image: wurstmeister/zookeeper:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 2181
- containerPort: 2888
- containerPort: 3888
---
apiVersion: v1
kind: Service
metadata:
name: zookeeper-cluster1
namespace: default
labels:
app: zookeeper-cluster1
spec:
type: NodePort
selector:
app: zookeeper-cluster1
ports:
- name: zookeeper-cluster1
protocol: TCP
port: 2181
targetPort: 2181
- name: zookeeper-follower-cluster1
protocol: TCP
port: 2888
targetPort: 2888
- name: zookeeper-leader-cluster1
protocol: TCP
port: 3888
targetPort: 3888
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kafka-cluster
namespace: default
labels:
app: kafka-cluster
spec:
replicas: 1
selector:
matchLabels:
app: kafka-cluster
template:
metadata:
labels:
name: kafka-cluster
app: kafka-cluster
spec:
hostname: kafka-cluster
containers:
- name: kafka-cluster
image: wurstmeister/kafka:latest
imagePullPolicy: IfNotPresent
env:
- name: KAFKA_ADVERTISED_LISTENERS
value: PLAINTEXT://kafka-cluster:9092
- name: KAFKA_ZOOKEEPER_CONNECT
value: zookeeper-cluster1:2181
ports:
- containerPort: 9092
---
apiVersion: v1
kind: Service
metadata:
name: kafka-cluster
namespace: default
labels:
app: kafka-cluster
spec:
type: NodePort
selector:
app: kafka-cluster
ports:
- name: kafka-cluster
protocol: TCP
port: 9092
targetPort: 9092
请说明为什么与端口 9092 上的 Kafka 相关的服务不起作用。
谢谢
解决方案
推荐阅读
- android - 如何允许最终用户将数据添加到 JSON 文件
- reactjs - useState not updating on javascript event
- git - 错误此存储库已移动。请使用新位置
- angular - Multipart POST 适用于 Postman,但不适用于 Angular Http Client
- windows - 如何使用 ENV 变量在 Windows 中为 Kubectl 创建别名?
- flutter - 在运行时从单独的文件中导入列表
- python - 为什么 VSCode 无法识别 sqlite3?
- wxwidgets - 您如何使用 wxWidgets 分发软件?
- google-cloud-platform - 如何编辑 App.Yaml(谷歌云平台)
- excel - 单元格是否为空白的公式,它将前一个单元格视为该单元格的值并将单元格相加