模拟 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 身份验证
使用 vnet_subnet_id 通过 terraform 启动 AKS 群集 - Azure
如何授予 AKS 通过 terraform 访问 ACR 的权限?