Usare Azure Front Door Premium con una rete virtuale personalizzata e Private Link

Questo articolo illustra come distribuire un ambiente Azure Container Apps in una rete virtuale personalizzata con un indirizzo IP virtuale interno (VIP) e l'accesso alla rete pubblica disabilitato. L'ambiente viene quindi esposto in modo sicuro tramite Azure Front Door Premium usando Private Link ed endpoint privati. Questa configurazione fornisce un percorso in ingresso sicuro per le app contenitore, supportando la ridondanza della zona.

Importante

Sono previsti altri addebiti per l'abilitazione degli endpoint privati nei piani Dedicati e a consumo.

Prerequisiti

  • Azure account con una sottoscrizione attiva.

  • Questa funzionalità supporta solo gli ambienti del profilo del carico di lavoro.

  • Assicurati che il provider di risorse Microsoft.Cdn sia registrato per il tuo abbonamento.

    1. Accedere al portale Azure.
    2. Passare alla pagina della sottoscrizione e selezionare Impostazioni>Provider di risorse.
    3. Selezionare Microsoft.Cdn dall'elenco dei provider.
    4. Selezionare Registrazione.

Architettura

Il tipo di ambiente dei profili di carico di lavoro supporta la combinazione di integrazione personalizzata della rete virtuale, endpoint privati e ridondanza di zona.

L'elenco seguente descrive il flusso del traffico in ingresso dall'utente all'app contenitore:

  1. Un utente si connette al punto di accesso Azure Front Door.

  2. Azure Front Door inoltra il traffico all'origine tramite Private Link.

  3. Il traffico arriva all'indirizzo IP dell'endpoint privato nella rete virtuale del carico di lavoro, ad esempio, 10.0.2.4).

  4. L'endpoint privato si connette all'ambiente interno delle app container.

  5. All'interno della rete virtuale, l'ambiente usa un indirizzo VIP del load balancer interno (ad esempio 10.0.0.165) per raggiungere il controller in ingresso.

  6. Il controller in ingresso instrada il traffico all'app contenitore, alla revisione e alla replica corretti in base alle intestazioni host e alla configurazione dell'ingresso.

Considerazioni relative alla progettazione

Quando si pianifica la distribuzione, tenere presenti le decisioni di progettazione seguenti:

Decisione Raccomandazione Ragione
Dimensioni della subnet di app containerizzate /23 Offre spazio per ridimensionare repliche e nodi.
Subnet dell'endpoint privato Subnet separata, non delegata (ad esempio, /24) Gli endpoint privati non possono condividere una subnet delegata.
SKU Porta d'ingresso Premium Obbligatorio per le origini Private Link.

Creare la rete virtuale e le subnet

Creare una rete virtuale con due subnet: una delegata all'ambiente App contenitore e una per gli endpoint privati.

  1. Cercare Reti virtuali nella barra di ricerca superiore.

  2. Selezionare Reti virtuali nei risultati della ricerca.

  3. Fare clic su Crea.

  4. Nella scheda Informazioni di base della scheda Crea rete virtuale immettere i valori seguenti.

    Impostazione Action
    Abbonamento Selezionare la sottoscrizione Azure.
    Gruppo di risorse Selezionare Crea nuovo e immettere un nome, ad esempio my-container-apps.
    Nome della rete virtuale Immettere un nome, ad esempio my-vnet.
    Area geografica Selezionare l'area di destinazione.
  5. Selezionare la scheda Indirizzi IP .

  6. Configurare lo spazio degli indirizzi , ad esempio 10.0.0.0/16.

  7. Creare due subnet con la configurazione seguente:

    Nome della sottorete Intervallo di indirizzi Delega Scopo
    container-apps-subnet Ad esempio, 10.0.0.0/23 Microsoft.App/environments Ospita l'ambiente Container Apps.
    private-endpoint-subnet Ad esempio, 10.0.2.0/24 Nessuno Supporta gli endpoint privati.
  8. Seleziona Rivedi e crea e quindi seleziona Crea.

Creare l'app e l'ambiente del contenitore

