Preparazione dei cluster Satellite per il ridimensionamento automatico

Satellite

Prima di poter utilizzare il componente aggiuntivo del cluster autoscaler nel cluster Satellite, è necessario completare i seguenti passaggi.

L'autoscaling sui cluster Satellite è disponibile in Beta solo per gli account autorizzati. È possibile essere aggiunti alla allowlist aprendo un caso con supporto.

L'attivazione dell'autoscaler su un account non elencato comporta un errore The 'cluster-autoscaler' add-on is not supported on satellite clusters. È possibile essere aggiunti alla allowlist aprendo un caso con supporto.

Comprensione del ridimensionamento automatico nei cluster Satellite

Come funziona l'ampliamento per i cluster Satellite ?
Il cluster autoscaler controlla periodicamente la presenza di pod bloccati nello stato in sospeso a causa della mancanza di memoria o di risorse CPU.
  1. L'autoscaler controlla se lo scaling è abilitato su uno qualsiasi dei pool di lavoratori del cluster. Se lo scaling è abilitato, l'autoscaler calcola il numero necessario di nodi worker per ospitare tutti i pod bloccati in stato di attesa. Se nessun pool di worker è abilitato all'autoscaling, non viene eseguita alcuna azione.
  2. L'autoscaler confronta il numero di nodi worker richiesto, calcolato nel passaggio precedente, con il numero MaxSize o il numero totale di nodi worker consentito per lo scaling. Se il MaxSize consentito è inferiore o uguale al conteggio del nodo di lavoro richiesto per soddisfare tutti i pod, l'autoscaler invia una richiesta di ridimensionamento al gruppo di istanze.
  3. L'autoscaler recupera gli host che sono Ready o Unassigned nell'ubicazione e che hanno etichette host che corrispondono alle etichette sui nodi di lavoro nel pool di nodi di lavoro in cui è abilitato il ridimensionamento automatico.
  4. Il programma di scalabilità automatica determina se ci sono abbastanza host Ready o Unassigned disponibili per soddisfare la richiesta di ridimensionamento.
    • Se non ci sono abbastanza host disponibili nella posizione, nei registri viene aggiunto un avviso che segnala che l'operazione di ridimensionamento è stata incompleta.
    • Se ci sono host disponibili che sono Ready o Unassigned e hanno le etichette host corrispondenti, l'autoscaler utilizza tali host per soddisfare la richiesta.
    • Se non sono disponibili host con le etichette host corrispondenti, l'autoscaler filtra gli host Ready o Unassigned per quelli con solo le etichette host predefinite. Quindi, il ridimensionamento automatico aggiorna le etichette su tali host in modo che corrispondano alle etichette host del pool di nodi di lavoro in cui è abilitato il ridimensionamento e utilizza tali host per soddisfare la richiesta.
Come funziona la riduzione in cluster Satellite ?
Quando l'autoscaler del cluster determina che un nodo worker è sottoutilizzato per il tempo specificato scaleDownUnneededTime, i worker vengono eliminati dal cluster. Gli host utilizzati per i nodi worker si trovano quindi nello stato Reload Required o Unassigned nella posizione. Questi host non possono essere utilizzati da nessun altro cluster finché non vengono ricaricati e riattaccati alla posizione. Nota che tutti i nodi di lavoro nel pool di nodi di lavoro devono essere dello stesso tipo.
Cosa succede se la mia ubicazione non ha host disponibili per il ridimensionamento incrementale?
Se non ci sono host sufficienti per il ridimensionamento incrementale, il carico di lavoro non è completamente distribuito. Ma, dopo che altri host sono stati aggiunti all'ubicazione, l'operazione di ridimensionamento incrementale viene ripresa automaticamente.
In che modo l'autoscaling è diverso su Satellite rispetto a IBM Cloud® Kubernetes Service o Red Hat® OpenShift® on IBM Cloud®?
IBM Cloud® Kubernetes Service o Red Hat® OpenShift® on IBM Cloud® possono eseguire automaticamente il provisioning o rimuovere gli host nell'infrastruttura come parte del ridimensionamento. Con Satellite, poiché gli host risiedono su una varietà di infrastrutture differenti, l'autoscaler non può eseguire il provisioning e rimuovere automaticamente i nodi di lavoro. Invece, nei cluster Satellite, il cluster autoscaler utilizza solo host già disponibili e pronti nell'ubicazione. Ciò significa che è necessario mantenere disponibili altri host nella posizione da utilizzare per l'autoscaler durante lo scale-up.
Che tipo di host utilizza il cluster autoscaler durante il ridimensionamento incrementale del cluster?
Gli host con stato Ready e lo stato unassigned sono considerati disponibili per l'utilizzo da parte del cluster autoscaler.
Quale degli host disponibili può essere utilizzato durante il ridimensionamento incrementale?
Degli host Ready e unassigned, solo gli host le cui etichette corrispondono alle etichette del pool di nodi di lavoro in cui è abilitato il ridimensionamento possono essere utilizzati per il ridimensionamento. Quando si collegano gli host alla tua ubicazione, assicurati di etichettare gli host che desideri utilizzare nei tuoi pool di nodi di lavoro ridimensionati automaticamente.
In che modo il cluster autoscaler influisce sulla fatturazione?
Poiché il cluster autoscaler non esegue alcuna operazione a livello dell'infrastruttura, tuttavia assegna gli host ai pool di nodi di lavoro, il che significa che vengono sostenuti costi di gestione del cluster.
Dopo un evento di ridimensionamento, cosa faccio con gli host che sono stati utilizzati per il ridimensionamento che ora sono in uno stato Reload required ?
Dopo il ridimensionamento, gli host entrano in uno stato Reload required e non possono essere utilizzati per il ridimensionamento finché non vengono riavviati. Disassegnare questi host dal pool di lavoratori, rimuoverli dalla propria postazione, riavviarli e ricollegarli per renderli nuovamente disponibili per lo scaling.
Come configurare il ridimensionamento automatico nel mio cluster Satellite
Per configurare la scalabilità automatica, devi completare la seguente procedura.
  1. Creare una posizione Satellite.
  2. Impostare il piano di controllo della posizione.
  3. Collegare gli host per il pool di lavoro predefinito.
  4. Crea un cluster che utilizza i tuoi host Satellite.
  5. Verificare o creare i segreti di archiviazione richiesti nel cluster.
  6. Collega più host alla tua ubicazione e crea un secondo pool di nodi di lavoro nel tuo cluster.
  7. Collega più host alla tua ubicazione e lasciali non assegnati e disponibili per il ridimensionamento.
  8. Installare il componente aggiuntivo cluster-autoscaler.
  9. Modifica l'autoscaler ConfigMap e abilita la scalabilità.

