Bricolage-Histoires

Kubernetes : comment redimensionner la partition Master de mon Node chez Scaleway ?

Kubernetes : comment redimensionner la partition Master de mon Node chez Scaleway ?

Qu'est-ce que Kubernetes ?

Kubernetes est un système open source qui permet de fournir une plate-forme permettant d'automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d'application sur des clusters.

Quel est mon problème ?

Pour mon cluster d'entreprise, j'utilise les services de chez Scaleway et plus précisément les instances virtuelles de la gamme Entreprise.

Ces instances n'ont pas de disque physique, mais utilisent des disques réseau de type Block-Storage. Pour ceux qui pensent que ce n'est pas une bonne idée côté performances, je les arrête tout de suite. Le niveau de perf est excellent et le niveau fiable que je les utilise depuis 18 mois et je n'ai pas rencontré le moindre problème.

Sauf le point sur lequel je n'ai pas fait attention lorsque j'ai pris ces instances, c'est que le disque Block-Storage est défini par défaut à 20Go. Du coup je me suis retrouvé avec au départ des messages d'erreur "Disk Pressure" dont je ne comprenais pas le sens. En fait c'est tout simplement la traduction du bon vieux Out of Memory (espace disque insuffisant).

Comment augmenter mon espace disque sans reprendre mes instances ?

Comment augmenter la taille du volume à partir de la console Scaleway ?

Cliquez sur l'onglet Volumes dans la page d'informations sur l'instance de la console. Une liste de vos volumes s'affiche.
Cliquez sur " " à côté du volume que vous voulez augmenter, puis cliquez sur Augmenter le volume.
Augmentez la taille selon vos préférences à l'aide du bouton " + ".
Cliquez sur Augmenter votre volume pour confirmer.
Remarque : actuellement, seule l'augmentation d'un volume de stockage en bloc est prise en charge. La taille maximale d'un volume en bloc est de 10 To.

Pour lister facilement et rapidement les partitions, il suffit de lancer la commande lsblk

 # lsblk -f
NOM FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
|-sda1 ext4 cloudimg-rootfs 02bb033c-a191-40c0-94fb-bb025c724b13 3.5G 80% /

Nous voyons ici que la partition principale / est remplie à 80%. Sachant que la partition en question ne fait que 20Go, vous comprendrez rapidement que cela peu poser de gros problème si vous avez des Volumes montés localement, ou lorsque vous récupérez une image pour la réussir.

Le redimensionnement ce fera avec la commande resizepart en précisant le disque, le numéro de la partition (1 dans notre cas) et enfin la taille donnée en blocs.

Comment déterminer la taille de ma partition en blocs ?

Si l'on souhaite une partition de 45Go, il suffit de calculer le nombre de blocs que cela représente. Pour rappel un bloc fait 512 octets.

45Go = 45 * 1024 * 1024 * 1024 / 512 = 94371840 blocs

 # redimensionner /dev/sda 1 94371840

Puis on force le système à redimensionner effectivement la partition :

 # resize2fs /dev/sda1
resize2fs 1.45.5 (07-Jan-2020)
Le système de fichiers sur /dev//sda1 est monté sur / ; redimensionnement en ligne requis
old_desc_blocks = 3, new_desc_blocks = 6
Le système de fichiers sur /dev/sda1 fait maintenant 11796480 (4k) blocs.

Puis on a accepté que le redimensionnement c'est bien passé comme il faut.

 # lsblk -f
NOM FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
|-sda1 ext4 cloudimg-rootfs 02bb033c-a191-40c0-94fb-bb025c724b13 29.2G 33% /