你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用入口终结点的专用 IP 进行内部路由

可以使用专用 IP 地址进行内部路由,以便将群集中的入口终结点公开给虚拟网络的其余部分。

可以通过两种方法来配置控制器,以使用专用 IP 作为入口:将专用 IP 分配给特定入口或对其进行全局分配。

提示

考虑将适用于容器的应用程序网关用作 Kubernetes 入口解决方案。

先决条件

若要完成本文中的任务,你需要具有专用 IP 配置的 Azure 应用程序网关。

分配到特定入口

若要通过专用 IP 公开特定入口,请在入口中使用注释 appgw.ingress.kubernetes.io/use-private-ip

YAML
appgw.ingress.kubernetes.io/use-private-ip: "true"

对于没有专用 IP 的应用程序网关部署,会忽略使用 appgw.ingress.kubernetes.io/use-private-ip: "true" 进行注释的入口。 入口事件和应用程序网关入口控制器 (AGIC) Pod 日志指示了此问题:

  • 以下是入口事件中指示的错误:

    输出
    Events:
    Type     Reason       Age               From                                                                     Message
    ----     ------       ----              ----                                                                     -------
    Warning  NoPrivateIP  2m (x17 over 2m)  azure/application-gateway, prod-ingress-azure-5c9b6fcd4-bctcb  Ingress default/hello-world-ingress requires Application Gateway
    applicationgateway3026 has a private IP address
    
  • 以下是 AGIC 日志中指示的错误:

    输出
    E0730 18:57:37.914749       1 prune.go:65] Ingress default/hello-world-ingress requires Application Gateway applicationgateway3026 has a private IP address
    

全局分配

如果需要限制所有入口通过专用 IP 进行公开,请在 helm 配置中使用 appgw.usePrivateIP: true

YAML
appgw:
    subscriptionId: <subscriptionId>
    resourceGroup: <resourceGroupName>
    name: <applicationGatewayName>
    usePrivateIP: true

在应用程序网关部署上配置前端侦听器时,此代码会使得入口控制器筛选专用 IP 的 IP 地址配置。 如果 usePrivateIP 的值为 true,且未分配专用 IP,则 AGIC 可能会停止工作。

备注

应用程序网关 v2 要求公共 IP。 如果要求应用程序网关为专用网关,请将网络安全组附加到应用程序网关部署的子网来限制流量。