доступ к контейнеру docker в kubernetes

#python #docker #kubernetes

#python #docker #kubernetes

Вопрос:

У меня есть контейнер docker с приложением, предоставляющим доступ к порту 8080. Я могу запустить его и получить к нему доступ на своем локальном компьютере:

 $ docker run -p 33333:8080 foo
* Running on http://127.0.0.1:8080/ (Press CTRL C to quit) 
  

Я могу протестировать его с:

 $ nc -v locahost 33333
connection succeeded!
  

Однако, когда я развертываю его в Kubernetes, он не работает.
Вот файл манифеста:

 apiVersion: v1
kind: Pod
metadata:
  name: foo-pod
  namespace: foo
  labels:
    name: foo-pod
spec:
  containers:
  - name: foo
    image: bar/foo:latest
    ports:
    - containerPort: 8080
  

и

 apiVersion: v1
kind: Service
metadata:
  name: foo-service
  namespace: foo
spec:
  type: NodePort
  ports:
    - port: 8080
    - NodePort: 33333
  selector:
    name: foo-pod
  

Развернуто с:

 $ kubectl apply -f foo.yaml 
$ nc -v <publicIP> 33333
Connection refused 
  

Я не понимаю, почему я не могу получить к нему доступ…

Комментарии:

1. Я отметил, что запуск контейнера только с nc будет работать:

Ответ №1:

Проблема заключалась в том, что приложение прослушивало IP 127.0.0.1 . Он должен прослушиваться 0.0.0.0 для работы в kubernetes. Изменение в коде приложения сделало свое дело.