Особой магии нет.Я подозреваю, что вы получаете этот ответ telnet, потому что ничего не слушает порт 9999 в контейнере, на котором установлено hostPort: 9999
.
Запустите minikube ssh
и посмотрите на netstat -nlt
, и вы увидите свой порт9999 там.Попробуйте запустить реальный сервис, прослушивающий открытый хост-порт, и он должен работать, например,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: redis
name: redis
spec:
replicas: 1
selector:
matchLabels:
run: redis
template:
metadata:
labels:
run: redis
spec:
containers:
- image: redis
imagePullPolicy: Always
name: redis
ports:
- containerPort: 6379
hostPort: 6379
protocol: TCP
Из моего терминала:
> telnet $(minikube ip) 6379
Trying 192.168.99.189...
Connected to 192.168.99.189.
Escape character is '^]'.
Если есть , то что-то прослушиваетпорт 9999, то может возникнуть проблема с тем, как Kubernetes настраивает прокси между хостом и контейнером.Вы можете найти процесс docker-proxy
, чтобы проверить, что:
$ ps aux | grep docker-proxy
root 3579 0.0 0.0 3668 1768 ? Sl 14:43 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 10000 -container-ip 172.17.0.2 -container-port 10000
root 19862 0.0 0.0 9240 476 pts/1 S+ 16:21 0:00 grep docker-proxy
root 23466 0.0 0.0 3668 1768 ? Sl 15:20 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 18080 -container-ip 172.17.0.9 -container-port 18080
root 23480 0.0 0.0 3668 1768 ? Sl 15:20 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.17.0.9 -container-port 443
root 23494 0.0 0.0 3668 1676 ? Sl 15:20 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.17.0.9 -container-port 80
root 25840 0.0 0.0 3668 1768 ? Sl 15:24 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9999 -container-ip 172.17.0.10 -container-port 9999
$