无法访问在 AWS 上运行的 Minikube 上的 NodePort 服务

问题描述 投票:0回答:1

安装 minikube 后,我一直在 AWS 实例(ubuntu 20.04)上按照 Kubernetes 官方网站上的教程进行测试:

https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/

我已经从安全组公开了节点端口 - 31055,如下所述 - 但我仍然无法远程访问该应用程序。当我尝试将curl与应用程序的url一起使用,从ssh访问远程服务器时,我可以获得我正在寻找的结果,但我无法从浏览器访问它。

我尝试使用 docker 驱动程序启动 minikube,也尝试不使用驱动程序,但我仍然面临同样的问题。
知道如何解决这个问题吗?
谢谢

在服务的完整 yaml 下方:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2021-04-10T15:47:01Z"
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:spec:
        f:externalTrafficPolicy: {}
        f:ports:
          .: {}
          k:{"port":8080,"protocol":"TCP"}:
            .: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
        f:selector:
          .: {}
          f:run: {}
        f:sessionAffinity: {}
        f:type: {}
    manager: kubectl-expose
    operation: Update
    time: "2021-04-10T15:47:01Z"
  name: example-service
  namespace: default
  resourceVersion: "521"
  uid: e19ea9a3-9700-4e37-b810-defb7e4fee67
spec:
  clusterIP: 10.99.135.151
  clusterIPs:
  - 10.99.135.151
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 31055
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    run: load-balancer-example
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
minikube
1个回答
1
投票

所以一种解决方案是安装

conntrack

apt install conntrack
minikube start --driver=none

更好的解决方案是以正常方式启动 minikube,然后执行此操作(我在这里使用了全零,但您可以根据您的环境来细化安全性):

kubectl port-forward --address 0.0.0.0 svc/<service-name> <external-port>:<service-port>

外部端口是暴露在互联网上的端口,服务端口是容器正在侦听的端口。例如,如果我的服务名为

badstore
并且正在侦听端口 80

kubectl port-forward --address 0.0.0.0 svc/badstore 8888:80
© www.soinside.com 2019 - 2024. All rights reserved.