GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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 sont simplement un ensemble d'hôtes destinés à exécuter des applications conteneurisées. Pour avoir un cluster Kubernetes, vous avez besoin d'au moins deux nœuds :un nœud maître et un nœud de travail . Bien entendu, vous pouvez étendre le cluster en ajoutant autant de noeuds worker que nécessaire.

Dans ce guide, nous allons déployer un cluster Kubernetes composé de deux nœuds, qui exécutent tous deux Ubuntu 20.04 Focal Fossa. Avoir deux nœuds dans notre cluster est la configuration la plus basique possible, mais vous pourrez faire évoluer cette configuration et ajouter plus de nœuds si vous le souhaitez.

Dans ce didacticiel, vous apprendrez :

  • Comment installer Docker
  • Comment installer Kubernetes
  • Comment configurer un nœud maître et un nœud de travail
  • Comment joindre un noeud worker à un cluster Kubernetes
  • Comment déployer Nginx (ou toute application conteneurisée) dans un cluster Kubernetes

Déployer Kubernetes sur Ubuntu 20.04 Focal Fossa

Configuration logicielle requise et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version du logiciel utilisée
Système Installation d'Ubuntu 20.04 ou mise à niveau d'Ubuntu 20.04 Focal Fossa
Logiciel Kubernetes
Autre Accès privilégié à votre système Linux en tant que root ou via le sudo commande.
Conventions # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande
$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié

Scénario

Avant de plonger, établissons 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. L'un sera le nœud maître et peut être facilement identifié avec son nom d'hôte kubernetes-master . Le deuxième nœud sera notre nœud de travail et avoir un nom d'hôte kubernetes-worker .

Le nœud maître déploiera un cluster Kubernetes et le nœud travailleur le rejoindra simplement. Étant donné que les clusters Kubernetes sont conçus pour exécuter des logiciels conteneurisés, une fois notre cluster opérationnel, nous allons déployer un conteneur de serveur Nginx comme preuve de concept.

Installer Docker

Docker devra être installé sur les deux nœuds, car Kubernetes en dépend. 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 update$ sudo apt install docker.io

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

$ sudo systemctl start docker$ sudo systemctl enable docker

Installer Kubernetes

Nous sommes maintenant prêts à installer Kubernetes. Comme toutes les autres commandes jusqu'à présent, assurez-vous de le faire sur les deux nœuds. Sur votre master et votre worker Kubernetes, installez d'abord le apt-transport-https package, qui nous permettra d'utiliser http et https dans les dépôts d'Ubuntu. C'est aussi le bon moment pour installer curl puisque nous en aurons besoin dans un instant :

$ sudo apt install apt-transport-https curl

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

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

Ensuite, nous ajouterons le référentiel de packages Kubernetes. Notez qu'au moment d'écrire ces lignes, 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 alors être mise à jour depuis xenial à focal .

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

Nous pouvons maintenant 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 de la mémoire d'échange. Avant de continuer, assurez-vous que la mémoire d'échange du nœud maître et du nœud de travail est désactivée avec cette commande :

$ sudo swapoff -a

Cette commande désactivera la mémoire d'échange jusqu'au redémarrage de votre système. Pour que cette modification persiste, utilisez nano ou votre éditeur de texte préféré pour ouvrir ce fichier :

$ sudo nano /etc/fstab

Dans ce fichier, commentez le /swapfile ligne en la faisant précéder d'un # symbole, comme indiqué ci-dessous. Ensuite, fermez ce fichier et enregistrez les modifications.

Ajoutez # pour commenter la ligne du fichier 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-worker 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 noeud worker :

$ sudo hostnamectl set-hostname kubernetes-worker

Vous ne remarquerez pas les changements de nom d'hôte dans le terminal tant que vous n'en ouvrirez pas 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 non valides.

Initialiser le serveur maître Kubernetes

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

kubernetes-master :~$ sudo kubeadm init

Kubernetes sur le nœud maître Ubuntu 20.04 est maintenant initialisé

