kubernetes - 如何使用 ip 地址访问 grafana-istio 仪表板?
问题描述
我正在使用minikube
运行 kubernetes 集群。我按照Istio Docs中给出的设置来安装 istio 插件。我可以使用访问仪表板,localhost:3000
但无法使用ip:3000
.
检查防火墙。它没有阻塞任何端口。
解决方案
不幸的是,如果您正在使用istio
,仅仅更改服务类型并不容易。您必须配置 IstioVirtualService
并创建Gateway
.
我将这个答案发布为与另一个堆栈案例相关的社区 wiki:https : //stackoverflow.com/a/56019381/11148139 如上所述的问题有 1 个反对票,将来可能会被删除,我将发布以供将来在这种情况下使用。
============================================
您可以创建Istio Gateway 和 VirtualService以便将您的请求转发到grafana
默认在端口 3000 上运行的服务
首先,让我们检查grafana
和istio-ingressgateway
服务
kubectl get svc grafana istio-ingressgateway -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 100.71.67.105 <none> 3000/TCP 18h
istio-ingressgateway LoadBalancer 100.64.42.106 <Public IP address> 15020:31766/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32576/TCP,15030:30728/TCP,15031:31037/TCP,15032:31613/TCP,15443:32501/TCP 18h
因此,我们grafana
在端口 3000 上运行服务侦听,并且默认istio-ingressgateway
LoadBalancer 服务使用分配的公共 IP 地址运行。
然后我们创建gateway
使用这个默认的LoadBalancer。
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: grafana-gateway
namespace: istio-system # Use same namespace with backend service
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: HTTP
protocol: HTTP
hosts:
- "*"
EOF
grafana service
然后为通过此网关进入的流量配置路由:
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana
namespace: istio-system # Use same namespace with backend service
spec:
hosts:
- "*"
gateways:
- grafana-gateway # define gateway name
http:
- match:
- uri:
prefix: "/"
route:
- destination:
port:
number: 3000 # Backend service port
host: grafana # Backend service name
EOF
然后点击http://<public_ip_istio_ingressgateway>
,你应该会看到 grafana 仪表板
我希望它对你有帮助。
推荐阅读
- for-loop - 如何使用 ggplot2 在 for 循环中从数据框生成绘图标题?
- sql - SSRS 将多列中的多行合并为一行
- lua - Pandoc:用于替换 {{helloworld}} 的 Lua-Filter美国广播公司
- excel - 遍历工作表并在值为 true 时插入具有布局的行
- mongodb - 更新嵌套列表会生成对象而不是数组
- apache-spark - Spark - 如何从具有二进制类型的数据框列中获取值?
- javascript - 简化javascript中的嵌套for循环
- angular - 如何使用ngx-formly hideExpression根据父值隐藏和显示子元素
- python - 如何在 on_member_join() discord.py 中向成员发送私人消息?
- freetype - 如何使用freetype获取字形unicode?