Azure:在资源组之间共享公共IP地址

问题描述

我在一个资源组(例如test-resource-group)中有一个IP地址。我希望在AKS创建的资源组(例如MC_xxxx_resource-group)中使用此IP地址。在AKS中为服务分配IP会导致错误,指出“ IP地址不在资源组MC_xxxx_resource-group中。

我想知道,在一个资源组中创建的公共地址可以与另一个资源组共享的最简单的机制是什么?

解决方法

最好的方法是导出模板并从脚本进行部署。

1。登录到Azure门户,并将鼠标悬停到IP所在的资源组。现在,在“自动化”刀片下,单击导出模板。

enter image description here

2。选择“导出”模板刀片中的“部署”。

3。单击“模板”>“编辑参数”以在在线编辑器中打开parameters.json文件。

4。要编辑公共IP名称的参数,请将parameters> value下的属性从源公共IP名称更改为目标公共IP的名称,确保名称用引号引起来:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#","contentVersion": "1.0.0.0","parameters": {
    "publicIPAddresses_myVM1pubIP_name": {
    "value": "<target-publicip-name>"
      }
     }
    }

5。在编辑器中单击“保存”。

6。单击“模板”>“编辑模板”以在在线编辑器中打开template.json文件。

7。要编辑将公共IP移到的目标区域,请更改资源下的location属性:

"resources": [
    {
    "type": "Microsoft.Network/publicIPAddresses","apiVersion": "2019-06-01","name": "[parameters('publicIPAddresses_myPubIP_name')]","location": "<target-region>","sku": {
        "name": "Basic","tier": "Regional"
    },"properties": {
        "provisioningState": "Succeeded","resourceGuid": "7549a8f1-80c2-481a-a073-018f5b0b69be","ipAddress": "52.177.6.204","publicIPAddressVersion": "IPv4","publicIPAllocationMethod": "Dynamic","idleTimeoutInMinutes": 4,"ipTags": []
       }
       }
     ]

8。在在线编辑器中单击“保存”。

9。单击BASICS>订阅以选择将在其中部署目标公共IP的订阅。设置目标资源组和位置。

  1. 选中“条款和条件”下的框,然后单击“购买”按钮以部署目标公共IP。

参考文档:https://docs.microsoft.com/en-us/azure/virtual-network/move-across-regions-publicip-portal

,

我可以通过以下解决方案解决该问题:

  1. 转到由k8s-cluster创建的资源组。
  2. 进入设置->访问控制->角色分配。
  3. 检查系统创建的贡献者角色。
  4. 转到为其创建公共IP地址的资源组(例如test-resource-group)
  5. 进入设置->访问控制->角色分配->添加角色分配
  6. 如果未列出第2点中的角色,请键入它的首字母并显示它。
  7. 为其选择角色作为NETWORKING CONTRIBUTOR。

以上述方式,您可以将在另一个资源组中创建的公共IP地址用于k8s集群。

快乐编码:)