Le nœud maître Kubernetes est maintenant initialisé. La sortie nous donne une kubeadm join commande que nous devrons utiliser plus tard pour joindre notre ou nos nœuds de travail au nœud maître. Alors, notez cette commande pour plus tard.

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

kubernetes-master :~$ mkdir -p $HOME/.kubekubernetes-master :~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configkubernetes-master :~$ sudo chown $( id -u):$(id -g) $HOME/.kube/config

Déployer un réseau de pods

L'étape suivante consiste à déployer un réseau de pods. Le réseau de pod est utilisé pour la communication entre les hôtes et est nécessaire au bon fonctionnement du cluster Kubernetes. Pour cela, nous utiliserons le réseau de pods Flannel. Exécutez les deux commandes suivantes sur le nœud maître :

kubernetes-master :~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubernetes-master :~$ kubectl apply -f https://raw .githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

Selon votre environnement, la mise en place de l'ensemble du réseau Flannel peut prendre quelques secondes ou une minute. Vous pouvez utiliser le kubectl commande pour confirmer que tout est en place et prêt :

kubernetes-master :~$ kubectl get pods --all-namespaces

Le réseau de pods est déployé avec succès

Lorsque toute la colonne STATUS affiche "En cours d'exécution", cela indique que tout est terminé et prêt à fonctionner.

Rejoindre le cluster Kubernetes

Maintenant, notre cluster est prêt à faire rejoindre les nœuds de travail. Utilisez la jointure kubeadm join commande récupérée précédemment à partir de la sortie d'initialisation du nœud maître Kubernetes pour rejoindre votre cluster Kubernetes :

kubernetes-worker :~$ sudo kubeadm join 192.168.1.220:6443 --token 1exb8s.2t4k3b5syfc3jfmo --discovery-token-ca-cert-hash sha256:72ad481cee4918cf2314738419356c9a402fb609263

Joindre le noeud worker au cluster Kubernetes

De retour sur votre nœud maître Kubernetes, confirmez que kubernetes-worker fait désormais partie de notre cluster Kubernetes avec cette commande :

kubernetes-master :~$ kubectl get nodes

Affiche les nœuds qui se trouvent actuellement dans le cluster Kubernetes

Déployer un service sur un cluster Kubernetes

Nous sommes maintenant prêts à déployer un service dans le cluster Kubernetes. Dans notre exemple, nous allons déployer 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 expose le déploiement nginx-server --port=80 --name=nginx-http

Vous devriez maintenant voir un nouveau conteneur docker nginx déployé sur votre noeud worker :

kubernetes-worker :~$ sudo docker ps

Le nouveau conteneur docker Nginx est opérationnel sur le nœud de travail Kubernetes

Vous pouvez voir une liste en cours d'exécution de tous les services disponibles en cours d'exécution dans votre cluster avec la commande suivante, émise depuis le nœud maser Kubernetes :

kubernetes-master :~$ kubectl get svc

Affiche les services conteneurisés en cours d'exécution 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 adapté à de nombreux autres nœuds de travail si nécessaire.

Nous avons vu comment configurer Docker et d'autres prérequis, ainsi que 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.


Ubuntu
  1. Comment installer docker-compose sur Ubuntu 20.04 Focal Fossa Linux

  2. Comment installer LaTex sur Ubuntu 20.04 Focal Fossa Linux

  3. Comment installer MATLAB sur Ubuntu 20.04 Focal Fossa Linux

  4. Comment installer des polices sur Ubuntu 20.04 Focal Fossa Linux

  5. Comment installer Telegram sur Ubuntu 20.04 Focal Fossa Linux

Comment installer TeamViewer sur Ubuntu 20.04 Focal Fossa Linux

Comment installer Minecraft sur Ubuntu 20.04 Focal Fossa Linux

Comment installer PlayOnLinux sur Ubuntu 20.04 Focal Fossa Linux

Comment installer CUDA sur Ubuntu 20.04 Focal Fossa Linux

Comment installer Steam sur Ubuntu 20.04 Focal Fossa Linux

Comment installer Discord sur Ubuntu 20.04 Focal Fossa Linux