gpt4 book ai didi

azure - Kubernetes:连接到 Azure SQL

转载 作者:行者123 更新时间:2023-12-05 02:06:19 26 4
gpt4 key购买 nike

我已将 SQL 托管在 Azure SQL 上。
从我的 AKS、每个 Pod 中,我发现它无法连接到 Azure SQL。
数据库连接:

Data Source=tcp:dbname.database.windows.net,1433;Initial Catalog=dbname;User Id={account};Password={password}

在 Azure 门户中 > 我已在下面启用此功能 enter image description here

我仔细检查了连接字符串,并且能够从本地计算机进行连接,但在 kubenetes pod 内,我尝试对它响应的服务器执行 telnet

Connection closed by foreign host.

我可以知道这是怎么回事吗?

最佳答案

Azure 为 AKS 工作节点上运行的 Pod 提供两个选项来访问 MySQL 或 PostgreSQL 数据库实例:

创建 firewall rule在 Azure DB 服务器上,其 IP 地址范围包含 AKS 群集节点的所有 IP(如果使用节点自动缩放,这可能是一个非常大的范围)。

创建 VNet Rule在允许从 AKS 节点所在子网进行访问的 Azure DB 服务器上。这与在群集子网上启用的 Microsoft.Sql VNet 服务终结点结合使用。

出于多种原因,在这种情况下建议使用 VNet 规则并且更推荐使用 VNet 规则。节点通常配置有动态 IP 地址,这些地址可能会在节点重新启动时发生变化,从而导致引用特定 IP 的防火墙规则被破坏。可以将节点添加到集群,这需要更新防火墙规则以添加其他 IP。 VNet 规则通过授予对 AKS 节点的整个子网的访问权限来避免这些问题。

手动步骤

为 AKS 和 Azure DB 配置安全网络环境需要满足以下条件:

  1. AKS 集群设置

ResourceGroup:对所有资源所需的资源进行逻辑分组。

VNet: 为 AKS 群集节点创建虚拟网络。

子网 具有 AKS 群集节点的一系列专用 IP使用上述资源创建 AKS 集群。

  • 配置托管服务访问
  • VNet 服务终结点: 使用 Microsoft.Sql 的服务终结点更新上面的群集子网,以启用新 Azure DB 服务资源的连接。

  • 在集群网络上使用私有(private) IP 配置托管服务
  • 配置托管 Azure DB 服务实例:PostgreSQL、MySQL。每个托管服务实例的VNet 规则,允许从群集子网中的所有节点到给定 Azure DB 服务实例(PostgreSQL、MySQL)的流量。

    关于azure - Kubernetes:连接到 Azure SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62828549/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com