kubernetes - 为什么我不能用 Istio Gateway 暴露来自 istio 的 grafana?
问题描述
我正在使用 helm 安装 istio-1.0.0 版本--set grafana.enabled=true
。
要访问 grafana 仪表板,我必须使用kubectl
命令进行端口转发。它工作正常。但是,我想使用公共 ip 访问它,因此我使用这个网关 yaml 文件
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: grafana-gateway
namespace: agung-ns
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 15031
name: http-grafana
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana-global-route
namespace: agung-ns
spec:
hosts:
- "grafana.domain"
gateways:
- grafana-gateway
- mesh
http:
- route:
- destination:
host: "grafana.istio-system"
port:
number: 3000
weight: 100
我试过了curl
,但它返回 404 状态,这意味着路由逻辑和/或我上面的配置有问题。
curl -HHost:grafana.domain http://<my-istioingressgateway-publicip>:15031 -I
HTTP/1.1 503 Service Unavailable
date: Tue, 14 Aug 2018 13:04:27 GMT
server: envoy
transfer-encoding: chunked
任何想法?
解决方案
我认为问题在于您在不同的命名空间中引用服务。您需要添加 FQDN (grafana.istio-system.svc.cluster.local)。
如果您需要集成 istio、grafana、prometheus 和 jaeger,通过网关公开并启用安全性,您可以查看我正在处理的项目: https ://github.com/kyma-project/kyma
推荐阅读
- javascript - 如何解决这个 javascript titlecase 问题?
- javascript - 在折叠时显示 lineleft 节点
- regex - 如何使用 REEXTRACT 提取两个字符串之间的某些字符
- c# - 当我更改继承类中同名方法的代码时,我不需要使用属性覆盖和虚拟。这是为什么?
- c# - 多个 XSD/CLass 对象的接口
- flutter - 我在列中有几个扩展的小部件。首先我展开一个小部件。当我展开第二个时,第一个应该自动折叠
- c# - .Net Core -C#- AWS SQS - 用于获取 QueueMessages 的 StarAsync 和 ExecuteAsync 方法的不同行为
- vue.js - vuejs 2 和 webpack 4 的一些问题
- amazon-web-services - 允许使用 boto3 到 EC2 的入站 SSH 流量
- javascript - 是否可以在接口 Props 中添加任何值以在 React Typescript 中进行初始化?