Я пытаюсь получить доступ внутри модуля kubernetes (внутри minikube-VM) к внешнему Zookeeper / Kafka (за пределами домена kubernetes), что в основном не работает.
Во-первых, у меня есть docker-image, который запускает приложение Spring-Boot и пытается при запуске подключиться к Kafka-Instance через порт 2181/9092. Поскольку я создал службу с конечной точкой, которая указывает на внешний хост / IP-адрес, который должен исправить маршрутизацию, но, к сожалению, это не так.
Вот определение службы / конечной точки
apiVersion: v1
kind: Service
metadata:
name: ext-kafka
namespace: default
spec:
clusterIP: None
ports:
- port: 2181
name: zk
protocol: TCP
targetPort: 2181
- port: 9092
name: kafka
protocol: TCP
targetPort: 9092
---
apiVersion: v1
kind: Endpoints
metadata:
name: ext-kafka
namespace: default
subsets:
- addresses:
# 192.168.99.1 is the external IP
- ip: 192.168.99.1
ports:
- port: 2181
name: zk
- port: 9092
name: kafka
#
# HERE ARE THE DEPLOYMENTS/DEFINITIONS THAT THE SERVICES ARE INSTALLED
#
[root@centos1 work]# kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ext-kafka None <none> 2181/TCP,9092/TCP 2d
...
[root@centos1 work]# kubectl get endpoints
NAME ENDPOINTS AGE
ext-kafka 192.168.99.1:2181,192.168.99.1:9092 2d
Я проверил iptables на виртуальной машине minikube, так как в нем говорилось, что пакеты отклоняются. Таким образом, очистка не решает проблему, поскольку она автоматически воссоздается за кулисами.
$ iptables -L
....
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-FIREWALL all -- anywhere anywhere
KUBE-SERVICES all -- anywhere anywhere /* kubernetes service portals */
...
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- anywhere anywhere /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
Chain KUBE-SERVICES (1 references)
target prot opt source destination
....
REJECT tcp -- anywhere anywhere /* default/server-command: has no endpoints */ ADDRTYPE match dst-type LOCAL tcp dpt:30021 reject-with icmp-port-unreachable
REJECT tcp -- anywhere 10.0.0.240 /* default/server-command: has no endpoints */ tcp dpt:webcache
....
Еще один подход к облегчению созвездия:
Я запускаю ncat с ncat -l 192.168.99.1 2181 --keep-open
на хосте, где должен работать zookeeper / Kafka, и пытался подключиться с minikube-VM с telnet 192.168.99.1 2181
, я получил 'no rotue to host' ...
Так как решить проблему ?? Как добавить Сервис, решающий проблему с iptables? (Я использовал сборку кубернетов из BuildDate: "2017-05-10T15: 48: 59Z")
BR
192.168.99.1
, а также каков результатip a
на minikube vm? Также вы уверены, что внешний Zookeeper / Kafka привязан к интерфейсу с ip192.168.99.1
? - person surajd   schedule 29.05.2017