Я создал 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 - это настройка по умолчанию, если поле порта не указано.
Сообщите мне, если это поможет.