Winkelwagen

/ .nl-domeinnaam

Jouw .nl voor slechts € 0,49.

Domeinnaam checken
E-mail

/ Hostingpakket keuzehulp

Weet je niet zeker welk hostingpakket de beste
keus is voor jouw website? Met onze keuzehulp
kom je er wel uit.

Direct naar de keuzehulp

/ OpenStack

/ Probeer Public Cloud uit

Gratis 1 maand aan de slag met Public Cloud?

Vraag proefperiode aan

/ TransIP Blog

CSM25: API security in een SaaS-wereld

Lees de blogpost
Hulp nodig?

    Sorry, we konden geen resultaten vinden voor jouw zoekopdracht.

    Hoe gebruik ik de Kubernetes Cluster Autoscaler?

    Met de Kubernetes Cluster Autoscaler laat je het aantal worker nodes in een nodepool automatisch aanpassen aan de behoefte van je workloads. Je stelt per nodepool een minimum- en maximumaantal nodes in. De autoscaler voegt binnen deze grenzen nodes toe of verwijdert ze. In deze handleiding laten we zien hoe je gebruik maakt van de Kubernetes Cluster Autoscaler op een Kubernetes-cluster bij TransIP.

    • De Cluster Autoscaler is beschikbaar vanaf Kubernetes 1.35 (zie ook ‘hoe update ik mijn Kubernetes-versie?’). Oudere Kubernetes-versies worden niet ondersteund.
       
    • De functie staat standaard uit en is momenteel alleen via de TransIP API in te stellen. Ondersteuning in het controlepaneel volgt later. 
       
    • De Kubernetes Cluster Autoscaler schaalt worker nodes en niet het aantal pods. Wil je het aantal pods automatisch aanpassen, gebruik dan bijvoorbeeld de Horizontal Pod Autoscaler (HPA). Beide functies kunnen naast elkaar worden gebruikt.
       
    • De gebruikte endpoints van de TransIP API zijn in de documentatie als experimenteel gemarkeerd en kunnen nog wijzigen. 
       
    • Heb je meerdere nodepools, dan stel je autoscaling voor iedere gewenste nodepool afzonderlijk in.
       
    • De Cluster Autoscaler volgt de specificaties van de Cluster Autoscaler zoals beschreven op Github.
     

     

    Voorwaarden voor de Kubernetes Cluster Autoscaler

     

    Voor het instellen van autoscaling heb je het volgende nodig: 


     

    De Kubernetes Cluster Autoscaler gebruiken

     

    Gebruik een API PUT-request om op een specifieke nodepool de Cluster Autoscaler in te schakelen en een minimum en maximum aantal nodes te configureren.

    • Als het maximum aantal nodes is bereikt, kunnen pods die niet meer in het cluster passen in de status ‘Pending’ blijven staan. 
       
    • PodDisruptionBudgets, lokale opslag, strikte node selectors of affinityregels en de annotatie cluster-autoscaler.kubernetes.io/safe-to-evict: "false" kunnen voorkomen dat een node automatisch wordt verwijderd door de Cluster Autoscaler. 
     

     

    Stap 1 - achterhaal de nodepool UUIDs

    Vraag eerst de nodepools van het cluster op. Vervang [token] en [clusternaam] door je eigen gegevens:

    curl --request GET \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer [token]" \
      "https://api.transip.nl/v6/kubernetes/clusters/[clusternaam]/node-pools" 

    In de uitvoer vind je per nodepool het veld uuid. Je hebt deze UUID in de volgende stap nodig.


     

    Stap 2 - schakel autoscaling in

    Schakel autoscaling in met een PUT-request naar de gewenste nodepool. Pas in het commando de volgende gegevens aan:

    • "minNodeCount": <x> bepaalt het minimum aantal nodes (twee in het voorbeeld hieronder)
    • "maxNodeCount": <x> bepaalt het maximum aantal nodes in te stellen (vijf in het voorbeeld hieronder)
    • [clusternaam]: vervang door de naam van je Kubernetes-cluster
    • [nodepool-uuid]: vervang door het UUID van de nodepool waarop de Cluster Autoscaler is ingeschakeld, zie stap 1 uit de vorige paragraaf.
    curl --request PUT \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer [token]" \
      --data '{ "nodePool": { "autoscalingEnabled": true, "minNodeCount": 2, "maxNodeCount": 5 } }' \
      "https://api.transip.nl/v6/kubernetes/clusters/[clusternaam]/node-pools/[nodepool-uuid]"

    Bij een geslaagde wijziging antwoordt de API met statuscode 204 No Content


     

    Stap 3 - controleer je aangepaste nodepool

    Controleer vervolgens of de Cluster Autoscaler correct is ingesteld. 

    curl --request GET \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer [token]" \
      "https://api.transip.nl/v6/kubernetes/clusters/[clusternaam]/node-pools/[nodepool-uuid]"

    In het antwoord zie je onder meer de volgende velden:

    {
      "autoscalingEnabled": true,
      "minNodeCount": 2,
      "maxNodeCount": 5
    } 

     

    De Kubernetes Cluster Autoscaler uitschakelen 

     

    De Cluster Autoscaler schakel je eenvoudig uit via de TransIP API met een PUT-request naar de gewenste nodepool. Hierbij zet je de optie ‘autoscalingEnabled’ op ‘false’. 

    Pas in het commando de volgende gegevens aan:

    • "minNodeCount": <x> bepaalt het minimum aantal nodes (twee in het voorbeeld hieronder)
    • "maxNodeCount": <x> bepaalt het maximum aantal nodes in te stellen (vijf in het voorbeeld hieronder)
    • [clusternaam]: vervang door de naam van je Kubernetes-cluster
    • [nodepool-uuid]: vervang door het UUID van de nodepool waarop de Cluster Autoscaler is ingeschakeld, zie stap 1 uit de vorige paragraaf.

    De opties ‘autoscalingEnabled’, ‘minNodeCount’ en ‘maxNodeCount’ zijn altijd vereist. Ontbreekt een van deze velden, dan weigert de API de wijziging.

     
    curl --request PUT \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer [token]" \
      --data '{ "nodePool": { "autoscalingEnabled": false, "minNodeCount": 2, "maxNodeCount": 5 } }' \
      "https://api.transip.nl/v6/kubernetes/clusters/[clusternaam]/node-pools/[nodepool-uuid]"

    Bij een geslaagde wijziging antwoordt de API met statuscode 204 No Content


     

    Daarmee zijn we aan het eind gekomen van deze handleiding over het gebruik van de Cluster Autoscaler in een Kubernetes-cluster bij TransIP. Meer technische informatie over de schaalbeslissingen vind je in de FAQ van Kubernetes Cluster Autoscaler. Meer informatie over de in de API beschikbare velden en endpoints voor Kubernetes vind je in de TransIP API-documentatie.

    Kom je er niet uit?

    Ontvang persoonlijke hulp van onze supporters

    Neem contact op