问题:
- Shovel 部署失败,因为它无法与 kafka 通信,出现错误:NoBrokersAvailable kafka=kafka.datacenter.svc.cluster.local:9092
ubuntu@k8s-worker-1:~$ sudo docker logs k8s_shovel-8469fc4b6d-ftmt4_03933125-ff8c-11e8-ac37-fa163e8dcff2_0
2018-12-14 10:35.48 在 grafana.datacenter.svc.cluster.local:2004
2018连接到石墨-12-14 10:35.48 连接到 kafka kafka=kafka.datacenter.svc.cluster.local
2018-12-14 10:35.50 无法连接到 kafka e=NoBrokersAvailable() kafka=kafka.datacenter .svc.cluster.local:9092
- 完成上述语句后,容器退出。
环境:
- Kafka 使用 yml 文件部署在 Kubernetes 环境中。
- 尝试使用 yml 文件在 Kubernetes 环境中部署 Shovel。
- Kafka 成功连接到 zookeeper。
在部署 shovel 时传递以下参数:
参数: - “铲子
/main.py”-“--kafka=kafka.$(NAMESPACE).svc.cluster.local:9092”-“--consul=consul:4000”-“--host=grafana.$ (命名空间).svc.cluster.local" - "--topic=datacenter.test"
ubuntu@k8s-master-1:~$ kubectl describe pod shovel-8469fc4b6d-ftmt4 -n datacenter
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Conditions:
Type Status
Initialized True
Ready False
PodScheduled True
Events: Type Reason Age From Message
---- ------ ---- ---- --------
Normal Scheduled 10m default-scheduler 已成功将 shovel-8469fc4b6d-ftmt4 分配给 k8s-worker- 1
Normal SuccessMountVolume 10m kubelet, k8s-worker-1 MountVolume.SetUp 为卷“default-token-pk”成功
Normal Created 9m (x4 over 10m) kubelet, k8s-worker-1 Created container
Normal Started 9m (x4 over 10m) kubelet , k8s-worker-1 启动容器
正常拉取 8m (x5 over 10m) kubelet, k8s-worker-1 拉取镜像 "docker-registry:8000/datacenter-shovel"
正常拉取 8m (x5 over 10m) kubelet, k8s-worker-1 成功拉取镜像 "docker-registry :8000/datacenter-shovel"
警告 BackOff 12s (x44 over 10m) kubelet, k8s-worker-1 Back-off 重启失败的容器
++根据kafka和shovel PODS之间的抓包:
我们能够看到正在交换的数据包。(Internet 协议版本 4,Src:192.168.1.81,Dst:192.168.1.94)
Shovel POD 能够看到来自 kafka POD 的数据包。
Kafka POD 能够将数据包发送到 shovel pod。
任何帮助将不胜感激。