Comment utiliser K3s pour exécuter un cluster Kubernetes sur votre machine de développement

0
184

K3s est une distribution Kubernetes légère idéale pour le développement. Il fait maintenant partie de la Cloud Native Computing Foundation (CNCF) mais a été initialement développé par Rancher.

K3s est livré en tant que binaire unique avec une taille de fichier inférieure à 50 Mo. Malgré son apparence minuscule, K3s comprend tout ce dont vous avez besoin pour exécuter un cluster Kubernetes prêt pour la production. Le projet se concentre sur le matériel à ressources limitées où la fiabilité et la facilité de maintenance sont des préoccupations clés. Alors que K3s se trouve désormais couramment à la périphérie des appareils IoT, ces qualités en font également un bon candidat pour une utilisation locale par les développeurs.

Démarrer avec K3s< /h2>

L'exécution du binaire K3s démarrera un cluster Kubernetes sur la machine hôte. Le processus K3s principal démarre et gère tous les composants Kubernetes, y compris le serveur d'API du plan de contrôle, une instance de travail Kubelet et l'environnement d'exécution du conteneur et du conteneur.

En pratique, vous souhaiterez généralement que les K3 démarrent automatiquement en tant que service. Il est recommandé d'utiliser le script d'installation officiel pour lancer rapidement K3 sur votre système. Cela téléchargera le binaire, le déplacera dans votre chemin et enregistrera un service systemd ou openrc en fonction de votre système. K3s sera configuré pour redémarrer automatiquement après le plantage de son processus ou le redémarrage de votre hôte.

$ curl -sfL https://get.k3s.io | sh –

Confirmez que l'installation a réussi en vérifiant l'état du service k3s :

$ sudo service k3s status

