我正在尝试通过 Helm 在 Azure Kubernetes 服务 (AKS) 中部署 Grafana。我使用的是比特纳米我一直在关注这个微软教程设置应用程序网关入口控制器。
这些 Pod 正在运行,我ClusterIP
在它们前面有一项服务:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-grafana ClusterIP 10.0.230.64 <none> 3000/TCP 29m
输出kubectl describe svc
:
Name: my-grafana
Namespace: default
Labels: app.kubernetes.io/component=grafana
app.kubernetes.io/instance=my-grafana
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=grafana
helm.sh/chart=grafana-8.4.5
Annotations: meta.helm.sh/release-name: my-grafana
meta.helm.sh/release-namespace: default
service.beta.kubernetes.io/azure-load-balancer-internal: true
Selector: app.kubernetes.io/component=grafana,app.kubernetes.io/instance=my-grafana,app.kubernetes.io/name=grafana
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.0.168.200
IPs: 10.0.168.200
Port: http 3000/TCP
TargetPort: dashboard/TCP
Endpoints: 10.244.0.20:3000,10.244.0.21:3000
Session Affinity: None
Events: <none>
接下来,我还定义了一个入口,它使用 AGIC 自动配置应用程序网关 (AGW)(AGW 和 AKS 集群在同一个资源组中定义)。
NAME CLASS HOSTS ADDRESS PORTS AGE
my-grafana <none> * 52.XXX.XXX.XXX 80 29m
输出kubectl describe ing
:
Name: my-grafana
Labels: app.kubernetes.io/component=grafana
app.kubernetes.io/instance=my-grafana
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=grafana
helm.sh/chart=grafana-8.4.5
Namespace: default
Address: 52.XXX.XXX.XXX
Ingress Class: <none>
Default backend: <default>
Rules:
Host Path Backends
---- ---- --------
*
/* my-grafana:http (10.244.0.16:3000,10.244.0.17:3000)
Annotations: kubernetes.io/ingress.class: azure/application-gateway
meta.helm.sh/release-name: my-grafana
meta.helm.sh/release-namespace: default
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning PortResolutionError 31m (x2 over 32m) azure/application-gateway Code="ErrorServiceResolvedToInvalidPort" Message="service default/my-grafana and service port http was resolved to an invalid service-backend port 65536, defaulting to port 80"
如果我尝试连接到外部地址(连接到 AGW 的公共 IP),则使用上述配置会收到 HTTP 502 错误。
如果我在文件中更改hostname: "*"
为,公共 IP 现在将返回 HTTP 404 错误。hostname: grafana.local
values.yaml
当我连接到其中一个 pod 时,我可以使用集群 IP 以及每个 pod 单独连接到 Grafana,在端口 3000 上。
据我所知,问题出在 AGW 和 Ingress/Service 之间,但我不知道该进一步调查什么。任何提示都将不胜感激!