无法访问网络上的 Web 应用 运行 kubernetes 和 minikube

Can not access web app on the network running kubernetes and minikube

我有一个 docker 容器,它运行一个基本的前端 angular 应用程序。我已经验证它运行没有问题,我可以使用 docker run -p 5901:80 formbuilder-stand-alone-form.

在浏览器中成功访问网络应用程序

我能够在我的云开发服务器上使用 minikube 和 kubernetes 成功部署它

apiVersion: v1
kind: Service
metadata:
  name: stand-alone-service

spec:
  selector:        
    app: stand-alone-form
  
  ports:
    - protocol: TCP
      port: 5901
      targetPort: 80
  
  type: LoadBalancer
---
apiVersion: apps/v1

kind: Deployment

metadata:
  name: stand-alone-form-app
  labels:               
    app: stand-alone-form
spec:                   
  replicas: 1           
  
  selector:
    matchLabels:
      app: stand-alone-form

  template:
    metadata:
      labels:
        app: stand-alone-form
    
    spec:
      containers:
      - name: stand-alone-form-pod
        image: formbuilder-stand-alone-form
        imagePullPolicy: Never
        ports:                
        - containerPort: 80
one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% kubectl get pods
NAME                                    READY   STATUS    RESTARTS   AGE
stand-alone-form-app-6d4669f569-vsffc   1/1     Running   0          6s
one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% kubectl get deployments
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
stand-alone-form-app   1/1     1            1           8s
one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% kubectl get services   
NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes            ClusterIP      10.96.0.1       <none>        443/TCP          5d7h
stand-alone-service   LoadBalancer   10.96.197.197   <pending>     5901:30443/TCP   21s

但是,我无法通过 url:

访问它
one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh
%  minikube service stand-alone-service 
|-----------|---------------------|-------------|---------------------------|
| NAMESPACE |        NAME         | TARGET PORT |            URL            |
|-----------|---------------------|-------------|---------------------------|
| default   | stand-alone-service |        5901 | http://192.168.49.2:30443 |
|-----------|---------------------|-------------|---------------------------|

在这个例子中,http://192.168.49.2:30443/ 给了我一个死网页。

我禁用了所有 iptables 以进行故障排除。

知道如何访问前端 Web 应用程序吗?我在想我可能选错了选择器,但确实如此。

更新:这是请求的新输出:

one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% kubectl describe service stand-alone-service
Name:                     stand-alone-service
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=stand-alone-form
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.96.197.197
IPs:                      10.96.197.197
LoadBalancer Ingress:     10.96.197.197
Port:                     <unset>  5901/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30443/TCP
Endpoints:                172.17.0.2:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% minikube tunnel
Password: 
Status: 
    machine: minikube
    pid: 237498
    route: 10.96.0.0/12 -> 192.168.49.2
    minikube: Running
    services: [stand-alone-service]
    errors: 
        minikube: no errors
        router: no errors
        loadbalancer emulator: no errors

注意:我注意到隧道我现在确实有一个用于负载均衡器的外部 IP:

one@work ...github/stand-alone-form-builder-hhh/form-builder-hhh (main)
% kubectl get service   
NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
kubernetes            ClusterIP      10.96.0.1       <none>          443/TCP          5d11h
stand-alone-service   LoadBalancer   10.98.162.179   10.98.162.179   5901:31596/TCP   3m10s

您的 LoadBalancer 似乎没有完全正确解析,因为外部 IP 仍标记为 <pending>

根据 Minikube 的说法,当隧道丢失时会发生这种情况: https://minikube.sigs.k8s.io/docs/handbook/accessing/#check-external-ip

您是否在单独的命令中尝试过 运行 minikube tunnel window?