在 C# 应用程序中获取集群 azure kubernetes 服务 (AKS) 运行状况/可用性

Posted

技术标签:

【中文标题】在 C# 应用程序中获取集群 azure kubernetes 服务 (AKS) 运行状况/可用性【英文标题】:Get cluster azure kubernetes service (AKS) health/availability in C# application 【发布时间】:2020-12-18 02:06:07 【问题描述】:

我有一个 AKS 集群,其中我在三个不同的命名空间中部署了三个 Docker 容器。第一个 pod 需要检查其他两个 pod 的可用性。我的意思是 POD-1 监控 POD-2 和 POD-3。有没有办法以这种方式监控吊舱?如果其他两个 pod 发生任何错误,POD-1 是否可以生成日志或警报? 第一个 pod 是一个 C# 应用程序。

【问题讨论】:

看起来像一个 Kubernetes 问题,而不是一个特定的 AKS 问题,您可能需要重写您的问题以获得更好的答案并更具体地使用您的用例。如果此答案解决了您的情况,请参见此处:***.com/questions/51079849/… 这可以通过 azure monitor 实现吗?那你为什么说这与aks无关? 即使您可以编写一些代码来“实时”查询 Azure Monitor,这将是一项艰巨的任务,并且会为您的解决方案添加外部依赖项,而您有一个内置的方法可以执行它通过 API 在 Kubernetes 中,无需外部服务:kubernetes.io/docs/concepts/overview/kubernetes-api 【参考方案1】:

您可以使用 Kubernetes API 客户端 SDK for C# (https://github.com/kubernetes-client/csharp) 连接 API Server 并获取所需 PODS 的状态。

如果您遇到权限问题,您可能需要创建一个服务帐户并将其分配给您的 POD。

客户端库通常会为您处理常见任务,例如身份验证。如果 API 客户端在 Kubernetes 集群内运行,大多数客户端库可以发现并使用 Kubernetes 服务帐户进行身份验证,或者可以理解 kubeconfig 文件格式以读取凭据和 API 服务器地址。

https://kubernetes.io/docs/reference/using-api/client-libraries/

【讨论】:

Kubernetes API 客户端中是否有获取 pod 状态的命令

以上是关于在 C# 应用程序中获取集群 azure kubernetes 服务 (AKS) 运行状况/可用性的主要内容,如果未能解决你的问题,请参考以下文章

kube-liveboard: kubernetes集群可视化工具

在 C# 应用程序中从 Azure DevOps 获取构建测试结果

如何在 C# 中获取 Azure 表存储中的所有行?

使用 kube-bench 和 kube-hunter 对 Kubernetes 集群风险评估

如何使用 C# 中的 Azure.Storage.Blobs 从 Azure 存储 Blob 以 ByteArray 格式获取文件

无法从使用 Azure SAML SSO 配置的本地应用程序中的 C# 中的 Request.Params 获取 SAML 响应