Kubernetes, не может связаться с Pod с внешним IP-адресом

#docker #kubernetes #kubectl #kubeadm

#docker #kubernetes #kubectl #kubeadm

Вопрос:

Я новичок в Kubernetes, и у меня есть некоторые проблемы.

У меня есть сервер Ubuntu, и я работаю над ним. Я создал модули и сервисы, также у меня есть модуль API-шлюза и сервис. И я хочу получить доступ к этому pod с помощью IP-адреса моего сервера Ubuntu с моего компьютера.

Но я не могу получить доступ к этому pod извне сервера. Мое приложение в образе docker работает на порту 80.

Мой api-шлюз.файл yaml такой:

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: api-gateway
  template:
    metadata:
      labels:
        app: api-gateway
    spec:
      containers:
        - name: api-gateway
          image: myapi/api-gateway
---
apiVersion: v1
kind: Service
metadata:
  name: api-gateway
spec:
  selector:
    app: api-gateway
  ports:
    - name: api-gateway
      protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30007
  type: NodePort
  externalIPs:
  - <My Ubuntu Server IP Adress>
 

и когда я набираю kubectl get services api-gateway, я получаю

 NAME           TYPE       CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
api-gateway   NodePort   10.104.42.32   <MyUbuntuS IP>   80:30007/TCP   131m
 

также, когда я набираю kubectl describe services api-gateway, я получаю

 Name:                     api-gateway
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=api-gateway
Type:                     NodePort
IP Families:              <none>
IP:                       10.104.42.32
IPs:                      10.104.42.32
External IPs:             <My Ubuntu Server IP Adress>
Port:                     api-gateway  80/TCP
TargetPort:               80/TCP
NodePort:                 api-gateway  30007/TCP
Endpoints:                172.17.0.4:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason  Age                  From                Message
  ----    ------  ----                 ----                -------
  Normal  Type    30m                  service-controller  ClusterIP -> LoadBalancer
  Normal  Type    6m10s                service-controller  NodePort -> LoadBalancer
  Normal  Type    77s (x2 over 9m59s)  service-controller  LoadBalancer -> NodePort
 

Итак, как я могу получить доступ к этому pod в браузере или Postman моего ПК?

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

1. Как вы пытались подключиться к нему

2. В моем модуле у меня был api. И я пытаюсь подключиться к Postman на своем компьютере (вне сервера). Я отправляю запрос GET на <Мой IP-адрес Ubuntu>

3. На какой порт? ..

4. Я попробовал <Мой IP-адрес Ubuntu>: 80 и <Мой IP-адрес Ubuntu>: 30007

5. Порт 30007 должен подойти. Что именно происходит, когда вы пытаетесь подключиться к порту 30007?