Comment installer Kubernetes sur Ubuntu 20.04 Focal Fossa Linux

Comment installer Kubernetes sur Ubuntu 20.04 Focal Fossa Linux

Kubernetes est un logiciel leader dans l'orchestration de conteneurs. Kubernetes fonctionne en gérant des clusters, qui est simplement un ensemble d'hôtes destinés à exécuter des applications conteneurisées. Afin d'avoir un cluster Kubernetes, vous avez besoin d'un minimum de deux nœuds - A nœud maître et un nœud de travailleur. Bien sûr, vous pouvez étendre le cluster en ajoutant autant de nœuds de travailleur que vous avez besoin.

Dans ce guide, nous allons déployer un cluster Kubernetes composé de deux nœuds, qui exécutent tous les deux Ubuntu 20.04 FOCAL FOSSA. Avoir deux nœuds dans notre cluster est la configuration la plus élémentaire possible, mais vous pourrez mettre à l'échelle cette configuration et ajouter plus de nœuds si vous le souhaitez.

Dans ce tutoriel, vous apprendrez:

  • Comment installer Docker
  • Comment installer Kubernetes
  • Comment configurer un nœud maître et travailleur
  • Comment rejoindre un nœud de travailleur à un cluster Kubernetes
  • Comment déployer Nginx (ou toute application conteneurisée) dans un cluster Kubernetes
Déploiement de Kubernetes sur Ubuntu 20.04 FOCAL FOSSA Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Installé Ubuntu 20.04 ou Ubuntu 20 amélioré.04 FOCAL FOSSA
Logiciel Kubernetes
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Scénario

Avant de plonger, allons-y les détails de notre scénario. Comme mentionné ci-dessus, notre cluster aura deux nœuds, et ces deux nœuds exécutent Ubuntu 20.04 FOCAL FOSSA. On sera le nœud maître et peut être facilement identifié avec son nom d'hôte de kubernetes-master. Le deuxième nœud sera notre nœud de travailleur et avoir un nom d'hôte de Kubernetes-travailleur.

Le nœud maître déploiera un cluster Kubernetes et le nœud de travailleur le rejoint simplement. Étant donné que les clusters Kubernetes sont conçus pour exécuter des logiciels conteneurisés, après avoir mis en marche notre cluster, nous allons déployer un conteneur de serveur Nginx comme preuve de concept.



Installer Docker

Les deux nœuds devront faire installer Docker sur eux, car Kubernetes en s'appuie sur. Ouvrez un terminal et saisissez les commandes suivantes sur le nœud maître et le nœud de travail pour installer Docker:

$ sudo apt mise à jour $ sudo apt install docker.Io 

Une fois Docker terminé l'installation, utilisez les commands suivants pour démarrer le service et pour vous assurer qu'il démarre automatiquement après chaque redémarrage:

$ sudo systemctl start docker $ sudo systemctl activer docker 

Installer Kubernetes

Maintenant, nous sommes prêts à installer Kubernetes. Tout comme toutes les autres commandes jusqu'à ce point, assurez-vous que vous faites cela sur les deux nœuds. Sur votre maître et travailleur de Kubernetes, installez d'abord le apt-transport-https Package, qui nous permettra d'utiliser HTTP et HTTPS dans les référentiels d'Ubuntu. C'est maintenant aussi le bon moment pour installer boucle Puisque nous en aurons besoin dans un instant:

$ sudo apt install apt-transport-https curl 

Ensuite, ajoutez la clé de signature de Kubernetes aux deux systèmes:

$ curl -s https: // packages.nuage.Google.com / apt / doc / apt-key.GPG | sudo apt-key ajouter 

Ensuite, nous ajouterons le référentiel de packages Kubernetes. Notez qu'au moment de la rédaction de cet article, Ubuntu 16.04 Xenial Xerus est le dernier référentiel Kubernetes disponible. Cela devrait éventuellement être remplacé par Ubuntu 20.04 FOCAL FOSSA, et la commande suivante peut ensuite être mise à jour à partir de xenial pour focal.

$ sudo apt-add-repository "deb http: // apt.kubernetes.io / kubernetes-xenial Main " 

Maintenant, nous pouvons installer Kubernetes:

$ sudo apt install kubeadm kubelet kubectl kubernetes-cni 

Désactiver la mémoire d'échange

Kubernetes refusera de fonctionner si votre système utilise la mémoire d'échange. Avant de poursuivre, assurez-vous que le nœud maître et le nœud de travailleur a échange la mémoire désactivée avec cette commande:

$ sudo swapoff -a 

Cette commande désactivera la mémoire d'échange jusqu'à ce que vos systèmes redémarrent, donc pour que ce changement persiste, utilisez Nano ou votre éditeur de texte préféré pour ouvrir ce fichier:

$ sudo nano / etc / fstab 

À l'intérieur de ce fichier, commentez le / file d'échange ligne en la précédant avec un # symbole, comme vu ci-dessous. Ensuite, fermez ce fichier et enregistrez les modifications.

Ajouter # pour commenter la ligne de file d'échange

Définir les noms d'hôte

Ensuite, assurez-vous que tous vos nœuds ont un nom d'hôte unique. Dans notre scénario, nous utilisons les noms d'hôte kubernetes-master et Kubernetes-travailleur Pour différencier facilement nos hôtes et identifier leurs rôles. Utilisez la commande suivante si vous devez modifier vos noms d'hôte:

$ sudo hostnamectl set-hostname kubernetes-master 


Et sur le nœud des travailleurs:

$ sudo hostnamectl set-hostname kubernetes-travailleur 

Vous ne remarquerez pas que le nom d'hôte change dans le terminal jusqu'à ce que vous en outirez un nouveau. Enfin, assurez-vous que tous vos nœuds ont une heure et une date précises, sinon vous rencontrerez des problèmes avec des certificats TLS invalides.

