Comment installer Kubernetes sur Ubuntu 20.04 Focal Fossa Linux
- 2050
- 625
- Anaïs Charles
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
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.
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 initKubernetes 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-namespacesLe 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: 72AD481CEE4918CF2314738419356C9A402FB609263ADAD48C13797D0CBA2341Rejoindre 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œudsAffiche 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 psLe 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 svcAffiche 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
- « Comment installer R sur Ubuntu 20.04
- Ajouter un menu d'application sur Ubuntu 20.04 Gnome Desktop »