Kubernetes NodePort не возвращает ответ из контейнера - PullRequest
0 голосов
/ 09 октября 2018

Я разработал контейнерное приложение Flask и хочу развернуть его вместе с Kubernetes.Однако я не могу правильно соединить порты Контейнера с Сервисом.

Вот мой файл развертывания:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: <my-app-name>
spec:
  replicas: 1

  template:
    metadata:
      labels:
        app: flaskapp
    spec:
      containers:
      - name: <container-name>
        image: <container-image>
        imagePullPolicy: IfNotPresent
        ports:  
        - containerPort: 5000
          name: http-port
---
apiVersion: v1
kind: Service
metadata:
  name: <service-name>
spec:
  selector:
    app: flaskapp
  ports:
  - name: http
    protocol: TCP
    targetPort: 5000
    port: 5000
    nodePort: 30013
  type: NodePort

Когда я запускаю kubectl get pods, кажется, что все работает нормально:

NAME                              READY     STATUS    RESTARTS   AGE
<pod-id>                          1/1       Running   0          7m

Когда я запускаю kubectl get services, я получаю следующее:

NAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         
<service-name>        NodePort    10.105.247.63   <none>      5000:30013/TCP
...

Однако, когда я даю браузеру следующий URL-адрес: 10.105.247.63:30013,браузер продолжает загружаться, но никогда не возвращает данные из приложения.

Кто-нибудь знает, где может быть проблема?Похоже, служба не подключена к порту контейнера.

Заранее спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

30013 - это порт на узле, который не входит в IP-адрес кластера.Чтобы получить ответ, вам необходимо подключиться к <IP-address-of-the-node>:30013.Чтобы получить список узлов, вы можете:

kubectl get nodes -o=wide

Вы также можете пройти через CLUSTER-IP, но вам придется использовать незащищенный порт 5000: 10.105.247.63:5000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...