Initialiser Kubernetes Master Server

Maintenant, nous sommes prêts à initialiser le nœud maître Kubernetes. Pour ce faire, entrez la commande suivante sur votre nœud maître:

kubernetes-master: ~ $ sudo kubeadm init 
Kubernetes sur Ubuntu 20.04 Le nœud maître est maintenant initialisé

Le nœud maître Kubernetes a maintenant été initialisé. La sortie nous donne un kubeadm join commande que nous devrons utiliser plus tard pour rejoindre nos nœuds de travailleur au nœud maître. Alors, prenez note de cette commande pour plus tard.

La sortie d'en haut nous conseille également d'exécuter plusieurs commandes en tant qu'utilisateur ordinaire pour commencer à utiliser le cluster Kubernetes. Exécutez ces trois commandes sur le nœud maître:

kubernetes-master: ~ $ mkdir -p $ home /.kube kubernetes-master: ~ $ sudo cp -i / etc / kubernetes / admin.Conf $ home /.kube / config kubernetes-master: ~ $ sudo chown $ (id -u): $ (id -g) $ home /.kube / config 

Déployer un réseau de pod

La prochaine étape consiste à déployer un réseau de pod. Le réseau POD est utilisé pour la communication entre les hôtes et est nécessaire pour que le cluster Kubernetes fonctionne correctement. Pour cela, nous utiliserons le réseau de pod de flanelle. Émettez les deux commandes suivantes sur le nœud maître:

kubernetes-master: ~ $ kubectl appliquer -f https: // brut.githubusercontent.com / coreos / flannel / maître / documentation / kube-flannel.yml kubernetes-master: ~ $ kubectl appliquer -f https: // brut.githubusercontent.com / coreos / flannel / maître / documentation / k8s-manifests / kube-flannel-rbac.YML 

Selon votre environnement, cela peut prendre quelques secondes ou une minute pour faire monter l'ensemble du réseau de flanelle. Vous pouvez utiliser le kubectl commande pour confirmer que tout est en place:

kubernetes-master: ~ $ kubectl get pods - all-namespaces 
Le réseau POD est déployé avec succès

Lorsque toute la colonne d'état affiche `` Running '', c'est une indication que tout est fini en déploiement et bon à parcourir.

Rejoignez le cluster Kubernetes

Maintenant, notre cluster est prêt à faire rejoindre les nœuds de travailleur. Utilisez le kubeadm join Commande récupérée plus tôt à partir de la sortie d'initialisation du nœud maître de Kubernetes pour rejoindre votre cluster Kubernetes:

Kubernetes-Worker: ~ $ sudo kubeadm rejoindre 192.168.1.220: 6443 - 1EXB8-TOKIN.2T4K3B5SYFC3JFMO - Discovery-Token-CA-CERT-HASH SHA256: 72AD481CEE4918CF2314738419356C9A402FB609263ADAD48C13797D0CBA2341 
Rejoindre le nœud des travailleurs au cluster de Kubernetes

De retour sur votre nœud maître Kubernetes, confirmez que Kubernetes-travailleur fait maintenant partie de notre cluster Kubernetes avec cette commande:

kubernetes-master: ~ $ kubectl obtenir des nœuds 
Affiche ce que les nœuds sont actuellement dans le cluster Kubernetes

Déploiement d'un service sur le cluster Kubernetes

Nous sommes maintenant prêts à déployer un service dans le cluster Kubernetes. Dans notre exemple, nous déploierons un serveur Nginx dans notre nouveau cluster comme preuve de concept. Exécutez les deux commandes suivantes sur votre nœud maître:

kubernetes-master: ~ $ kubectl run --image = nginx nginx-server --port = 80 --env = "domain = cluster" kubernetes-master: ~ $ kubectl exposition déploiement nginx-server --port = 80 --name = nginx-http 


Vous devriez maintenant voir un nouveau conteneur Nginx Docker déployé sur votre nœud de travail:

Kubernetes-Worker: ~ $ sudo docker ps 
Le nouveau conteneur Docker Nginx est opérationnel sur le nœud de travailleur Kubernetes

Vous pouvez voir une liste en cours d'exécution de tous les services disponibles exécutés dans votre cluster avec la commande suivante, publiée à partir du nœud Maser Kubernetes:

kubernetes-master: ~ $ kubectl get svc 
Affiche ce que les services conteneurisés fonctionnent sur le cluster Kubernetes

Conclusion

Dans cet article, nous avons appris à configurer Kubernetes pour déployer des applications conteneurisées sur Ubuntu 20.04 FOCAL FOSSA. Nous configurons un cluster de base composé de deux hôtes, un maître et un travailleur, bien que cela puisse être mis à l'échelle à de nombreux autres nœuds de travailleur si nécessaire.

Nous avons vu comment configurer Docker et d'autres pré-requis, ainsi que pour déployer un serveur Nginx dans notre nouveau cluster comme preuve de concept. Bien sûr, cette même configuration peut être utilisée pour déployer n'importe quel nombre d'applications conteneurisées.

Tutoriels Linux connexes:

  • Comment installer Kubernetes sur Ubuntu 22.04 Jammy Jellyfish…
  • Comment créer un cluster Kubernetes
  • Choses à installer sur Ubuntu 20.04
  • Comparaison des MPM de Linux Apache PreFork vs Worker
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • À quoi sert Kubernetes?
  • Comment gérer les grappes de Kubernetes avec Kubectl
  • Kubeadm vs Minikube, avant et inconvénients
  • Kubernetes vs docker, quelle est la différence?
  • Comment déployer WordPress sur un cluster Kubernetes