Creare un ambiente app contenitore con ingresso interno nella rete virtuale personalizzata e quindi distribuire un'app contenitore nell'ambiente.

Creare l'app contenitore

  1. Cercare App contenitore nella barra di ricerca superiore.

  2. Selezionare App contenitore nei risultati della ricerca.

  3. Fare clic su Crea.

  4. In Crea app contenitore usare la scheda Informazioni di base per immettere i valori seguenti.

    Impostazione Action
    Abbonamento Selezionare la sottoscrizione Azure.
    Gruppo di risorse Selezionare il gruppo di risorse creato, ad esempio my-container-apps.
    Nome app contenitore Immettere un nome, ad esempio my-container-app.
    Origine distribuzione Selezionare Immagine del contenitore.
    Area geografica Selezionare la stessa area della rete virtuale.
  5. In Azure Container Apps Environment, selezionare Crea nuovo ambiente.

Configurare l'ambiente

  1. Nella scheda Informazioni di base in Crea ambiente app contenitore immettere i valori seguenti.

    Impostazione Action
    Nome dell'ambiente Immettere un nome, ad esempio my-environment.
    Ridondanza della zona Selezionare Abilitato (se disponibile e obbligatorio).
  2. Selezionare la scheda Profili di carico di lavoro e aggiungere almeno un profilo di carico di lavoro, ad esempio D4. Impostare l'intervallo di conteggio delle istanze di scalabilità automatica.

  3. Selezionare la scheda Rete e immettere i valori seguenti.

    Impostazione Action
    Accesso alla rete pubblica Selezionare Disabilita: blocca tutto il traffico in ingresso dalla rete Internet pubblica.
    Usare la propria rete virtuale Selezionare Sì.
    Rete virtuale Selezionare la rete virtuale creata, ad esempio my-vnet.
    Subnet dell'infrastruttura Selezionare la subnet delegata, ad esempio container-apps-subnet.
    IP virtuale Selezionare Interno.
    Abilitare gli endpoint privati Selezionare Sì.
    Subnet dell'endpoint privato Selezionare private-endpoint-subnet.
    DNS Selezionare Azure Private DNS zona.
  4. Selezionare Crea per creare l'ambiente.

Configurare e distribuire l'app contenitore

  1. In Crea app contenitore selezionare la scheda Contenitore .

  2. Selezionare Usa immagine di avvio rapido per il test o deselezionare la casella di controllo e fornire un'immagine del contenitore personalizzata.

    Annotazioni

    L'immagine di avvio rapido abilita automaticamente l'ingresso. Se non si utilizza l'immagine di avvio rapido, assicurarsi di abilitare l'ingresso in modo che l'applicazione container possa ricevere traffico da Azure Front Door attraverso l'endpoint privato.

  3. Seleziona Rivedi e crea e quindi seleziona Crea.

Verificare la distribuzione dell'ambiente

Prima di creare il profilo di Azure Front Door, verificare che l'ambiente sia configurato correttamente.

  1. Passare al gruppo di risorse creato e aprire la risorsa ambiente App di contenitori.

  2. Selezionare Rete.

  3. Controllare le impostazioni seguenti:

    Impostazione Valore previsto
    Accesso alla rete pubblica Disattivato
    IP virtuale Interno (si noti l'indirizzo IP)
    Connessioni a endpoint privato Esiste almeno una connessione e viene approvata

Creare il profilo Azure Front Door Premium

Creare un profilo Premium di Frontdoor di Azure per instradare il traffico in ingresso all'app contenitore interna sul collegamento privato.

  1. Cercare i profili Frontdoor e della rete CDN nella barra di ricerca superiore.

  2. Selezionare Frontdoor e profili di rete CDN nei risultati della ricerca.

  3. Fare clic su Crea.

  4. Selezionare Azure Front Door e Quick Create.

  5. Selezionare il pulsante Continua a creare un Front Door.

  6. Nella scheda Informazioni di base della scheda Crea un profilo frontdoor immettere i valori seguenti.

    Impostazione Action
    Gruppo di risorse Selezionare il gruppo di risorse creato, ad esempio my-container-apps.
    Nome Immettere un nome di profilo, ad esempio my-afd-profile.
    Livello Selezionare Premium. Il collegamento privato non è supportato per le origini nel livello Standard.
    Nome del punto finale Immettere un nome endpoint, ad esempio my-afd-endpoint.
    Tipo di origine Selezionare App contenitore.
    Nome host di origine Seleziona l'ambiente dell'app container.
    Abilitare il servizio collegamento privato Abilitare questa impostazione.
    Area geografica Seleziona la regione della tua app contenitore.
    Risorsa secondaria di destinazione Selezionare managedEnvironments.
    Messaggio di richiesta Immettere un messaggio, ad esempio AFD Private Link Request).
  7. Seleziona Rivedi e crea e quindi seleziona Crea.

  8. Al termine della distribuzione, selezionare Vai alla risorsa e individuare il nome host dell'endpoint. Il nome host è simile all'esempio seguente. Prendere nota di questo nome host.

    my-afd-endpoint.<HASH>.b01.azurefd.net
    

