Migrazione ai cluster VCN nativi

Scopri come eseguire la migrazione di un cluster per integrare il proprio endpoint API Kubernetes nella tua VCN, utilizzando Kubernetes Engine (OKE).

Nelle release precedenti (prima del 16 marzo 2021), Kubernetes Engine ha eseguito il provisioning dei cluster con endpoint API Kubernetes non integrati nella tua VCN. L'endpoint API Kubernetes era pubblico e non è stato possibile limitarne l'accesso. È possibile continuare a creare tali cluster utilizzando l'interfaccia CLI o l'API, ma non la console.

Dopo il 16 marzo 2021, Kubernetes Engine può eseguire il provisioning dei cluster con gli endpoint API Kubernetes in una subnet nella propria VCN (questi cluster sono noti come "cluster VCN nativi"). Hai più flessibilità per configurare i cluster VCN nativi in modo da soddisfare i tuoi requisiti di sicurezza e networking. Puoi configurare l'endpoint API Kubernetes in modo che sia accessibile in modo privato all'interno della tua VCN (e di una rete in locale in peer) o che lo renda pubblicamente accessibile da Internet:

  • Per rendere l'endpoint API Kubernetes accessibile in modalità privata, ospitare l'endpoint API Kubernetes in una subnet privata e non assegnarvi un indirizzo IP pubblico.
  • Per rendere l'endpoint API Kubernetes pubblicamente accessibile da Internet, ospitare l'endpoint API Kubernetes in una subnet pubblica e assegnarvi un indirizzo IP pubblico.

Puoi controllare l'accesso alla subnet dell'endpoint API Kubernetes utilizzando le regole di sicurezza definite per i gruppi di sicurezza di rete (consigliato) o le liste di sicurezza.

Per sfruttare il controllo di sicurezza offerto dai cluster nativi della VCN, puoi eseguire la migrazione di un cluster esistente per integrare il relativo endpoint API Kubernetes nella tua VCN.

