Freigeben über


Verwenden der privaten IP-Adresse für das interne Routing für einen Eingangsendpunkt

Sie können eine private IP-Adresse für internes Routing verwenden, um einen Eingangsendpunkt in einem Cluster für den Rest eines virtuellen Netzwerks verfügbar zu machen.

Es gibt zwei Möglichkeiten, einen Controller für die Verwendung einer privaten IP-Adresse für Eingangsdatenverkehr zu konfigurieren: das Zuweisen der privaten IP-Adresse zu einem bestimmten Eingangsdatenverkehr oder globales Zuweisen.

Tipp

Ziehen Sie für Ihre Kubernetes-Eingangslösung das Application Gateway für Container in Betracht.

Voraussetzungen

Um die Aufgaben in diesem Artikel auszuführen, benötigen Sie Azure Application Gateway mit der Konfiguration einer privaten IP-Adresse.

Zuweisen zu einem bestimmtem Eingangsdatenverkehr

Um einen bestimmten Eingangsdatenverkehr über eine private IP-Adresse bereitzustellen, verwenden Sie die Anmerkung appgw.ingress.kubernetes.io/use-private-ip im Eingangsdatenverkehr:

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

Für Application Gateway-Bereitstellungen ohne eine private IP-Adresse wird Eingangsdatenverkehr mit appgw.ingress.kubernetes.io/use-private-ip: "true"-Anmerkung ignoriert. Das Eingangsereignis und das Pod-Protokoll des Application Gateway-Eingangsdatencontrollers (Application Gateway Ingress Controller, AGIC) deuten auf dieses Problem hin:

  • Im Folgenden finden Sie den Fehler, wie im Eingangsereignis angegeben:

    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
    
  • Im Folgenden finden Sie den Fehler, wie in den AGIC-Protokollen angegeben:

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

Globales Zuweisen

Falls Sie den gesamten Eingangsdatenverkehr einschränken müssen, der über eine private IP-Adresse bereitgestellt werden soll, verwenden Sie appgw.usePrivateIP: true in der helm-Konfiguration:

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

Mit diesem Code filtert der Eingangsdatencontroller bei der Konfiguration der Front-End-Listener für die Application Gateway-Bereitstellung die IP-Adresskonfigurationen auf eine private IP-Adresse. Der AGIC kann aufgrund dessen nicht mehr funktionieren, wenn der Wert von usePrivateIP true ist und keine private IP-Adresse zugewiesen wird.

Hinweis

Application Gateway v2 erfordert eine öffentliche IP-Adresse. Wenn Application Gateway privat sein muss, fügen Sie eine Netzwerksicherheitsgruppe an das Subnetz der Application Gateway-Bereitstellung an, um den Datenverkehr einzuschränken.