5.3. 配置 Azure DNS 供应商凭证
流程
创建一个新的 Azure 服务主体来管理 DNS,如下所示:
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')有关服务主体的详情,请参阅 Microsoft Azure 文档。
要授予对您要为您要使用的服务主体管理的区域的读和贡献者访问权限,请执行以下步骤:
获取用于授予服务主体访问权限的 DNS ID,如下所示:
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r提供资源组的读者访问,如下所示:
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID提供对 DNS 区的贡献访问权限,如下所示:
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
因为您要为地理和加权响应设置高级流量规则,所以还必须授予流量管理器和 DNS 区域访问权限,如下所示:
az role assignment create --role "Traffic Manager Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID az role assignment create --role "DNS Zone Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID cat <<-EOF > /local/path/to/azure.json { "tenantId": "$(az account show --query tenantId -o tsv)", "subscriptionId": "$(az account show --query id -o tsv)", "resourceGroup": "ExampleDNSResourceGroup", "aadClientId": "$DNS_SP_APP_ID", "aadClientSecret": "$DNS_SP_PASSWORD" } EOF为您的凭证创建一个
Secret资源,如下所示:kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.json在这种情况下,您必须将 secret
类型设置为azure。
其他资源