Approvare la connessione all'endpoint privato

Dopo aver distribuito Azure Front Door, approva la richiesta di connessione dell'endpoint privato in ingresso dall'ambiente Container Apps.

  1. Passare alla risorsa Container Apps nel portale di Azure.

  2. Selezionare Impostazioni>Networking.

  3. Selezionare il collegamento per le richieste di connessione di endpoint privato.

  4. Selezionare la connessione in sospeso con la descrizione fornita (ad esempio, Richiesta di collegamento privato AFD).

  5. Selezionare Approva.

  6. Attendere che lo stato cambi in Approvato.

Annotazioni

Azure Front Door presenta un problema noto in cui potrebbe creare più richieste di connessione all'endpoint privato. Approvare ogni richiesta con la descrizione corrispondente.

Convalida la connessione

Dopo aver approvato la connessione all'endpoint privato, assicurarsi che il traffico raggiunga l'app contenitore tramite Frontdoor di Azure.

  1. Andare al nome host dell'endpoint di Frontdoor di Azure registrato in precedenza.

  2. Verificare che l'applicazione venga caricata correttamente.

  3. Verificare che l'accesso diretto al dominio predefinito dell'app contenitore non riesca, perché l'accesso pubblico è disabilitato.

  4. Verificare che la risoluzione DNS per il dominio dell'ambiente si risolva nell'indirizzo IP privato all'interno della rete virtuale.

Annotazioni

La propagazione della distribuzione globale potrebbe richiedere alcuni minuti. Se l'output previsto non viene visualizzato, attendere alcuni minuti e quindi aggiornare.

Risolvere i problemi comuni

La tabella seguente descrive i problemi comuni e le relative soluzioni:

Problema Resolution
Errori di convalida della subnet Assicurarsi che la subnet delle app contenitore sia delegata a Microsoft.App/environments e soddisfi i requisiti minimi di dimensione.
Errore di creazione dell'endpoint privato Verificare che l'endpoint privato si trova in una subnet separata e non delegata.
L'origine Frontdoor restituisce un errore Verificare che la connessione all'endpoint privato sia approvata nell'ambiente App per contenitori. La connessione potrebbe richiedere alcuni minuti.
L'app contenitore è accessibile pubblicamente Verificare che l'accesso alla rete pubblica sia impostato su Disabilitato nelle impostazioni di rete dell'ambiente App contenitore.

Pulire le risorse

Se non si prevede di continuare a usare questa applicazione, è possibile eliminare l'app contenitore e tutti i servizi associati rimuovendo il gruppo di risorse.

  1. Selezionare il gruppo di risorse nella sezione Panoramica.

  2. Selezionare il pulsante Elimina gruppo di risorse nella parte superiore della pagina di Panoramica del gruppo di risorse.

  3. Immettere il nome del gruppo di risorse nella finestra di dialogo di conferma.

  4. Seleziona Elimina.

    Il processo di eliminazione del gruppo di risorse può richiedere alcuni minuti.

Suggerimento

Problemi? Fatecelo sapere su GitHub aprendo un issue nel repository Azure Container Apps.