Входное соединение nginx baremetal отклонено

Я пытаюсь изучить kubernetes и ingress. Я что-то неправильно понял?

Я использую proxmox с 3vm

     kubectl get nodes
NAME    STATUS   ROLES                  AGE    VERSION
k8sm    Ready    control-plane,master   127d   v1.22.4
k8sn1   Ready    <none>                 127d   v1.22.4
k8sn2   Ready    <none>     

        127d   v1.22.4

У меня есть 2 модуля nginx в качестве развертывания.

    kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
curl-test                   1/1     Running   0          5d11h
frontend-86968456b9-jnbqf   1/1     Running   0          5d11h
frontend-86968456b9-tj2w9   1/1     Running   0          5d11h

1 сервис используется с ярлыком

  kubectl get svc
NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes           ClusterIP   10.96.0.1       <none>        443/TCP   127d
my-service-ingress   ClusterIP   10.104.228.72   <none>        80/TCP    25h

SVC .yaml

    ---
apiVersion: v1
kind: Service
metadata:
  name: my-service-ingress
spec:
  selector:
    app: frontend
  ports:
  - port: 80
    targetPort: 80

Я подключен к главному узлу по ssh

 curl http://10.104.228.72
 THIS IS CONTAINER : 1

Это мой входной файл, скопированный из официальной документации kubernetes.

 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /frontend
        pathType: Prefix
        backend:
          service:
            name: my-service-ingress
            port:
              number: 80

Входной ресурс:

    kubectl get ingress -o wide
NAME           CLASS    HOSTS   ADDRESS   PORTS   AGE
test-ingress   <none>   *                 80      39m

информация о входном контроллере

kubectl get all -n ingress-nginx
NAME                                           READY   STATUS      RESTARTS   AGE
pod/ingress-nginx-admission-create--1-tnglj    0/1     Completed   0          24h
pod/ingress-nginx-admission-patch--1-97n79     0/1     Completed   1          24h
pod/ingress-nginx-controller-547f579dc-ssf5r   1/1     Running     0          24h

NAME                                         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/ingress-nginx-controller             NodePort    10.100.181.85   <none>        80:32412/TCP,443:32016/TCP   24h
service/ingress-nginx-controller-admission   ClusterIP   10.98.29.50     <none>        443/TCP                      24h

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ingress-nginx-controller   1/1     1            1           24h

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/ingress-nginx-controller-547f579dc   1         1         1       24h

NAME                                       COMPLETIONS   DURATION   AGE
job.batch/ingress-nginx-admission-create   1/1           4s         24h
job.batch/ingress-nginx-admission-patch    1/1           5s         24h

curl test с IP-узлами не работает:

kubectl get nodes -o wide
NAME    STATUS   ROLES                  AGE    VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                       KERNEL-VERSION    CONTAINER-RUNTIME
k8sm    Ready    control-plane,master   127d   v1.22.4   192.168.1.38   <none>        Debian GNU/Linux 10 (buster)   4.19.0-18-amd64   docker://20.10.11
k8sn1   Ready    <none>                 127d   v1.22.4   192.168.1.39   <none>        Debian GNU/Linux 10 (buster)   4.19.0-18-amd64   docker://20.10.11
k8sn2   Ready    <none>                 127d   v1.22.4   192.168.1.40   <none>        Debian GNU/Linux 10 (buster)   4.19.0-18-amd64   docker://20.10.11
rbo@K8sM:~/elearning/kubernestes_admin_course/Zeal_Vora/Ingress$ curl http://192.168.1.39
curl: (7) Failed to connect to 192.168.1.39 port 80: Connexion refusée
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

В Ingress вы использовали путь /frontend, но не нажимаете его, пока

Кроме того, используйте Node Port с Node IP, если вы используете внутренний IP-адрес службы.

Что-то вроде :

curl http://192.168.1.39:32412/frontend

Привет, дорогой, спасибо за ответ. Вы уверены насчет нодпорта? в документации по входу сказано, что я должен использовать ClusterIp. Не могли бы вы привести пример yaml? Я уже пробовал с 192.168.1.39/интерфейс и тот же результат

Rabah DevOps 01.04.2022 07:31

я не уверен, какова ваша фактическая настройка, если вы используете публично вне сети, вам нужно использовать IP-адрес узла, IP-адрес кластера работает только внутри кластера

Harsh Manvar 01.04.2022 07:32

Понял, дорогая, теперь у меня есть веб-страница с URL-адресом 192.168.1.39:32412/интерфейс с ошибкой 404, не найденная страница

Rabah DevOps 01.04.2022 07:34

Работал нормально, я добавил kubernetes.io/ingress.class: nginx в аннотацию. Не могу полностью понять, почему я должен добавить порт обслуживания.

Rabah DevOps 01.04.2022 07:39

Итак, теперь вы нажимаете на nginx, так как получаете ошибку 404, которая будет на стороне nginx.

Harsh Manvar 01.04.2022 07:39

clusterip используется для внутренней связи, если вы хотите получить доступ из кластера с портом узла, вы должны использовать только IP-адрес узла.

Harsh Manvar 01.04.2022 07:40

IP-адрес узла и порт узла вместе предоставляют общедоступную службу, в то время как clusterip разрешается только внутренне из другого модуля или службы.

Harsh Manvar 01.04.2022 07:40

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