我一直在尝试使用 Linkerd 基于路由的指标来联系 Kubernetes 集群外部的 DNS。理想情况下,我想知道这些请求的成功率和失败率。延迟也会有帮助;因此 Linkerd 似乎是一个潜在的合适人选。
有关于启用基于路由的指标的文档,并且甚至提到它们使用外部名称工作。太棒了!
但是,当我在集群上实现此功能时,我没有成功获取任何指标。 Linkerd 不支持这个吗?
理想情况下,我希望能够计量离开集群的出站请求并确定它们的成功/失败率和延迟。
我提供了一个简化的示例 YAML 配置,其中从注入 Linkerd 的集群上应用程序向服务对象发出请求。我尝试将这些请求中的 l5d-header 附加到
test.default.svc.cluster.local
。在我测试过的情况下,我得到 200 响应(通过外部名称向 DNS 发出的请求成功)。但是,Prometheus 中没有出现基于路由的指标。
kind: Service
apiVersion: v1
metadata:
name: test
spec:
type: ExternalName
externalName: redacted.com # External to my cluster. Does not have Linkerd proxy attached.
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: test.default.svc.cluster.local
spec:
routes:
- condition:
method: GET
pathRegex: '.*'
name: External Name GET
responseClasses:
- condition:
status:
min: 500
max: 599
isFailure: true
为了进行验证,我直接检查了 Prometheus。我还尝试使用
linkerd-viz routes
验证功能
有谁知道可能出了什么问题,或者这可能不受支持?
Linkerd 尚不支持此功能。根据 Buoyant 的说法,它有可能在 Linkerd 1.26 中发布