我正在尝试使用Azure AKS,我遇到了通过Azure CLI为我的SQL服务器添加vnet规则的问题。它死了一个错误:
请求中出错。,RetryError: HTTPSConnectionPool(host ='management.azure.com',port = 443):最大 url:
超出了重试次数/ subscriptions / ...路径省略... / mysql / virtualNetworkRules / my-vnet-rule?api-version = 2015-05-01-preview (由ResponseError引起('太多500错误响应',))
这是我到目前为止所做的:
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)
答案 0 :(得分:1)
我这样解决了:
在此之前,我需要将sql添加到服务端点:
az network vnet subnet update -n aks-subnet -g myrg --vnet-name aks-vnet-xxx --service-endpoints "Microsoft.Sql"
重新设计查询以使用--subnet ID
代替--subnet NAME
和--vnet-name
。它也应该可以使用以前的语法。
Vnet-name将类似于/subscriptions/.../resourceGroups.../aks-subnet
现在应该创建您的规则。您还可以在规则创建期间使用-i
忽略服务端点,但我相信最终会使用已禁用的规则。