azure - 如何监视 Azure AKS 中非公开的 Kubernetes 服务的正常运行时间

标签 azure kubernetes azure-aks azure-monitor

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

我已经确定了两个选项:

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

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

选项 2:
创建一个启用了 HTTPS API 的 Azure 函数,以便我可以从 Pingdom 外部调用它。 确保该功能将AppService与VM一起使用,以便它可以访问私有(private)IP和服务(因为这是使用VM,所以增加了成本)。该函数检查私有(private)IP并查看是否返回200,并且将返回200;否则,将返回错误代码。因此,Pingdom 将保留正常运行时间详细信息,并在出现故障时发出相应的警报。

摘要:
我对选项一不是 100% 确定。对于第二个选项,似乎做了太多工作,我认为应该有更好、更健壮的方法来做到这一点。

因此,我有兴趣从一些 Azure 和 K8s 专家那里获得反馈,他们处理了该问题并以更可靠的方式解决了该问题。

最佳答案

使用 Azure Application Insights 描述了两个[私有(private)监视选项] ( https://learn.microsoft.com/en-us/azure/azure-monitor/app/availability-private-test )。

  1. 允许有限的入站连接
  2. 使用 Azure Functions,如选项 2 中所述。

我个人更喜欢端点监控更加独立于托管服务的资源。

关于azure - 如何监视 Azure AKS 中非公开的 Kubernetes 服务的正常运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76335368/

相关文章:

amazon-web-services - 如何使用 Terraform 将 AWS IAM 角色分配给服务账户?

spring-boot - 从Kubernetes中部署的应用程序连接到外部数据库

Azure kubernetes - Azure CNI 和 Istio,sidecar IP 分配?

azure - 如何在Windows Azure中创建表?

python - 使用 Python pip 安装 azure-iothub-device-client 时出错

azure - 如何将 Azure VM、应用服务和本地计算机连接到同一 vnet?

azure - 为现有 AKS 群集应用节点自动缩放器时出错

azure - Azure 文件共享的 POSIX 权限

windows - Kubernetes 无法在没有直接互联网访问的情况下在 Docker Desktop 上启动

kubernetes - 缩减Kubernetes中的视频 session 软件