几天来,我一直面临着一个棘手的错误。
我在与其他应用程序共享的网关上公开了一个k8s集群。在k8s端,我们安装了AGIC以公开集群,在应用程序网关中,有一个httpplistener,我已将其包含在AzureIngressProhibitedTarget中。
当我向应用程序网关添加一个新的侦听器,创建一个新AzureIngressProhibitedTarget时,问题就开始了。
问题是,每次我们部署集群中托管的任何微服务时,当我们试图访问应用程序时,都会遇到502错误。
分析问题时,我们首先发现了一个错误,如下所示:
reason: FailedApplyingAppGwConfig
message: >-
network.ApplicationGatewaysClient#CreateOrUpdate: Failure sending request:
StatusCode=0 -- Original Error:
Code="ApplicationGatewayRequestRoutingRulePartialPriorityDefined"
Message="Either all or no rule should have the priority specified." Details=[]
source:
component: azure/application-gateway
host: application-gateway-kubernetes-ingress-ingress-azure-74f75pb2dl
由于找不到问题,我们删除并重新创建了侦听器,一切都重新开始工作。
今天我做了一个新的部署,遇到了同样的错误(502,当我试图访问应用程序时(,分析这个问题时,我在一个长时间没有修改的服务的pod事件中发现了以下错误:
message: >-
Readiness probe failed: Get "http://[ip]:15902/osm-readiness-probe":
context deadline exceeded (Client.Timeout exceeded while awaiting headers)
source:
component: kubelet
host: aks-default-11069749-vmss000005
message: >-
Liveness probe failed: Get "http://[ip]:15901/osm-liveness-probe":
context deadline exceeded (Client.Timeout exceeded while awaiting headers)
source:
component: kubelet
host: aks-default-11069749-vmss000005
删除和重新创建侦听器我在发现以前问题的同一个pod中遇到的唯一错误是以下错误(在删除并重新创建pod之后(:
message: 'Readiness probe failed: HTTP probe failed with statuscode: 504'
source:
component: kubelet
host: aks-default-11069749-vmss000004
我已经检查了AzureIngressProhibitedTarget配置,似乎没有任何问题,我甚至找不到解决这个问题的方法。有人遇到过类似的问题吗?
我发现了这个问题,我的AGIC版本是1.5.1,第一个问题是1.5.2版本中修复的一个错误(阅读本文(,其他问题是第一个错误的结果。决议是更新AGIC,删除禁止所有目标,并重新启动AGIC吊舱。