我在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那里获得反馈,他们处理了这个问题,并以更强大的方式解决了它。
1条答案
按热度按时间gz5pxeao1#
使用Azure Application Insights有两个[私有监控选项](https://learn.microsoft.com/en-us/azure/azure-monitor/app/availability-private-test)。
1.允许有限的入站连接
1.使用Azure Functions,如您在选项2中所述。
就我个人而言,我更喜欢端点监控更加独立于托管服务的资源。