访问 Kubernetes 集群上的应用程序 运行
Access application running on Kubernetes cluster
我目前正在学习 kubernetes 并开始在 minikube 集群上部署 ELK 堆栈(运行ning 在 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 命令来检查应用程序的状态,但仍然无法访问通过我的浏览器中的任何一个
一般来说,如果你想在集群之外公开任何东西,你需要用户 service type
:
NodePort, LoadBalancer or use Ingress. If you will check Minikube documentaton,你会发现 Minikube
支持所有这些类型。
如果你考虑过LoadBalancer
,你可以使用minikube tunnel。
当您使用 cloud environment
和非标准端口时,您应该检查 firewall rules
以检查 port/traffic 是否打开。
关于评论中的错误,您的 Kibana
端口 5601
似乎有问题。
你是否只检查了一个正常的 port-forward 而不是 minikube ip,然后公开。那些对我也不起作用。
这样的事情可能会有所帮助。
kubectl port-forward deployment/kibana-kibana 5601
我目前正在学习 kubernetes 并开始在 minikube 集群上部署 ELK 堆栈(运行ning 在 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 命令来检查应用程序的状态,但仍然无法访问通过我的浏览器中的任何一个
一般来说,如果你想在集群之外公开任何东西,你需要用户 service type
:
NodePort, LoadBalancer or use Ingress. If you will check Minikube documentaton,你会发现 Minikube
支持所有这些类型。
如果你考虑过LoadBalancer
,你可以使用minikube tunnel。
当您使用 cloud environment
和非标准端口时,您应该检查 firewall rules
以检查 port/traffic 是否打开。
关于评论中的错误,您的 Kibana
端口 5601
似乎有问题。
你是否只检查了一个正常的 port-forward 而不是 minikube ip,然后公开。那些对我也不起作用。
这样的事情可能会有所帮助。
kubectl port-forward deployment/kibana-kibana 5601