cómo acceder a la aplicación web que se ejecuta en Kubernetes desde el host

cómo acceder a la aplicación web que se ejecuta en Kubernetes desde el host

Estoy usando el escritorio acoplable en Windows. Tengo una imagen de Docker con una aplicación web de Python. Puedo ejecutar un contenedor y acceder a él en mi host como http://localhost:9090

Ahora estoy intentando ejecutarlo en un clúster de Kubernetes con el yaml de implementación a continuación.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask
  namespace: dev
  labels:
    app: flask
spec:
  replicas: 3
  selector:
    matchLabels:
      app: flask
  template:
    metadata:
      labels:
        app: flask
    spec:
      containers:
      - name: flask
        image: myubuntu
        imagePullPolicy: Never
        resources:
          requests:
            cpu: "500m"
            memory: "500Mi"
        ports:
        - containerPort: 9090
---
apiVersion: v1
kind: Service
metadata:
  name: flask
  namespace: dev
spec:
  type: NodePort
  selector:
    app: flask
  ports:
    - protocol: TCP
      port: 9090
      targetPort: 9090

luego corrí:

kubectl apply -f deployment.yaml
kubectl get service

que me dio:

NAME    TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
flask   NodePort   10.110.188.94   <none>        9090:30007/TCP   10m

pero no puedo acceder desde el host a través de

curl http://localhost:9090
curl http://localhost:30007
curl http://10.110.188.94:9090
curl http://10.110.188.94:30007

¿Alguien sabe cómo puedo acceder a la aplicación web desde el host?

Respuesta1

Me di cuenta de. Me deshice del servicio NodePort y en su lugar creé un LoadBalancer

kubectl expose deployment flask --type="LoadBalancer" -n dev

ahora tengo acceso a mi aplicación en localhost:9090

información relacionada