Usare un indirizzo IP privato per il routing interno per un endpoint in ingresso

È possibile usare un indirizzo IP privato per il routing interno per esporre un endpoint di ingresso all'interno di un cluster al resto di una rete virtuale.

Esistono due modi per configurare un controller per l'uso di un indirizzo IP privato per l'ingresso: l'assegnazione dell'IP privato a un particolare ingresso o l'assegnazione a livello globale.

Suggerimento

Prendere in considerazione gateway applicazione per i contenitori per la soluzione di ingresso Kubernetes.

Prerequisiti

Per completare le attività in questo articolo, è necessario app Azure lication Gateway con una configurazione IP privata.

Assegnare a un determinato ingresso

Per esporre un particolare ingresso su IP privato, usare l'annotazione appgw.ingress.kubernetes.io/use-private-ip nel traffico in ingresso:

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

Per le distribuzioni di gateway applicazione senza un indirizzo IP privato, le annotazioni in ingresso con appgw.ingress.kubernetes.io/use-private-ip: "true" vengono ignorate. L'evento in ingresso e il log del pod del controller in ingresso (AGIC) gateway applicazione indicano questo problema:

  • Ecco l'errore come indicato nell'evento in ingresso:

    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
    
  • Di seguito è riportato l'errore come indicato nei log AGIC:

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

Assegnare a livello globale

Se è necessario limitare l'esposizione di tutti i dati in ingresso tramite IP privato, usare appgw.usePrivateIP: true nella helm configurazione:

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

Questo codice rende il controller di ingresso filtrare le configurazioni degli indirizzi IP per un indirizzo IP privato quando configura i listener front-end nella distribuzione gateway applicazione. AGIC può smettere di funzionare se il valore di usePrivateIP è true e non viene assegnato alcun indirizzo IP privato.

Nota

gateway applicazione v2 richiede un indirizzo IP pubblico. Se è necessario che gateway applicazione sia privato, collegare un gruppo di sicurezza di rete alla subnet della distribuzione gateway applicazione per limitare il traffico.