无法从浏览器访问kubernetes NodePort服务

Ara*_*ind 3 kubernetes minikube kubernetes-service

我正在我的AWS EC2上通过Minikube在Kubernetes上进行练习。作为其中的一部分,我创建了部署并通过NodePort服务公开它,然后检查:

curl http://<node-ip>:<service-port>
Run Code Online (Sandbox Code Playgroud)

在 EC2 机器中运行良好。但是当我在浏览器上点击相同的 URL 时,我得到了:

This site can't be reached
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决问题是什么以及如何访问它?

谢谢。

这是我的部署 YAML 文件:


apiVersion: apps/v1
kind: Deployment
metadata:
  name: myfirstdeployment
  labels:
    app: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      name: myfirstpod
      labels:
        app: web
    spec:
      containers:
      - name: myfirstpod-1
        image: nginx
        command: ["sleep","3600"]
        ports:
        - containerPort: 80

这是我的服务 YAML 文件


apiVersion: v1
kind: Service
metadata:
  name: myfirstservice
spec:
  selector:
    app: web
  ports:
  - targetPort: 80 #target container's port
    port: 80 #service port
    nodePort: 30030 #node port that we access to
  type: NodePort

OhH*_*ark 5

我强烈建议您阅读官方教程,其中显示了Minikube 中的访问应用程序选项:

如何访问 minikube 中运行的应用程序 Kubernetes 中的服务主要有两大类:

  • 节点端口
  • 负载均衡器

minikube 都支持。继续阅读!

在那里您将找到如何使用NodePort 访问

服务NodePort是让外部流量直接到达您的服务的最基本方式。NodePort顾名思义,打开一个特定的端口,发送到该端口的任何流量都会转发到该服务。

请注意,您必须minikube ip在此处使用。

还有LoadBalancer 访问

服务LoadBalancer是向互联网公开服务的标准方式。通过这种方法,每个服务都会获得自己的 IP 地址。

该方法使用minikube tunnel命令。

您还可以使用这些文档作为补充。