【问题标题】:Access application running on Kubernetes cluster访问运行在 Kubernetes 集群上的应用程序
【发布时间】:2020-09-17 14:40:01
【问题描述】:

我目前正在学习 kubernetes 并开始在 minikube 集群上部署 ELK 堆栈(在 linux EC2 实例上运行),虽然我能够成功运行所有对象,但我没有能够从我的 windows 浏览器 访问任何工具,寻找一些关于如何从我的 windows 浏览器访问所有以下公开端口的输入。

集群详情:

NAME                                            READY   STATUS    RESTARTS   AGE
pod/elasticsearch-deployment-5c7d5cb5fb-g55ft   1/1     Running   0          3m43s
pod/kibana-deployment-76d8744864-ddx4h          1/1     Running   0          3m43s
pod/logstash-deployment-56849fcd7b-bjlzf        1/1     Running   0          3m43s

NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
service/elasticsearch-service   ClusterIP   XX.XX.XX.XX      <none>        9200/TCP            3m43s
service/kibana-service          ClusterIP   XX.XX.XX.XX      <none>        5601/TCP            3m43s
service/kubernetes              ClusterIP   XX.XX.XX.XX      <none>        443/TCP             5m15s
service/logstash-service        ClusterIP   10.XX.XX.XX      <none>        9600/TCP,5044/TCP   3m43s

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/elasticsearch-deployment   1/1     1            1           3m43s
deployment.apps/kibana-deployment          1/1     1            1           3m43s
deployment.apps/logstash-deployment        1/1     1            1           3m43s

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/elasticsearch-deployment-5c7d5cb5fb   1         1         1       3m43s
replicaset.apps/kibana-deployment-76d8744864          1         1         1       3m43s
replicaset.apps/logstash-deployment-56849fcd7b        1         1         1       3m43s

注意:我还尝试将上述所有服务作为 NodePort 运行,并使用 minikube ip 我能够点击 curl 命令来检查应用程序的状态,但仍然无法通过我的浏览器访问它

【问题讨论】:

  • 您遇到什么错误?来自您尝试通过浏览器访问的同一系统的 curl 是否有效?
  • @ArghyaSadhu 下面是 powershell 输出:PS C:\Users\Alpha123&gt; Invoke-WebRequest http://&lt;minikubeip&gt;:5601 Invoke-WebRequest : Unable to connect to the remote server 下面是使用 ClusterIP 服务时的 curl 输出:alpha@myEC2vm:~$ curl http://&lt;minikube ip&gt;:5601/api/status curl: (7) Failed to connect to &lt;minikube ip&gt; port 5601: Connection refused

标签: kubernetes minikube


【解决方案1】:

通常,如果您想在集群外公开任何内容,您需要使用service typeNodePortLoadBalancer 或使用Ingress。如果您检查Minikube documentaton,您会发现Minikube 支持所有这些类型。

如果您考虑过LoadBalancer,可以使用minikube tunnel

当您使用cloud environment和非标准端口时,您应该检查firewall rules以检查端口/流量是否开放。

关于评论中的错误,您似乎对Kibana 端口5601 有问题。

您是否检查过类似的主题,例如 thisthis?如果这没有帮助,请提供 Kibana 配置。

【讨论】:

  • 嗨@Pjoter,其实我更想知道如何从我的Windows 浏览器访问我的ELK Stack?通过在 NodePort 服务上运行集群,我将只能从 VM 本身访问堆栈(使用 minikube ip),但我正在寻找有关如何使用我的 Windows 机器上的 VM's Public IP 访问堆栈的信息?注意:我在 Windows 上并使用 PuTTY 连接到 linux VM,所以我正在寻找有关如何使用 VM 的公共 IP 访问堆栈的指导
  • 嗨@PjoterS,我使用了 ClusterIP 和 Ingress Nginx 组合,并成功地从 VM 卷曲;有什么办法可以将 http 请求路由到我的 VM 的公共 IP 到这个 minikube IP?
  • 我使用 nginx 将对我的虚拟机的请求代理到 minikube
  • 我猜this thread中提供了有关使用 nginx 进行 minikube 重定向的答案
【解决方案2】:

您是否只检查了普通的端口转发而不是 minikube ip,然后公开。那些对我也不起作用。

这样的事情可能会有所帮助。

kubectl 端口转发部署/kibana-kibana 5601

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多