Я пытаюсь подключить простой модуль nginx к службе Nodeport. но я получаю сообщение об ошибке, т.е. в соединении отказано

root@Master:~# cat new-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: zero-pod
  labels:
    app: my-ns
spec:
  containers:
  - image: nginx
    name: zero-pod
root@Master:~# cat nps.yaml 
apiVersion: v1
kind: Service
metadata:
  name: my-ns
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: my-ns
  type: NodePort
root@Master:~# kubectl get svc my-ns
NAME    TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
my-ns   NodePort   10.105.183.144   <none>        80:30007/TCP   48m

root@Master:~# curl 10.2.0.4:30007
curl: (7) Failed to connect to 10.2.0.4 port 30007: Connection refused

Я создал еще один простой модуль helloworld, подключенный к той же службе nodeport, и он работает.

root@Master:~# curl 10.2.0.4:30007
Hello, world!
Version: 2.0.0
Hostname: pod-theta

Какова основная вещь, которую я упускаю в этом, или мы вообще не можем подключить сервер nginx к nodeport.

Если нет, я вижу, что nginx подключается к nodeport через развертывание, как это работает, может кто-нибудь пролить свет на это ??

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сервис nginx в официальном nginx контейнере слушает порт 80, а не порт 8080. Вам нужно обновить настройку targetPort в вашем Service:

apiVersion: v1
kind: Service
metadata:
  name: my-ns
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: my-ns
  type: NodePort

Хотя это и не обязательно, я бы определил порт в вашем Pod манифесте, возможно, с именем, чтобы в итоге вы получили этот Pod манифест:

apiVersion: v1
kind: Pod
metadata:
  name: zero-pod
  labels:
    app: my-ns
spec:
  containers:
  - image: nginx
    name: zero-pod
    ports:
      - containerPort: 80
        name: http

А это Service:

apiVersion: v1
kind: Service
metadata:
  name: my-ns
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: http
  selector:
    app: my-ns
  type: NodePort

Спасибо @larsks, это сработало после обновления целевого порта до 80.

ayyapaneni 02.05.2022 17:18

Другие вопросы по теме