模拟 AKS 中的应用程序和 Azure 中的 PostgreSQL 服务器之间的网络延迟

Posted

技术标签:

【中文标题】模拟 AKS 中的应用程序和 Azure 中的 PostgreSQL 服务器之间的网络延迟【英文标题】:Simulate network latency between application in AKS and PostgreSQL server in Azure 【发布时间】:2021-12-27 11:20:34 【问题描述】:

我需要测试一个场景以了解我的应用如何处理延迟问题。我的应用程序位于 Azure (AKS) 上的 K8S 中,它连接到 Azure 中的 Postgres DB。任何人都知道任何不太难实现的好工具吗?

【问题讨论】:

sysdig.com/blog/golden-signals-kubernetes 您能否将问号的状态更新为解决方案,这就是 SO 的工作方式? 【参考方案1】:

pgbench 是最简单的使用方式,网上有很多信息可以使用此命令。

【讨论】:

【参考方案2】:

对于简单的 Ping 和延迟检查,您可以使用普通 docker 映像 Busybox 并检查整个网络的延迟。

你也可以使用Prometheus来监控,比如

pg_stat_activity_max_tx_duration is one metrics type. 

您可以在here阅读更多内容

检查POD网络通讯:https://docs.projectcalico.org/getting-started/kubernetes/hardway/test-networking

您还可以查看datadog 之类的工具,这些工具将展示延迟和性能指标等良好细节。

额外

如果您的团队面临延迟问题,请不要忘记查看Pgbouncer。

【讨论】:

【参考方案3】:

我最终创建了一个 haproxy VM 并通过它引导我的数据库流量。然后在 haproxy 上我使用网络模拟器 linux 工具来延迟流量。真的很好用

https://wiki.linuxfoundation.org/networking/netem

【讨论】:

以上是关于模拟 AKS 中的应用程序和 Azure 中的 PostgreSQL 服务器之间的网络延迟的主要内容,如果未能解决你的问题,请参考以下文章

Azure Kubernetes 服务中的 AAD 身份验证

APIM 无法访问子网中的服务 (AKS)

使用 vnet_subnet_id 通过 terraform 启动 AKS 群集 - Azure

如何授予 AKS 通过 terraform 访问 ACR 的权限?

错误:在 Azure Kubernetes 服务 (AKS) 中轮换证书

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