4
votes

Quelle est la machine virtuelle la moins chère pouvant être utilisée comme nœud AKS?

Je teste du code Terraform pour créer un cluster Kubernetes, j'ai donc choisi la VM la plus petite / la moins chère

resource "azurerm_kubernetes_cluster" "k8s" {
    name                = "${var.cluster_name}"
    location            = "${azurerm_resource_group.resource_group.location}"
    resource_group_name = "${azurerm_resource_group.resource_group.name}"
    dns_prefix          = "${var.dns_prefix}"

    agent_pool_profile {
        name            = "agentpool"
        count           = "${var.agent_count}"
        vm_size         = "Standard_B1s"
        os_type         = "Linux"
        os_disk_size_gb = "${var.agent_disk_size}"
    }

    service_principal {
        client_id     = "${var.client_id}"
        client_secret = "${var.client_secret}"
    }
}

Cependant, lorsque je terraform applique je reçois ceci message d'erreur de retour d'Azure:

"Le SKU de VM choisi pour ce cluster Standard_B1s ne dispose pas de suffisamment de CPU / mémoire pour fonctionner en tant que nœud AKS."

Comment puis-je répertorier les SKU de VM valides pour les nœuds AKS et les trier par coût?


3 commentaires

J'ai ajouté une photo, si cette réponse est utile, vous pouvez l'accepter comme réponse.


Je l'ai marqué comme utile. Je vais le laisser ouvert pendant encore 24 heures avant d'accepter au cas où il existe un moyen de ligne de commande de répertorier les VM valides.


Les exigences minimales de Kubernetes peuvent être trouvées ici: kubernetes.io/docs / setup / Independent / install-kubeadm /… D'autres recommandations devraient prendre en compte l'analyse de la charge de travail.


3 Réponses :


11
votes

Vous devez sélectionner une instance avec au moins 3,5 Go de mémoire . Lisez Une note sur la taille des nœuds sur ce blog . Vous pouvez répertorier la taille et le prix de la machine virtuelle sur le site de vente Azure < / a>.

Actuellement, le moins cher est le Standard_B2s avec 4 Go de RAM. Vous pouvez également le trier directement dans le portail Azure. entrez la description de l'image ici


0 commentaires

0
votes

Juste pour ajouter à la réponse existante. Je ne pense pas qu'il existe une énumération pour répertorier toutes les tailles valides de vms, mais si vous regardez le Définition de l'API , il les répertorie tous assez clairement.

Et vous pouvez utiliser azureprice.net ou quelque chose de similaire pour trouver la machine virtuelle la moins chère pour votre région (généralement sa série B).


0 commentaires

2
votes

Vous faites un B1 qui est moins cher que B2 si vous redimensionnez le vmss, puis mettez à niveau l'instance. Celui-ci coûte 3,80 $ / mois pour Linux et 10,22 $ / mois pour Windows

Pour une raison quelconque, vous ne pouvez pas encore faire cela dans Terraform.

Étape 1: Cliquez sur vmss -> paramètres -> taille -> voir toutes les tailles (en petits caractères) -> redimensionner

Étape 2: Cliquez sur vmss -> settings -> instance -> _0 -> upgrade (en haut de la barre du contrôleur)

Je ne m'inquiéterais pas trop de la taille de l'instance vm. C'est là que Terraform vous arrache. os_disk_size_gb. Définissez ce paramètre plus bas, sinon il est par défaut de 20 $ / mois par instance. Il semble qu'il n'y ait aucun moyen de changer le niveau, ils ont choisi par défaut un disque premium de 128 Go, et ont donné l'impression que vous ne dépenseriez que 30 $ par nœud.

MISE À JOUR: J'ai commencé à rencontrer des problèmes avec une instance de taille b1ls.


2 commentaires

C'est intéressant. Cependant, si vous ne pouvez pas le faire automatiquement, cela ne m'aide pas vraiment.


Ce que j'ai fait a été amélioré avec Terraform, puis j'ai écrit un script PowerShell pour effectuer le redimensionnement. Vous pouvez ensuite écrire un PowerShell qui initie et applique Terraform, puis exécute l'autre PowerShell, de sorte qu'il soit entièrement automatisé. Cependant, je rencontre un problème où je ne peux pas supprimer l'espace de noms avec kubectl avec les b1ls. Je mettrai à jour ma réponse bientôt si le redimensionnement en b1ls n'a pas de sens. Je me concentrerais sur os_disk_size_gb si vous essayez d'économiser de l'argent. Vous pouvez ensuite écrire un script pour désallouer vmss lorsqu'il n'est pas utilisé ou terraform destroy lorsqu'il n'est pas utilisé.