如何监视在Azure AKS中未公开的Kubernetes服务的正常运行时间

3ks5zfa0  于 2023-05-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(147)

我在Azure Kubernetes Service中部署了多个Pod。
有一个K8s服务用于连接部署Pod。
该服务具有可在Azure虚拟网络中访问的专用IP。服务类型为LoadBalancer。
我想监视一下,看看服务是否正常。如果未启动,则触发电子邮件警报。
我确定了两个选择:

选项一:

我启用了AKS诊断,以便获取服务日志。当我使用下面的查询检查日志时,我可以看到服务失败日志。我想我可以在Azure Monitor中使用这些日志来触发警报。我仍然需要验证它是否能在每种类型的故障中工作。

KubeEvents
| where TimeGenerated > ago(7d)
| where not(isempty(Namespace))
| where ObjectKind == 'Service'

选项二:

创建一个启用HTTPS API的Azure函数,以便我可以从Pingdom外部调用它。确保该函数使用带有VM的AppService,以便它可以访问私有IP和服务(由于使用VM,因此会增加成本)。函数检查私有IP,看是不是返回200,它会返回200;否则,它将返回一个错误代码。因此Pingdom将保留正常运行时间的详细信息,并在停机时发出相应的警报。

摘要:

我不是100%确定第一个选择。对于第二种选择,似乎做了太多的工作,我认为应该有一个更好和更有力的方法来做这件事。
因此,我有兴趣从一些Azure和K8sMaven那里获得反馈,他们处理了这个问题,并以更强大的方式解决了它。

gz5pxeao

gz5pxeao1#

使用Azure Application Insights有两个[私有监控选项](https://learn.microsoft.com/en-us/azure/azure-monitor/app/availability-private-test)。
1.允许有限的入站连接
1.使用Azure Functions,如您在选项2中所述。
就我个人而言,我更喜欢端点监控更加独立于托管服务的资源。

相关问题