La migrazione del cluster prevede le fasi riportate di seguito.

  • Fase 1: Migrazione in corso

    Per avviare la migrazione, selezionare il cluster di cui eseguire la migrazione, quindi specificare la VCN esistente e la subnet privata o pubblica per ospitare il nuovo endpoint API Kubernetes. La migrazione richiede solitamente circa 15 minuti.

    Durante questo periodo, l'API Kubernetes continua a essere accessibile tramite l'endpoint pubblico non integrato nella tua VCN. Tuttavia, le operazioni del ciclo di vita del cluster (ad esempio aggiornamenti del cluster, creazione ed eliminazione del pool di nodi) non sono disponibili.

  • Fase 2: migrazione completata e disattivazione in sospeso dell'endpoint API Kubernetes pubblico non integrato nella tua VCN

    Una volta completata la migrazione, il cluster diventa accessibile tramite il nuovo endpoint API Kubernetes nella tua VCN, nonché tramite l'endpoint API Kubernetes pubblico non integrato nella VCN. Durante questo periodo di disattivazione, aggiorna la configurazione delle tue pipeline kubectl, degli strumenti e CI/CD per utilizzare il nuovo endpoint API Kubernetes. Per impostazione predefinita, sono disponibili 30 giorni per completare gli aggiornamenti, ma è possibile ridurre il periodo di disattivazione a soli 5 giorni o aumentarlo a più di 30 giorni. Crea un ticket di supporto se desideri ridurre o aumentare il tempo prima che l'endpoint API Kubernetes pubblico non integrato nella tua VCN venga disattivato.

  • Fase 3: l'endpoint API Kubernetes pubblico non integrato nella tua VCN è disattivato

    Al termine del periodo di disattivazione (30 giorni dopo la migrazione o l'ora richiesta), il cluster cessa di essere accessibile tramite l'endpoint API Kubernetes pubblico non integrato nella VCN. Il cluster è accessibile solo tramite il nuovo endpoint API Kubernetes integrato nella VCN.

Migrazione di un cluster esistente come nativo VCN

Per eseguire la migrazione di un cluster esistente per integrare il proprio endpoint API Kubernetes nella propria VCN, effettuare le operazioni riportate di seguito.

  1. Aprire il menu di navigazione e selezionare Developer Services. In Container e artifact, selezionare Cluster Kubernetes (OKE).
  2. Scegliere un compartimento in cui si dispone dell'autorizzazione per lavorare.

    Le etichette Migrazione richiesta vengono visualizzate nella pagina Elenco cluster accanto ai nomi dei cluster con endpoint API Kubernetes non integrati nella VCN.

  3. Nella pagina Elenco cluster, fare clic sul nome del cluster di cui si desidera eseguire la migrazione.

    Quando si seleziona un cluster di cui è possibile eseguire la migrazione, nella parte superiore della pagina Dettagli cluster viene visualizzato il pulsante Esegui migrazione cluster.

  4. Se si desidera che l'endpoint API Kubernetes del cluster sia accessibile pubblicamente da Internet e ospitato in una nuova subnet pubblica nella stessa VCN del cluster (creazione e configurazione di nuove risorse di rete in base alle esigenze), eseguire una migrazione automatica come indicato di seguito.
    1. Nella parte superiore della pagina Dettagli cluster, fare clic su Esegui migrazione cluster per integrare l'endpoint API Kubernetes del cluster nella propria VCN.
    2. Nella finestra di dialogo Esegui migrazione a cluster nativo VCN, selezionare Migrazione automatica per creare una nuova subnet regionale nella VCN del cluster con un blocco CIDR 10.0.0.0/28, insieme a liste di sicurezza e tabelle di instradamento.
    3. Fare clic su Avvia workflow ed esaminare il riepilogo della migrazione nella finestra di dialogo Migrazione cluster endpoint VCN nativa.
    4. Fare clic su Esegui migrazione per creare nuove risorse di rete ed eseguire la migrazione del cluster.

      Il motore Kubernetes avvia la migrazione del cluster, come mostrato nella finestra di dialogo Migrazione del cluster.

    5. Fare clic su Chiudi per chiudere la finestra di dialogo Migrazione del cluster.
  5. Se desideri che l'endpoint API Kubernetes del cluster sia accessibile in modo privato all'interno della tua VCN o sia accessibile pubblicamente da Internet e ospitato in una subnet pubblica o privata regionale esistente nella stessa VCN del cluster, esegui una migrazione personalizzata come indicato di seguito.
    1. Confermare che le seguenti risorse di rete esistono già nella VCN e sono configurate in modo corretto per ospitare l'endpoint API Kubernetes (in caso contrario, crearle e configurarle in modo appropriato):

      Ad esempio, le configurazioni, vedere Esempio di configurazioni delle risorse di rete.

    2. Nella parte superiore della pagina Dettagli cluster, fare clic su Esegui migrazione cluster per integrare l'endpoint API Kubernetes del cluster nella propria VCN.
    3. Nella finestra di dialogo Esegui migrazione a cluster nativo VCN selezionare Migrazione personalizzata.
    4. Fare clic su Avvia workflow e specificare:
      • Subnet dell'endpoint API Kubernetes: una subnet regionale in cui ospitare l'endpoint API Kubernetes del cluster. La subnet specificata può essere pubblica o privata. All'endpoint API Kubernetes viene sempre assegnato un indirizzo IP privato. Se si specifica una subnet pubblica, è possibile esporre facoltativamente l'endpoint API Kubernetes a Internet assegnando un indirizzo IP pubblico all'endpoint (così come l'indirizzo IP privato). Per semplificare la gestione degli accessi, Oracle consiglia che l'endpoint API Kubernetes si trovi in una subnet diversa rispetto ai nodi di lavoro e ai load balancer. Per ulteriori informazioni, consulta il piano di controllo cluster Kubernetes e l'API Kubernetes.
      • Utilizzare i gruppi di sicurezza di rete per controllare il traffico: facoltativamente, limitare l'accesso all'endpoint API Kubernetes del cluster utilizzando uno o più gruppi di sicurezza di rete (NSG) specificati. Per ulteriori informazioni sulle regole di sicurezza da specificare per il gruppo NSG, vedere Regole di sicurezza per l'endpoint API Kubernetes.
      • Assegnare un indirizzo IP pubblico all'endpoint API: se è stata selezionata una subnet pubblica per l'endpoint API Kubernetes, è possibile esporre l'endpoint a Internet assegnando un indirizzo IP pubblico all'endpoint (così come l'indirizzo IP privato). Se non si assegna un indirizzo IP pubblico, aggiornare le regole di instradamento e di sicurezza per abilitare l'accesso all'endpoint utilizzando un gateway di servizio e un gateway NAT (vedere Configurazione della subnet dell'endpoint API Kubernetes).
    5. Fare clic su Esegui migrazione per creare nuove risorse di rete ed eseguire la migrazione del cluster.

      Il motore Kubernetes avvia la migrazione del cluster.

La migrazione di solito richiede circa 15 minuti per essere completata. Durante questo periodo, l'API Kubernetes continua a essere accessibile tramite l'endpoint pubblico non integrato nella tua VCN. Tuttavia, le operazioni del ciclo di vita del cluster (ad esempio aggiornamenti del cluster, creazione ed eliminazione del pool di nodi) non sono disponibili.

Una volta completata la migrazione, la pagina Dettagli cluster mostra il nome della subnet dell'endpoint API Kubernetes, l'indirizzo IP dell'endpoint privato API Kubernetes e, se è stato assegnato un indirizzo IP pubblico all'endpoint API Kubernetes, l'indirizzo IP dell'endpoint pubblico API Kubernetes.