Configurazione dell'ubicazione e del cluster per il ridimensionamento automatico

  1. Creare una posizione e impostare il piano di controllo.

  2. Dopo aver impostato il piano di controllo, collega più host che vuoi utilizzare nel pool di nodi di lavoro predefinito per il tuo cluster.

  3. Crea un cluster nell'ubicazione.

  4. Copiare il seguente segreto storage-secret-store e salvarlo come file. Puoi trovare i tuoi dettagli dell'endpoint openshift-api nella Satellite per la tua posizione.

    apiVersion: v1
    kind: Secret
    metadata:
      name: storage-secret-store
      namespace: kube-system
    type: Opaque
    stringData:
      ca_iam_api_key: "<iam_api_key>" # Enter your IAM API key
      container_api_route: "API ROUTE" # Enter the Destination IP of the openshift-api Link endpoint for your Satellite loction. For example: https://i43fb00XXX-XXXX6bf59a8XXX-ce00.us-east.satellite.appdomain.cloud
    
  5. Crea il segreto nel tuo cluster.

    oc create -f secret.yaml -n kube-system
    
  6. Collega più host alla tua ubicazione che vuoi utilizzare nel pool di nodi di lavoro ridimensionato automaticamente. Come procedura ottimale, non configurare il ridimensionamento automatico sul pool di nodi di lavoro predefinito. Quando si collegano gli host che si desidera utilizzare nel pool di lavoratori autoscalati, assicurarsi di specificare le etichette degli host come cpu=16 e memory=64. Le etichette host vengono utilizzate dal componente aggiuntivo del cluster autoscaler per trovare gli host disponibili per la scalabilità. Comando di esempio per collegare gli host mentre si specificano le etichette host per CPU e memoria.

    ibmcloud sat host attach --location LOCATION --host-label "cpu=16" --host-label "memory=64" [--operating-system SYSTEM]
    
  7. Crea un secondo pool di nodi di lavoro utilizzando gli host che hai collegato. Per ulteriori informazioni, vedi Creating Red Hat OpenShift on IBM Cloud clusters in Satellite.

  8. Collegare più host alla propria ubicazione, ma non assegnarli a un pool di nodi di lavoro. Questi host Ready/Unassigned sono disponibili per il ridimensionamento automatico. Quando si collegano gli host che si desidera lasciare disponibili per l'autoscaling, assicurarsi di specificare le etichette degli host come cpu=16 e memory=64. Le etichette host vengono utilizzate dal componente aggiuntivo del cluster autoscaler per trovare gli host disponibili per la scalabilità.

  9. Installare il componente aggiuntivo del cluster autoscaler nel cluster. Nota che se vedi un messaggio di errore The 'cluster-autoscaler' add-on is not supported on satellite clusters, il tuo account non è consentito per utilizzare il componente aggiuntivo. Per essere aggiunto all'elenco dei dati consentiti, aprire un caso con il supporto.

  10. Modifica il cluster autoscaler ConfigMap e specifica i parametri di ridimensionamento automatico che desideri utilizzare, come MinSize, MaxSize e i pool di nodi di lavoro che vuoi utilizzare per il ridimensionamento.