【问题标题】:Azure application gateway with AKS Kube-Proxy带有 AKS Kube-Proxy 的 Azure 应用程序网关
【发布时间】:2021-04-30 01:22:28
【问题描述】:

我有一个 AKS 集群和一些带有 Nodeport 的微服务。

User -> Application Gateway -> Backend Pool -> Nodeport of microservice -> service

但是,我想将应用程序网关与来自 AKS 节点池的虚拟机规模集一起使用。

当我在应用程序网关中添加 AKS 节点池的后端 (VMSS) 时

{
    "status": "Failed",
    "error": {
        "code": "LinkedAuthorizationFailed",
        "message": "The client has permission to perform action 'Microsoft.Compute/galleries/images/versions/read' on scope '/subscriptions/aa51d057-842e..../resourcegroups/MC_loadbalancer_aaa-aks-1_southeastasia/providers/Microsoft.Compute/virtualMachineScaleSets/aks-syspool-13675031-vmss', however the current tenant '1393b73d-faec-...' is not authorized to access linked subscription '911a5e88-712a-...'."
    }
}

但如果我创建手动 VMSS 并将其添加到应用程序网关,那就没问题了。但是当我通过 AKS 集群添加 VMSS 节点池时,就会出现上述错误。

这个错误很奇怪。好像我的租户 ID 没有订阅 911a5e88....

真的可以将应用程序网关连接到 AKS 节点池作为后端池吗?

【问题讨论】:

  • 如何通过 AKS 集群添加 VMSS 节点池?
  • 我通过 Kubernetes 服务 AKS 集群对其进行扩展。有一个名为“节点池”的菜单。它由 AKS Azure 自动创建。
  • 此“节点池”表示您可以为 AKS 添加新节点池,您如何面对此错误?另外,我对“但是如果我创建手动 VMSS 并将其添加到应用程序网关,就可以了。”感到困惑。
  • 我的意思是,当我将 AKS 集群创建的 VMSS 添加到应用程序网关的后端池中时,我得到了类似上面的错误。但是,当我自己创建虚拟 VMSS 并将其添加到应用程序网关的后端池中时,我没有收到任何错误。

标签: azure-aks azure-cloud-services azure-application-gateway


【解决方案1】:

我的情况完全一样。

修复的灵感来自这里:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-upgrade-scale-set#update-the-load-balancer-for-your-scale-set 在 azure 中,您似乎也可以反过来将 VMSS 配置为 BackendPool,该选项似乎只能从 CLI 中获得。

az vmss update --resource-group myResourceGroup --name myScaleSet --add virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].ApplicationGatewayBackendAddressPools '{"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{applicationGatewayBackendPoolName}"}'

我不知道为什么当前的回复被接受了,因为它只是提供了一种解决方法;您必须能够将 VMSS 添加到您的 AppGW 后端池。这要么是 Azure 中的错误,要么是最新升级的未记录案例。

您不应该将 IP 或 FQDN 与 VMSS 一起使用,这不是一个好习惯。

【讨论】:

  • 好建议。有用。通过使用 az vmss update,我可以将我的 vmss 指向后端池。如果使用 azure portal 进行操作,则会出错。
  • 对于任何谷歌用户来说,这应该不再是这种情况了,它应该在 UI 中工作。
【解决方案2】:

直接将节点池添加到后端池时,我也遇到了这个问题。从Ingress controller creates backend pool based on pod IP not the service IP看来可以直接将节点IP定位到应用网关的后端池。您可以选择目标类型IP address or FQDN。您的应用网关必须与您的 AKS 位于同一 VNet 中。

如需了解更多信息,如果您有兴趣在 Azure Kubernetes Service 中创建应用程序网关入口控制器,可以create them with terraform 和troubleshoot common questions or issues with Ingress Controller。

【讨论】:

  • 非常感谢南希。惊人的 !这就是我要的。在完全迁移到 Azure 之前,我的公司仍在尽可能多地提供我的团队的 POC。我认为手动添加节点工作 IP 地址不是最佳做法。我希望我可以添加节点池(VMSS)而不是 IP 地址。但是我认为仍然推荐应用程序网关。编辑:我可以使用 FQDN 而不是 ip 地址
猜你喜欢
  • 1970-01-01
  • 2018-11-09
  • 2020-06-17
  • 2022-10-17
  • 2021-05-07
  • 2017-03-29
  • 1970-01-01
  • 2022-06-16
  • 2022-08-04
相关资源
最近更新 更多