如何通过私有端点从Azure AKS集群连接到Azure SQL服务器



在我的Azure环境中,我有私有SQL Server。为了访问SQL Server和数据库,我使用私有端点。当我连接到SQL从VM在同一个虚拟网络我没有问题。我在同一个虚拟网络中有AKS,我尝试从pod连接到数据库,但Kubernetes DNS没有正确解析SQL Server FQDN。DNS名称解析到外部IP,但私有SQL没有外部访问权限。

这是SQL Server如何从VM解析的例子:

nslookup *****************.database.windows.net
Server:     127.0.0.53
Address:    127.0.0.53#53
Non-authoritative answer:
*****************.database.windows.net  canonical name = *****************.privatelink.database.windows.net.
Name:   *****************.privatelink.database.windows.net
Address: 172.0.8.4

这是私有端点

的正确地址以及它如何从AKS集群中的pod中解析:

kubectl exec -it dnsutils -- nslookup *****************.database.windows.net
Server:     10.0.0.10
Address:    10.0.0.10#53
Non-authoritative answer:
*****************.database.windows.net  canonical name = *****************.privatelink.database.windows.net.
*****************.privatelink.database.windows.net  canonical name = dataslice6.******.database.windows.net.
dataslice6.******.database.windows.net  canonical name = dataslice6*******.trafficmanager.net.
dataslice6*******.trafficmanager.net    canonical name = cr5.******-a.control.database.windows.net.
Name:   cr5.*******-a.control.database.windows.net
Address: 40.78.225.32

我如何设置连接pod从AKS到SQL私有端点?

创建防火墙规则Azure DB服务器具有AKS集群节点的一系列IP地址。

创建VNet规则在Azure DB服务器上,允许访问从子网到AKS节点

在集群子网上启用Microsoft.Sql

VNet服务端点时使用。如果Azure SQL数据库被限制为只允许私有访问,我们可以使用跨区域私有端点通过Azure私有链接Azure SQL区域私有端点与Azure全局vnet对等.

要从SQL私有端点连接AKS,我们将使用VNet对等与Azure SQL数据库私有链接

查看detail请参考下面的链接:

https://learn.microsoft.com/en-us/azure/aks/command-invoke

https://arsenvlad.medium.com/aks-workload-accessing-azure-sql-database-in-another-region-cb6fb30545e4

https://argonsys.com/microsoft-cloud/library/private-aks-and-acr-using-private-endpoint-part-1-2/

https://blog.crossplane.io/azure-secure-connectivity-for-aks-azure-db/

我猜您的SQL服务器的私有IP在您的AKS集群的网络菜单中发现的docker桥的CIDR范围内。如果它在这个范围内,那么docker将不允许请求离开docker网络。

相关内容

  • 没有找到相关文章

最新更新