Vous êtes prêt à commencer à utiliser votre cluster si actif (en cours d'exécution) est affiché en vert.

Interagir avec votre cluster

K3s regroupe Kubectl si vous l'installez à l'aide du script fourni. Il est imbriqué sous la commande k3s :

$ k3s kubectl get pods Aucune ressource trouvée dans l'espace de noms par défaut.

Vous pourriez recevoir une erreur semblable à celle-ci :

$ k3s kubectl get pods WARN[0000] Impossible de lire /etc/rancher/k3s/k3s.yaml, veuillez démarrer le serveur avec –write-kubeconfig-mode pour modifier les autorisations de configuration de kube erreur : erreur lors du chargement du fichier de configuration “/etc/rancher /k3s/k3s.yaml”: open /etc/rancher/k3s/k3s.yaml : autorisation refusée

Vous pouvez résoudre ce problème en ajustant les autorisations de fichier du chemin référencé :

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

Vous devriez maintenant pouvoir exécuter des commandes Kubectl sans utiliser sudo.

Vous pouvez continuer à utiliser une installation Kubectl autonome si vous ne voulez pas compter sur K3s’ version intégrée. Utilisez la variable d'environnement KUBECONFIG ou l'indicateur –kubeconfig pour référencer votre fichier de configuration K3s lors de l'exécution de la commande kubectl :

$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml $ kubectl get pods Aucune ressource trouvée par défaut espace de noms.

Un exemple de charge de travail

Vous pouvez tester votre cluster en ajoutant un déploiement simple :

$ k3s kubectl create deployment nginx –image=nginx:latest deployment.apps/nginx créé $ k3s kubectl expose deployment nginx –type=LoadBalancer –port=80 service/nginx exposés

Utilisez Kubectl pour découvrir l'adresse IP de le service qui a été créé :

$ k3s kubectl get services NOM TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 35m nginx LoadBalancer 10.43.49.20 <en attente> 80:30968/TCP 17s

Dans cet exemple, le service NGINX est accessible au 10.43.49.20. Visitez cette URL dans votre navigateur Web pour voir la page d'accueil NGINX par défaut.

Définition des options Kubernetes

Vous pouvez définir des arguments personnalisés pour des composants Kubernetes individuels lorsque vous exécutez K3s. Les valeurs doivent être fournies sous forme d'indicateurs de ligne de commande au binaire K3s. Les variables d'environnement sont également prises en charge, mais la conversion de l'indicateur en nom de variable n'est pas toujours cohérente.

Voici quelques drapeaux couramment utilisés pour configurer votre installation :

  • –etcd-arg – Transmettez un argument à Etcd.
  • –kube-apiserver-arg – Transmettez un argument au serveur d'API Kubernetes.
  • –kube-controller-manager-arg – Transmettez un argument au composant Kubernetes Controller Manager.
  • –kubelet-arg – Passez un argument au processus de travail Kubelet.

De nombreuses autres options sont disponibles pour personnaliser le fonctionnement des K3 et de votre cluster Kubernetes. Celles-ci incluent des fonctionnalités permettant de désactiver les composants groupés tels que le contrôleur Traefik Ingress (–disable traefik) afin que vous puissiez les remplacer par des implémentations alternatives.

Outre les indicateurs et les variables, K3s prend également en charge un fichier de configuration YAML beaucoup plus facile à gérer. Déposez-le dans /etc/rancher/k3s/config.yaml pour que K3s l'utilise automatiquement à chaque démarrage. Les noms de champ doivent être des arguments CLI dépouillés de leur préfixe –.

node-name : first-worker bind-address : 1.2.3.4

Clusters multi-nœuds

K3s prend entièrement en charge les clusters multi-nœuds. Vous pouvez ajouter des nœuds à votre cluster en définissant les variables d'environnement K3S_URL et K3S_TOKEN avant d'exécuter le script d'installation.

$ curl -sfL https://get.k3s.io | K3S_URL=https://192.168.0.1:6443 K3S_TOKEN=token sh –

Ce script installera K3s et le configurera en tant que nœud de travail qui se connecte à l'adresse IP 192.168.0.1. Pour trouver votre jeton, copiez la valeur du fichier /var/lib/rancher/k3s/server/node-token de la machine qui exécute votre serveur K3s.

Utilisation d'images dans des registres privés

K3s a un bon support intégré pour les images dans des registres privés. Vous pouvez fournir un fichier de configuration spécial pour injecter les informations d'identification du registre dans votre cluster. Ces informations d'identification seront lues au démarrage du serveur K3s. Il les partagera automatiquement avec vos noeuds worker.

Créez un fichier /etc/rancher/k3s/registries.yaml avec le contenu suivant :

miroirs : example-registry.com : endpoint : – "https://example-registry.com:5000"

Cela permettra à votre cluster d'extraire des images telles que example-registry.com/example-image:latest du serveur à example-registry.com:5000. Vous pouvez spécifier plusieurs URL sous le champ endpoint ; ils seront utilisés comme solutions de secours dans l'ordre écrit jusqu'à ce qu'une extraction réussie se produise.

Fournissez les informations d'identification de l'utilisateur pour vos registres en utilisant la syntaxe suivante :

miroirs : example-registry.com : endpoint : – "https://example-registry.com:5000" configs : "example-registry.com:5000" : auth : nom d'utilisateur : <nom d'utilisateur&gt ; mot de passe : <mot de passe>

Les informations d'identification sont définies par point de terminaison. Les registres définis avec plusieurs points de terminaison nécessitent des entrées individuelles dans le champ de configuration pour chacun.

Les points de terminaison qui utilisent SSL doivent également se voir attribuer une configuration TLS :

configs : "example-registry.com:5000" : auth : nom d'utilisateur : <nom d'utilisateur&gt ; password : <password tls : cert_file : /tls/cert key_file : /tls/key ca_file : /tls/ca

Définissez les champs cert_file, key_file et ca_file pour référencer les fichiers de certificat corrects pour votre registre.

Mise à niveau de votre cluster

Vous pouvez mettre à niveau vers les nouvelles versions de K3s en exécutant la dernière version du script d'installation. Cela détectera automatiquement votre cluster existant et le migrera vers la nouvelle version.

$ curl -sfL https://get.k3s.io | sh –

Si vous avez personnalisé votre cluster en définissant les variables d'environnement du programme d'installation, répétez-les lorsque vous exécutez la commande de mise à niveau :

$ curl -sfL https://get.k3s.io | INSTALL_K3S_BIN_DIR=/usr/bin sh –

Les clusters multi-nœuds sont mis à niveau en utilisant la même procédure. Vous devez mettre à niveau chaque nœud de travail individuellement, une fois que le serveur a exécuté la nouvelle version.

Vous pouvez installer une version spécifique de Kubernetes en définissant la variable INSTALL_K3S_VERSION avant d'exécuter le script :

$ curl -sFL https://get.k3s.io | INSTALL_K3S_VERSION=v1.23.0 sh –

La version INSTALL_K3S_CHANNEL peut sélectionner des versions instables et des versions préliminaires :

$ curl -sFL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest sh –

K3s exécutera par défaut la dernière version stable de Kubernetes lorsque ces variables ne sont pas définies.

Désinstallation de K3s

Comme K3s est fourni sous la forme d'un binaire autonome, il est facile à nettoyer si vous souhaitez arrêter de l'utiliser. Le processus d'installation fournit un script de désinstallation qui supprimera les services système, supprimera le binaire et effacera toutes les données créées par votre cluster.

$ /usr/local/bin/k3s-uninstall.sh

Vous devez utiliser le script sur /usr/local/bin/k3s-agent-uninstall.sh à la place lorsque vous désaffectez un nœud de travail K3s.

Conclusion

K3s est une distribution Kubernetes à un seul binaire qui consomme peu de ressources système et est facile à entretenir. Cela ne se fait pas au détriment des capacités : K3s est présenté comme prêt pour la production et prend entièrement en charge les objets de l'API Kubernetes, le stockage persistant et la mise en réseau à charge équilibrée.

K3s est une bonne alternative à d'autres saveurs Kubernetes orientées développeur telles que Minikube et MicroK8s. Vous n'avez pas besoin d'exécuter des machines virtuelles, d'installer d'autres logiciels ou d'effectuer une configuration avancée pour configurer votre cluster. Il est particulièrement bien adapté lorsque vous utilisez déjà des K3 en production, ce qui vous permet d'aplanir les disparités entre vos environnements.

LIRE LA SUITE

  • › N'achetez pas de répéteur Wi-Fi : achetez plutôt celui-ci
  • › Devriez-vous augmenter la puissance de transmission de votre routeur Wi-Fi ?
  • › 10 fonctionnalités YouTube que vous devriez utiliser
  • › Test de l'Edifier Neobuds S : le bon, le mauvais et le buggy
  • › Un aimant peut-il vraiment endommager mon téléphone ou mon ordinateur ?
  • › Quels accessoires pour smartphone valent la peine d'être achetés ?