Creazione di un pool di nodi di lavoro OKE

Informazioni su come creare pool di nodi di lavoro OKE in Compute Cloud@Customer per un cluster di carichi di lavoro.

I nodi sono istanze di computazione Cloud@Customer. Quando si crea un pool di nodi di lavoro, è necessario specificare il numero di nodi da creare e altri parametri che definiscono le istanze.

Nota

Impossibile personalizzare gli script OKE cloud-init.

Per configurare le impostazioni proxy, utilizzare l'interfaccia CLI o l'API per impostare il proxy nei metadati del nodo. Se il cluster utilizza la rete pod VCN nativa, aggiungere 169.254.169.254 all'impostazione noproxy.

    1. Nel dashboard Console di Compute Cloud@Customer selezionare Container/Visualizza cluster Kubernetes (OKE).

      Se il cluster a cui si desidera collegare un pool di nodi non è elencato, selezionare un compartimento diverso dal menu del compartimento nella parte superiore della pagina.

    2. Selezionare il nome del cluster a cui si desidera aggiungere un pool di nodi.

    3. Nella pagina dei dettagli del cluster, in Risorse, selezionare Pool di nodi.

    4. Nell'elenco Pool di nodi selezionare Aggiungi pool di nodi.

    5. Nella finestra di dialogo Aggiungi pool di nodi, fornire le informazioni riportate di seguito.

      • Nome: il nome del nuovo pool di nodi. Evitare di fornire informazioni riservate.

      • Compartimento: compartimento in cui creare il nuovo pool di nodi.

      • Opzioni pool di nodi: nel campo Conteggio nodi immettere il numero di nodi desiderato in questo pool di nodi. L'impostazione predefinita è 0. Il numero massimo è 128 per cluster, che può essere distribuito su più pool di nodi.

      • Gruppo di sicurezza di rete: se si seleziona la casella per abilitare i gruppi di sicurezza di rete, selezionare Aggiungi gruppo di sicurezza di rete e selezionare un gruppo di sicurezza di rete dall'elenco a discesa. Potrebbe essere necessario modificare il compartimento per trovare il gruppo NSG desiderato. La VNIC primaria della subnet del worker verrà collegata a questo gruppo di sicurezza di rete.

      • Configurazione posizionamento

      • Immagine di origine: selezionare un'immagine.

        1. Selezionare Tipo di origine immagine piattaforma.

        2. Selezionare un'immagine dalla lista.

          La lista di immagini contiene le colonne Sistema operativo, Versione del sistema operativo e Versione Kubernetes. È possibile utilizzare la freccia del menu a discesa a destra della versione del sistema operativo o della versione Kubernetes per selezionare una versione diversa.

          Se l'immagine che si desidera utilizzare non è elencata, utilizzare la procedura CLI e specificare l'OCID dell'immagine. Per ottenere l'OCID dell'immagine desiderata, utilizzare il comando ce node-pool get per un pool di nodi in cui è stata utilizzata questa immagine in precedenza.

          Nota

          L'immagine specificata non deve avere una versione di Kubernetes più recente della versione di Kubernetes specificata al momento della creazione del cluster. La versione Kubernetes per il cluster si trova in una colonna della tabella della lista di cluster.

      • Forma: selezionare una forma per i nodi di lavoro. La forma è VM.PCAStandard.E5. Flex e non puoi cambiarlo.

        Specificare il numero di OCPU che si desidera. Facoltativamente, è possibile specificare la quantità totale di memoria desiderata. Il valore predefinito per gigabyte di memoria è 16 volte il numero specificato per le OCPU. Selezionare all'interno di ciascun campo valore per visualizzare i valori minimo e massimo consentiti.

      • Volume di avvio: (Opzionale) Selezionare la casella per specificare una dimensione del volume di avvio personalizzata.

        Dimensione del volume di avvio (GB): viene visualizzata la dimensione predefinita del volume di avvio per l'immagine selezionata. Per specificare una dimensione maggiore, immettere un valore compreso tra 50 e 16384 in gigabyte (da 50 GB a 16 TB) oppure utilizzare le frecce di incremento e decremento.

        Se si specifica una dimensione personalizzata del volume di avvio, è necessario estendere la partizione per sfruttare la dimensione maggiore. Le immagini della piattaforma Oracle Linux includono il pacchetto oci-utils. Utilizzare il comando oci-growfs di tale pacchetto per estendere la partizione root e quindi aumentare il file system. Vedere oci-growfs.

      • Comunicazione pod (solo cluster di rete pod nativi per VCN)

        Subnet di comunicazione pod: selezionare una subnet con configurazione simile a quella della subnet "pod" descritta in Creazione di una subnet pod (VCN-Native Pod).

        Numero di pod per nodo: il numero massimo di pod che si desidera eseguire su un singolo nodo di lavoro in un pool di nodi. Il valore predefinito per il server di amministrazione è 31. È possibile immettere un numero compreso tra 1 e 110. Il numero di VNIC consentite dalla forma specificata (vedere "Forma" sopra) limita questo numero massimo di pod. Vedere Forme nodo e numero di pod. Per conservare lo spazio di indirizzi della subnet pod, ridurre il numero massimo di pod che si desidera eseguire su un singolo nodo di lavoro. Ciò riduce il numero di indirizzi IP preallocati nella subnet del pod.

        Se si seleziona la casella Usa regole di sicurezza nel gruppo di sicurezza di rete (NSG), selezionare il pulsante Aggiungi gruppo di sicurezza di rete e selezionare un gruppo NSG dall'elenco a discesa. Potrebbe essere necessario modificare il compartimento per trovare il gruppo NSG desiderato. Le VNIC secondarie della subnet pod verranno collegate a questo gruppo NSG.

      • Cordon e drenaggio: (facoltativo) utilizzare le frecce per ridurre o aumentare il numero di minuti di durata della tolleranza di rimozione. Impossibile deselezionare "Forza interruzione dopo periodo di tolleranza". I nodi vengono eliminati dopo che i loro pod sono stati sfrattati o alla fine della durata di tolleranza dello sfratto, anche se non tutti i pod vengono sfrattati.

        Per una descrizione della durata della proroga del cordone e dello scarico e della rimozione, selezionare la scheda CLI in questa pagina e vedere Impostazioni di eliminazione del pool di nodi e nodi.

      • Chiave SSH: la chiave SSH pubblica per i nodi di lavoro. Caricare il file della chiave pubblica oppure copiare e incollare il contenuto del file.

      • Etichette Kubernetes: selezionare il pulsante Aggiungi etichetta Kubernetes e immettere un nome e un valore di chiave. È possibile utilizzare queste etichette per indirizzare i pod per la pianificazione su nodi o gruppi di nodi specifici. Vedere la descrizione e l'esempio nella procedura CLI.

      • Tag pool di nodi: tag definite o in formato libero per la risorsa Pool di nodi.

        Nota

        Non specificare valori per la tag definita OraclePCA-OKE.cluster_id o per la tag in formato libero ClusterResourceIdentifier. Questi valori di tag vengono generati dal sistema e applicati solo ai nodi (istanze), non alla risorsa del pool di nodi.

      • Tag nodo: tag definite o in formato libero applicate a ogni nodo del pool di nodi.

        Importante

        Non specificare valori per la tag definita OraclePCA-OKE.cluster_id o per la tag in formato libero ClusterResourceIdentifier. Questi valori tag vengono generati dal sistema.

    6. Selezionare Aggiungi pool di nodi.

      Viene visualizzata la pagina dei dettagli per il pool di nodi. In Risorse, selezionare Richieste di lavoro per visualizzare l'avanzamento della creazione del pool di nodi e vedere i nodi aggiunti alla lista Nodi. Lo stato della richiesta di lavoro viene Accettato finché il cluster non è in stato Attivo o Non riuscito.

      Per identificare questi nodi in una lista di istanze, tenere presente che i nomi di questi nodi sono nel formato oke-ID, dove ID è il primo 32 caratteri dopo pca_name nell'OCID del pool di nodi. Cercare le istanze nella lista i cui nomi contengono la stringa ID da questo OCID pool di nodi.

      Per identificare questi nodi in una lista di istanze, tenere presente che i nomi di questi nodi contengono i primi 32 caratteri dopo ccc_name dell'OCID del pool di nodi e contengono l'OCID del cluster nella tag OraclePCA-OKE/cluster_id.

    Operazioni successive:

    1. Configurare i registri o i repository necessari per i nodi di lavoro. Assicurarsi di avere accesso a un registro container pubblico o intranet autogestito da utilizzare con il servizio OKE e le immagini delle applicazioni.

    2. Crea un servizio per esporre le applicazioni containerizzate all'esterno di Compute Cloud@Customer. Vedere Esposizione di applicazioni containerizzate.

    3. Crea storage persistente per le applicazioni da utilizzare. Vedere Aggiunta di storage per le applicazioni containerizzate.

    Per modificare le proprietà dei nodi esistenti, è possibile creare un nuovo pool di nodi con le nuove impostazioni e spostare il lavoro nei nuovi nodi.

  • Utilizzare il comando oci ce node-pool create e i parametri necessari per creare un nuovo pool di nodi.

    oci ce node-pool create --cluster-id <cluster_OCID> --compartment-id <compartment_OCID> --name <pool_name> --node-shape <node_shape_name> [OPTIONS]
    1. Ottenere le informazioni necessarie per eseguire il comando.

      • OCID del compartimento in cui si desidera creare il pool di nodi: oci iam compartment list

      • OCID del cluster per questo pool di nodi: oci ce cluster list

      • Nome del pool di nodi. Evitare di fornire informazioni riservate.

      • Configurazione del posizionamento per i nodi, inclusi l'OCID della subnet di lavoro e il dominio di errore. Vedere la descrizione "Configurazione posizionamento" nella procedura Console. Utilizzare il comando seguente per visualizzare il contenuto e il formato di questa opzione:

        $ oci ce node-pool create --generate-param-json-input placement-configs

        Utilizzare il comando riportato di seguito per elencare i domini di errore: oci iam fault-domain list. Non specificare più domini di errore o più subnet nella configurazione del posizionamento. Per consentire al sistema di selezionare i domini di errore migliori, non specificare alcun dominio di errore.

      • (Solo cluster di pod networking VCN nativi) L'OCID della subnet pod. Vedere Creazione di una subnet pod (pod nativo VCN). Vedere anche la descrizione in Comunicazione pod nella procedura della console precedente. Utilizzare l'opzione --pod-subnet-ids. Sebbene il valore dell'opzione --pod-subnet-ids sia un array, è possibile specificare un solo OCID subnet pod.

        Il numero massimo di pod che si desidera eseguire su un singolo nodo di lavoro in un pool di nodi. Utilizzare l'opzione --max-pods-per-node. Il valore predefinito per il server di amministrazione è 31. È possibile immettere un numero compreso tra 1 e 110. Il numero di VNIC consentite dalla forma specificata (vedere "Il nome della forma" di seguito) limita questo numero massimo di pod. Vedere Forme nodo e numero di pod. Per conservare lo spazio di indirizzi della subnet pod, ridurre il numero massimo di pod che si desidera eseguire su un singolo nodo di lavoro. Ciò riduce il numero di indirizzi IP preallocati nella subnet del pod.

        (Facoltativo) L'OCID del gruppo di sicurezza di rete da utilizzare per i pod in questo pool di nodi. Utilizzare l'opzione --pod-nsg-ids. È possibile specificare fino a cinque gruppi NSG.

      • OCID dell'immagine da utilizzare per i nodi in questo pool di nodi.

        Utilizzare il seguente comando per ottenere l'OCID dell'immagine che si desidera utilizzare:

        $ oci compute image list --compartment-id compartment_OCID
                             

        Se l'immagine che si desidera utilizzare non è elencata, è possibile ottenere l'OCID dell'immagine dall'output del comando ce node-pool get per un pool di nodi in cui l'immagine è stata utilizzata in precedenza.

        Nota

        L'immagine specificata deve avere -OKE- nel relativo display-name e non deve avere una versione di Kubernetes più recente della versione di Kubernetes specificata al momento della creazione del cluster.

        La versione Kubernetes per il cluster viene visualizzata nell'output cluster list. La versione di Kubernetes per l'immagine viene visualizzata nella proprietà display-name nell'output image list. La versione Kubernetes dell'immagine seguente è la 1.29.9.

        "display-name": "uln-pca-Oracle-Linux8-OKE-1.29.9-20250325.oci"

        Non specificare l'opzione --kubernetes-version nel comando node-pool create.

        È possibile specificare una dimensione del volume di avvio personalizzata in gigabyte. La dimensione predefinita del volume di avvio è 50 GB. Per specificare una dimensione del volume di avvio personalizzata, utilizzare l'opzione --node-source-details per specificare sia la dimensione del volume di avvio che l'immagine. Non è possibile specificare sia --node-image-id che --node-source-details. Utilizzare il comando seguente per visualizzare il contenuto e il formato dell'opzione Dettagli origine nodo.

        $ oci ce node-pool create --generate-param-json-input node-source-details

        Se si specifica una dimensione personalizzata del volume di avvio, è necessario estendere la partizione per sfruttare la dimensione maggiore. Le immagini della piattaforma Oracle Linux includono il pacchetto oci-utils. Utilizzare il comando oci-growfs di tale pacchetto per estendere la partizione root e quindi aumentare il file system. Vedere oci-growfs.

      • Nome della forma dei nodi di lavoro in questo pool di nodi. Per i sistemi X10 di Compute Cloud@Customer, la forma dei nodi del piano di controllo è VM.PCAStandard.E5. Flessibile.

        Specificare la configurazione della forma, come illustrato nell'esempio riportato di seguito. Specificare un valore per ocpus. La proprietà memoryInGBs è facoltativa; il valore predefinito in gigabyte è 16 volte il numero di ocpus.

        --node-shape-config '{"ocpus": 32, "memoryInGBs": 512}'
        Nota

        Alloca almeno 2 OCPU e 32 GB di memoria per ogni 10 pod in esecuzione. Potrebbe essere necessario allocare più risorse, a seconda dei carichi di lavoro pianificati. Vedere Resource Management per pod e container.

      • (Facoltativo) L'OCID del gruppo di sicurezza di rete da utilizzare per i nodi in questo pool di nodi. Utilizzare l'opzione --nsg-ids. Non specificare più di un gruppo NSG.

      • (Facoltativo) Etichette. L'impostazione delle etichette sui nodi consente di indirizzare i pod per la pianificazione su nodi o gruppi di nodi specifici. Utilizzare questa funzionalità per garantire che pod specifici vengano eseguiti solo su nodi con determinate proprietà di isolamento, sicurezza o normativa.

        Utilizzare l'opzione --initial-node-labels per aggiungere etichette ai nodi. Le etichette sono una lista di coppie chiave/valore da aggiungere ai nodi dopo che si sono unite al cluster Kubernetes. Esistono limitazioni per la chiave dei metadati. Vedere Limitazioni della chiave dei metadati.

        Di seguito è riportata un'etichetta di esempio da applicare ai nodi nel pool di nodi.

        --initial-node-labels '[{"key":"disktype","value":"ssd"}]

        Un modo semplice per selezionare i nodi in base alle loro etichette è utilizzare nodeSelector nella configurazione del pod. Kubernetes pianifica il pod solo sui nodi che dispongono di ciascuna delle etichette specificate nella sezione nodeSelector.

        Il seguente estratto di esempio da una configurazione pod specifica che i pod che utilizzano questa configurazione devono essere eseguiti su nodi con l'etichetta del tipo di disco ssd:

        nodeSelector:
          disktype: ssd
      • (Facoltativo) I metadati del nodo. Utilizzare l'opzione --node-metadata per collegare i dati utente personalizzati ai nodi. Per un esempio specifico, vedere la seguente voce relativa alle impostazioni proxy.

        Vedere Limitazioni chiave dei metadati. La dimensione massima dei metadati del nodo è di 32.000 byte.

      • (Facoltativo) Impostazioni proxy. Se la rete richiede impostazioni proxy per consentire ai nodi di lavoro di raggiungere registri o repository esterni, ad esempio, creare un argomento per l'opzione --node-metadata.

        Nell'argomento dell'opzione --node-metadata, fornire i valori per crio-proxy e crio-noproxy come mostrato nel seguente argomento del file di esempio:

        {
          "crio-proxy": "http://<your_proxy>.<your_domain_name>:<your_port>",
          "crio-noproxy": "localhost,127.0.0.1,<your_domain_name>,ocir.io,<Kubernetes_cidr>,<pods_cidr>"
        }

        Se il cluster utilizza la rete pod VCN nativa, aggiungere 169.254.169.254 all'impostazione noproxy, come nell'esempio riportato di seguito.

        "crio-noproxy": "localhost,127.0.0.1,your_domain_name,ocir.io,Kubernetes_cidr,pods_cidr,169.254.169.254"
      • (Facoltativo) Impostazioni di eliminazione di nodi e pool di nodi. È possibile specificare la modalità di gestione dell'eliminazione dei nodi quando si elimina un pool di nodi, si elimina un nodo specificato, si riduce la dimensione del pool di nodi o si modifica la configurazione del posizionamento dei nodi del pool di nodi. Questi parametri di eliminazione dei nodi possono anche essere impostati o modificati quando si aggiorna il pool di nodi, si elimina un nodo specificato o si elimina il pool di nodi.

        Per specificare le impostazioni di eliminazione del pool di nodi, creare un argomento per l'opzione --node-eviction-node-pool-settings. È possibile specificare la durata della tolleranza di rimozione (evictionGraceDuration) per i nodi. I nodi vengono sempre eliminati dopo che i loro pod sono stati sfrattati o alla fine della durata di tolleranza dello sfratto.

        • Durata tolleranza rimozione. Questo valore specifica il periodo di tempo che consente di collegare e svuotare i nodi di lavoro.

          Un nodo collegato non può avere nuovi pod posizionati su di esso. I pod esistenti su quel nodo non sono interessati.

          Quando un nodo viene svuotato, i contenitori di ogni pod terminano in modo normale ed eseguono qualsiasi pulizia necessaria.

          Il valore della durata della tolleranza di rimozione è espresso in formato ISO 8601. Il valore predefinito e il valore massimo sono 60 minuti (PT60M). Il valore minimo è 20 secondi (PT20S). OKE cerca sempre di rimuovere i nodi per almeno 20 secondi.

        • Forza eliminazione. I nodi vengono sempre eliminati dopo che i loro pod sono stati sfrattati o alla fine della durata di tolleranza dello sfratto. Dopo la durata di tolleranza di rimozione predefinita o specificata, il nodo viene eliminato, anche se uno o più contenitori pod non vengono completamente svuotati.

        L'argomento seguente mostra un esempio dell'opzione --node-eviction-node-pool-settings. Se si include la proprietà isForceDeleteAfterGraceDuration, il suo valore deve essere true. I nodi vengono sempre eliminati dopo che i loro pod sono stati sfrattati o alla fine della durata di tolleranza dello sfratto.

        --node-eviction-node-pool-settings '{"evictionGraceDuration": "PT30M", "isForceDeleteAfterGraceDuration": true}'
        Nota

        Se si utilizza Terraform e si specifica node_eviction_node_pool_settings, è necessario impostare in modo esplicito is_force_delete_after_grace_duration su true, anche se true è il valore predefinito. L'impostazione della proprietà is_force_delete_after_grace_duration non è facoltativa se si utilizza Terraform.

      • (Facoltativo) Tag. Aggiungere tag in formato libero per la risorsa pool di nodi utilizzando le opzioni --defined-tags o --freeform-tags. Non specificare valori per la tag definita OraclePCA-OKE.cluster_id o per la tag in formato libero ClusterResourceIdentifier. Questi valori di tag vengono generati dal sistema e applicati solo ai nodi (istanze), non alla risorsa del pool di nodi.

        Per aggiungere tag in formato libero a tutti i nodi del pool di nodi, utilizzare le opzioni --node-defined-tags e --node-freeform-tags.

        Importante

        Non specificare valori per la tag definita OraclePCA-OKE.cluster_id o per la tag in formato libero ClusterResourceIdentifier. Questi valori tag vengono generati dal sistema.

    2. Eseguire il comando di creazione del pool di nodi.

      Ad esempio:

      Vedere la procedura Uso della console per informazioni sulle opzioni mostrate in questo esempio e su altre opzioni quali --node-boot-volume-size-in-gbs e nsg-ids. L'opzione --pod-subnet-ids è applicabile solo se il cluster utilizza la rete pod VCN nativa

      $ oci ce node-pool create \
      --cluster-id ocid1.cluster.unique_ID --compartment-id ocid1.compartment.unique_ID \
      --name node_pool_name --node-shape shape_name --node-image-id ocid1.image.unique_ID \
      --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"ocid1.subnet.unique_ID"}]' \
      --pod-subnet-ids '["ocid1.subnet.unique_ID"]' --size 10 --ssh-public-key "public_key_text"

      Utilizzare il comando work-request get per controllare lo stato dell'operazione di creazione del pool di nodi. L'OCID della richiesta di lavoro si trova in created-by-work-request-id nella sezione metadata dell'output cluster get.

      $ oci ce work-request get --work-request-id workrequest_OCID
                     

      Lo stato della richiesta di lavoro sarà ACCEPTED finché il cluster non sarà in stato Attivo o Non riuscito.

      Per identificare questi nodi in una lista di istanze, tenere presente che i nomi di questi nodi sono nel formato oke- ID , dove ID è il primo carattere di 32 dopo il nome nell'OCID del pool di nodi. Cercare le istanze nella lista i cui nomi contengono la stringa ID da questo OCID pool di nodi.

    Per un elenco completo dei comandi, dei flag e delle opzioni dell'interfaccia CLI, vedere Command Line Reference.

    Operazioni successive:

    1. Configurare i registri o i repository necessari per i nodi di lavoro. Assicurarsi di avere accesso a un registro container pubblico o intranet autogestito da utilizzare con il servizio OKE e le immagini delle applicazioni.

    2. Crea un servizio per esporre le applicazioni containerizzate all'esterno di Compute Cloud@Customer. Vedere Esposizione di applicazioni containerizzate.

    3. Crea storage persistente per le applicazioni da utilizzare. Vedere Aggiunta di storage per le applicazioni containerizzate.

    Per modificare le proprietà dei nodi esistenti, è possibile creare un nuovo pool di nodi con le nuove impostazioni e spostare il lavoro nei nuovi nodi.

  • Utilizzare l'operazione CreateNodePool per creare un nuovo pool di nodi.

    Per informazioni sull'uso dell'API e delle richieste di firma, vedere API REST e Credenziali di sicurezza. Per informazioni sugli SDK, vedere Software Development Kits and Command Line Interface.

    1. Configurare i registri o i repository necessari per i nodi di lavoro. Assicurarsi di avere accesso a un registro container pubblico o intranet autogestito da utilizzare con il servizio OKE e le immagini delle applicazioni.

    2. Crea un servizio per esporre le applicazioni containerizzate all'esterno di Compute Cloud@Customer. Vedere Esposizione di applicazioni containerizzate.

    3. Crea storage persistente per le applicazioni da utilizzare. Vedere Aggiunta di storage per le applicazioni containerizzate.

    Per modificare le proprietà dei nodi esistenti, è possibile creare un nuovo pool di nodi con le nuove impostazioni e spostare il lavoro nei nuovi nodi.