Назад | Перейти на главную страницу

Хотя внешний IP-адрес разрешен, веб-сайт возвращает таймаут подключения в кубернетах

Я создал yaml для развертывания и обслуживания k8s для статического веб-сайта. Внешний IP-адрес также разрешен в сервисе kubernetes. Но когда я пытаюсь получить доступ к веб-сайту через curl или браузер, он возвращает время ожидания соединения.

Dockerfile:

FROM nginx:alpine
COPY . /usr/share/nginx/html

Развертывание K8s yml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ohno-website
  labels: 
          app: ohno-website
spec:
  replicas: 1
  selector:
          matchLabels:
                  app: ohno-website
  template:
          metadata:
                      labels:
                              app: ohno-website
          spec:
                  containers:
                          - name: ohno-website
                            image: gkganeshr/ohno-website:v0.1
                            imagePullPolicy: Always
                            ports:
                                    - containerPort: 80 
k8s service yml:
apiVersion: v1
kind: Service
metadata:
  name: ohno-website
spec:
  type: LoadBalancer
  ports:
          - protocol: TCP
            port: 80
            targetPort: 9376
  selector:
    app: ohno-website
ohno_fooserver@cloudshell:~ (fourth-webbing-279817)$ kubectl get svc
NAME           TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
kubernetes     ClusterIP      10.16.0.1      <none>          443/TCP        8h
ohno-website   LoadBalancer   10.16.12.162   34.70.213.174   80:31977/TCP   7h4m

Добро пожаловать в стек! Ваш targetPort направляет трафик на порт 9376, но модуль развертывания прослушивает порт 80. Измените targetPort до 80 к вашим услугам.

Вот краткое описание того, какой порт и что делает в Kubernetes:

Порт предоставляет службу Kubernetes на указанном порту в кластере. Другие модули в кластере могут связываться с этим сервером по указанному порту.

TargetPort - это порт, на который служба будет отправлять запросы, которые будет прослушивать ваш модуль. Ваше приложение в контейнере также должно будет прослушивать этот порт.

NodePort предоставляет службу кластеру извне с помощью IP-адреса целевого узла и NodePort. NodePort - это настройка по умолчанию, если поле порта не указано.

Сообщите мне, если это поможет.