1

我正在尝试使用 Azure AKS,但在通过 Azure CLI 为我的 SQL 服务器添加 vnet 规则时遇到了问题。它因错误而死:

请求中发生错误。,RetryError: HTTPSConnectionPool(host='management.azure.com', port=443): Max retries exceeded with url:

/subscriptions/...路径省略.../mysql/virtualNetworkRules/my-vnet-rule?api-version=2015-05-01-preview (由 ResponseError('too many 500 errorresponse',) 引起)

这是我到目前为止所做的:

az group create --name myrg --location centralus
az aks create -n mycluster  -g myrg --generate-ssh-keys
az aks get-credentials -g myrg -n mycluster
az sql server create --name mysql  -g myrg  --location centralus  --admin-user myuser --admin-password mypassword

在这一点上,我最终得到了两个 RG,一个名为“myrg”,一个名为“CM_myrg_mycluster_centralus”。我的 SQL 服务器位于“myrg”中,CM_* 中有一个 vnet“aks-vnet-1234567”。vnet 包含一个子网“aks-subnet”。

然后我尝试添加 vnet 规则:

az sql server vnet-rule create --name my-vnet-rule --server mysql --vnet "MC_myrg_mycluster_centralus/aks-vnet" -g mygroup --subnet "aks-subnet"

并得到上面的错误。

我还尝试指定包含数字后缀的 vnet(例如 aks-vnet-1234567)但同样的错误。

这可能意味着我没有在某处使用正确的语法。有人可以澄清一下吗?

AZ CLI 2.0.21 Linux (Ubuntu)

4

1 回答 1

1

我是这样解决的:

  1. 在此之前,我需要将 sql 添加到服务端点:

    az network vnet subnet update -n aks-subnet -g myrg --vnet-name aks-vnet-xxx --service-endpoints "Microsoft.Sql"

  2. 重新编写查询以使用--subnet ID而不是--subnet NAMEand --vnet-name。使用以前的语法也应该是可行的。

Vnet-name 将类似于/subscriptions/.../resourceGroups.../aks-subnet

现在应该创建您的规则。您也可以-i在创建规则期间使用忽略服务端点,但我相信这最终会导致禁用规则。

于 2018-01-08T20:58:05.343 回答