La pagina Dettagli cluster indica inoltre che sono necessari 30 giorni per aggiornare la configurazione di kubectl, strumenti e pipeline CI/CD per accedere al nuovo endpoint API Kubernetes (vedere Impostazione dell'accesso a un cluster migrato). Durante questo periodo di disattivazione, il cluster appena migrato è accessibile sia tramite il nuovo endpoint API Kubernetes nella VCN che tramite l'endpoint API Kubernetes pubblico non integrato nella propria VCN.

Impostazione dell'accesso a un cluster migrato

Dopo aver eseguito la migrazione di un cluster per integrare il relativo endpoint API Kubernetes nella tua VCN, devi aggiornare la configurazione di kubectl, strumenti e pipeline CI/CD per utilizzare il nuovo endpoint API Kubernetes. Come minimo, dovrai aggiornare il file di configurazione Kubernetes del cluster (comunemente noto come file 'kubeconfig') per abilitare l'accesso al cluster migrato utilizzando kubectl, come descritto in questo argomento. È inoltre necessario aggiornare tutti i file manifest che includono riferimenti all'indirizzo IP dell'endpoint API Kubernetes del cluster.

Seguire le istruzioni riportate in questo argomento per generare un nuovo file kubeconfig. Queste istruzioni presuppongono che il file kubeconfig del cluster venga salvato nella posizione predefinita ($HOME/.kube) e con il nome predefinito (config). In caso contrario, adattare le istruzioni di conseguenza.

  1. Nella finestra del terminale in cui normalmente vengono eseguiti i comandi CLI di Oracle Cloud Infrastructure, eseguire il comando seguente per aggiornare il file kubeconfig esistente del cluster:

    oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --file <kubeconfig-file-location> --region <region-name> --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT|PUBLIC_ENDPOINT

    Dove:

    • --cluster-id <cluster-ocid> è l'OCID del cluster esistente che si desidera rendere nativo per la VCN.
    • --file <kubeconfig-file-location> è la posizione del file kubeconfig del cluster.
    • --region <region-name> è l'area in cui si trova il cluster.
    • --kube-endpoint PRIVATE_ENDPOINT|PUBLIC_ENDPOINT specifica se aggiungere l'indirizzo IP privato o l'indirizzo IP pubblico dell'endpoint API Kubernetes del cluster al file kubeconfig. Per ulteriori informazioni, consulta il piano di controllo cluster Kubernetes e l'API Kubernetes.

    Ad esempio:

    oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.phx.aaaaaaaaae... --file $HOME/.kube/config --region us-phoenix-1 --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT

    Supponendo che il file kubeconfig esista già nella posizione specificata, i dettagli sul cluster vengono aggiunti come nuovo contesto al file kubeconfig esistente, incluso il nuovo endpoint API Kubernetes del cluster nella propria VCN. L'elemento current-context: nel file kubeconfig è impostato per puntare al contesto appena aggiunto.

    Per ulteriori informazioni sull'impostazione del file kubeconfig, vedere Impostazione dell'accesso al cluster.

  2. Verificare che kubectl possa connettersi al cluster utilizzando l'endpoint API Kubernetes nella propria VCN immettendo il comando seguente:

    kubectl get nodes

    Vengono visualizzate informazioni sui nodi nel cluster.

    Ora puoi utilizzare kubectl per eseguire operazioni sul cluster utilizzando l'endpoint API Kubernetes nella tua VCN.

Nota

Fino a quando l'endpoint API originale non integrato nella VCN non viene disattivato, è possibile continuare a generare il file kubeconfig originale omettendo l'opzione --kube-endpoint dal comando oci ce cluster create-kubeconfig.

Domande frequenti sulla migrazione dei cluster

Che cosa sono i cluster VCN nativi?

Kubernetes Engine crea cluster Kubernetes completamente integrati nella rete VCN (Virtual Cloud Network) Oracle Cloud Infrastructure. I nodi di lavoro, i load balancer e l'endpoint API Kubernetes fanno parte della tua VCN ed è possibile configurarli come pubblici o privati. Tali cluster completamente integrati nella tua VCN sono noti come "cluster VCN nativi".

Come posso sapere se un cluster è già un cluster nativo della VCN?

Se non si è certi che un cluster sia già un cluster nativo della VCN, visualizzare le informazioni sul cluster, ad esempio nella pagina Dettagli cluster della console. Se il cluster è già un cluster nativo VCN, i dettagli del cluster includono informazioni sull'endpoint API Kubernetes. Se il cluster non è ancora un cluster nativo VCN, i dettagli del cluster includono semplicemente l'indirizzo Kubernetes.

È necessario eseguire la migrazione di tutti i cluster esistenti?

No, devi solo eseguire la migrazione dei cluster esistenti che desideri trasformare in cluster nativi della VCN. Se non desideri integrare l'endpoint API Kubernetes di un cluster nella tua VCN, non eseguire la migrazione di tale cluster.

La migrazione comporta tempi di inattività?

Mentre viene eseguita la migrazione di un cluster in un cluster nativo VCN, l'API Kubernetes del cluster continua a essere accessibile tramite l'endpoint pubblico non integrato nella tua VCN. Tuttavia, le operazioni del ciclo di vita del cluster (ad esempio aggiornamenti del cluster, creazione ed eliminazione del pool di nodi) non sono disponibili.

Devo scegliere la migrazione automatica o personalizzata?

La migrazione automatica crea una subnet regionale nella VCN del cluster con un blocco CIDR 10.0.0.0/28, insieme a liste di sicurezza e tabelle di instradamento. La subnet è pubblica e all'endpoint API viene assegnato un indirizzo IP pubblico. La migrazione automatica supporta solo i cluster con pool di nodi nello stesso compartimento del cluster. Per i cluster con pool di nodi in compartimenti diversi, eseguire una migrazione personalizzata.

La migrazione personalizzata consente di scegliere una subnet regionale pubblica o privata esistente per ospitare l'endpoint API Kubernetes del cluster. Se scegli una subnet regionale pubblica, puoi facoltativamente esporre l'endpoint API Kubernetes a Internet assegnando un indirizzo IP pubblico all'endpoint. Facoltativamente, è possibile scegliere di utilizzare i gruppi di sicurezza di rete.

Come faccio a configurare una subnet nella mia VCN per ospitare l'endpoint API Kubernetes?

Per i dettagli sulla configurazione della subnet dell'endpoint API Kubernetes, delle liste di sicurezza e della tabella di instradamento, vedere Configurazione delle risorse di rete per la creazione e la distribuzione del cluster.

Desidero eseguire il test della migrazione a un cluster nativo della VCN. Come posso creare un cluster con un endpoint API Kubernetes non integrato nella mia VCN?

Nella finestra del terminale in cui normalmente vengono eseguiti i comandi CLI di Oracle Cloud Infrastructure, eseguire il comando seguente per creare un cluster di test con un endpoint API Kubernetes non integrato nella VCN:

oci ce cluster create --compartment-id <compartment-ocid> --kubernetes-version v<kubernetes-version-number> --name <cluster-name> --vcn-id <vcn-ocid>

Dove:

  • --compartment-id <compartment-ocid> è l'OCID del compartimento a cui si desidera appartenere il cluster di test.
  • --kubernetes-version v<kubernetes-version-number> è una versione supportata di Kubernetes (vedere Versioni Kubernetes attualmente supportate). Ad esempio, --kubernetes-version v1.19.7
  • --name <cluster-name> è il nome scelto per il cluster di test. Ad esempio, --name test-vcn-native-migration
  • --vcn-id <vcn-ocid> è l'OCID della VCN in cui creare il cluster di test.

Dopo aver creato un cluster di test con un endpoint API Kubernetes non integrato nella VCN, è ora possibile eseguire la migrazione del cluster di test per renderlo un cluster nativo VCN. Vedere Migrazione di un cluster esistente come nativo VCN.

Ricordarsi di eliminare il cluster di test quando non è più necessario.

Come posso aumentare o ridurre il tempo necessario per la disattivazione dell'endpoint API Kubernetes pubblico non integrato nella mia VCN?

Il periodo di disattivazione è il periodo di tempo durante il quale un cluster appena migrato è accessibile sia tramite il nuovo endpoint API Kubernetes nella propria VCN che tramite l'endpoint API pubblico non integrato nella VCN. Il periodo di disattivazione garantisce l'assenza di tempi di inattività durante l'aggiornamento della configurazione di kubectl, strumenti e pipeline CI/CD per utilizzare il nuovo endpoint API Kubernetes.

Il periodo di disattivazione inizia non appena Kubernetes Engine ha eseguito la migrazione del cluster per integrare il proprio endpoint API Kubernetes nella tua VCN. Per impostazione predefinita, sono disponibili 30 giorni per completare gli aggiornamenti, ma è possibile ridurre il periodo di disattivazione a soli 5 giorni o aumentarlo a più di 30 giorni. Creare un biglietto di supporto se si desidera ridurre o aumentare il periodo di disattivazione e specificare:

  • Riepilogo: Request to modify Reclamation Extension in <region-name>
  • Area: <region-name>
  • Componente: Control Plane
  • Dettagli: includere quanto segue:
    • Tenancy: <tenancy-name>
    • Tenancy Id: <tenancy-ocid>
    • Cluster: <cluster-name>
    • Cluster Id: <cluster-ocid>
    • Requested expiration date/time: <date-and-time>