GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Kubernetes et Docker sur Ubuntu 18.04 LTS

Kubernetes est une plate-forme open source pour la gestion d'applications conteneurisées. Il vous permet de gérer, mettre à l'échelle et déployer automatiquement vos applications conteneurisées dans l'environnement en cluster. Kubernetes est développé par Google.

Avec Kubernetes, vous pouvez orchestrer des conteneurs sur plusieurs hôtes, mettre à l'échelle les applications conteneurisées avec toutes les ressources à la volée et disposer d'un environnement de gestion de conteneurs centralisé.

Dans ce tutoriel, je vais vous montrer étape par étape comment installer et configurer Kubernetes sur Ubuntu 18.04. Nous utiliserons 1 serveur 'k8s-master' comme maître hôte Kubernetes et 2 serveurs comme travailleurs Kubernetes, 'worker01' et 'worker02'.

Prérequis

  • 3 serveurs Ubuntu
    • 10.0.15.10 k8s-master
    • 10.0.15.21 worker01
    • 10.0.15.22 worker02
  • Privilèges root

Ce que nous allons faire

  1. Installation de Kubeadm
    1. Configurer les hôtes
    2. Installer Docker
    3. Désactiver SWAP
    4. Installer les packages Kubeadm
  2. Initialisation du cluster Kubernetes
  3. Ajout de nœuds de travail au cluster Kubernetes
  4. Test

Étape 1 - Installation de Kubeadm

Dans cette première étape, nous préparerons ces 3 serveurs pour l'installation de Kubernetes, alors exécutez toutes les commandes sur les nœuds maître et travailleur.

Nous préparerons tous les serveurs pour l'installation de Kubernetes en modifiant la configuration existante sur les serveurs et en installant également certains packages, y compris docker et kubernetes lui-même.

Configurer les hôtes

Modifiez le fichier hosts sur tous les serveurs à l'aide de l'éditeur vim.

sudo vim /etc/hosts

Collez la configuration des hôtes ci-dessous.

10.0.15.10  k8s-master
10.0.15.21  worker01
10.0.15.22  worker02

Enregistrez et quittez.

Testez maintenant le nom d'hôte de tous les serveurs.

ping -c 3 k8s-master
ping -c 3 worker01
ping -c 3 worker02

Assurez-vous que toutes les adresses IP sont résolues en tant que nom d'hôte.

Installer Docker

Dans ce didacticiel, nous allons installer Docker à partir du référentiel Ubuntu.

Installez Docker à l'aide de la commande apt ci-dessous.

sudo apt install docker.io -y

Une fois l'installation terminée, démarrez le service Docker et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl start docker
sudo systemctl enable docker

L'installation de Docker est terminée.

Désactiver SWAP

Afin de configurer les serveurs Kubernetes Linux, nous devons désactiver le SWAP.

Vérifiez la liste d'échange et désactivez-la.

sudo swapon -s
sudo swapoff -a

Pour désactiver définitivement le SWAP, nous devons éditer le fichier '/etc/fstab'.

sudo vim /etc/fstab

Faites un commentaire sur le type de partition SWAP.

#/dev/mapper/hakase--labs--vg-swap_1 none            swap    sw              0       0

Enregistrez et quittez, puis redémarrez le système.

sudo reboot

Installer les packages Kubeadm

Dans ce didacticiel, nous utiliserons les packages Kubeadm pour configurer le cluster Kubernetes. Nous installerons les packages Kubeadm à partir du référentiel officiel de Kubernetes.

Installez apt-transport-https.

sudo apt install -y apt-transport-https

Ajoutez la clé Kubernetes.

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

Et ajoutez le référentiel Kubernetes en créant un nouveau fichier repo.list dans le répertoire '/etc/apt/sources.list.d'.

cd /etc/apt/
sudo vim sources.list.d/kubernetes.list

collez le référentiel kubernetes ci-dessous.

deb http://apt.kubernetes.io/ kubernetes-xenial main

Remarque :

Nous utilisons toujours le référentiel Xenial Ubuntu 16.04 pour notre installation Kubeadm.

Maintenant, mettez à jour le référentiel et installez les packages kubeadm à l'aide des commandes apt ci-dessous.

sudo apt update
sudo apt install -y kubeadm kubelet kubectl

Attendez l'installation des packages kubeadm.

Étape 2 - Initialisation du cluster Kubernetes

Dans cette étape, nous allons initialiser Kubernetes sur le nœud 'k8s-master'. Exécutez toutes les commandes de cette étape uniquement sur le serveur 'k8s-master'.

Initialisez le cluster Kubernetes à l'aide de la commande kubeadm ci-dessous.

sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=10.0.15.10 --kubernetes-version "1.11.0"

Remarque :

  • --apiserver-advertise-address =détermine sur quelle adresse IP Kubernetes doit annoncer son serveur d'API.
  • --pod-network-cidr =spécifiez la plage d'adresses IP pour le réseau de pods. Nous utilisons le réseau virtuel 'flanelle'. Si vous souhaitez utiliser un autre réseau de pods tel que weave-net ou calico, modifiez la plage d'adresses IP.

Une fois l'initialisation de Kubernetes terminée, vous obtiendrez le résultat comme indiqué ci-dessous.

Copiez la jointure 'kubeadm ... ... ... ' commande à votre éditeur de texte. La commande sera utilisée pour enregistrer de nouveaux nœuds de travail dans le cluster Kubernetes.

Maintenant, pour utiliser Kubernetes, nous devons exécuter certaines commandes comme indiqué dans le résultat.

Créez un nouveau répertoire de configuration '.kube' et copiez la configuration 'admin.conf' du répertoire '/etc/kubernetes'.

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

Ensuite, déployez le réseau Flannel sur le cluster Kubernetes à l'aide de la commande kubectl.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Le réseau Flannel a été déployé sur le cluster Kubernetes.

Attendez une minute, puis vérifiez le nœud et les pods kubernetes à l'aide des commandes ci-dessous.

kubectl get nodes
kubectl get pods --all-namespaces

Et vous obtiendrez le nœud 'k8s-master' en cours d'exécution en tant que cluster 'maître' avec le statut 'prêt', et tous les pods 'kube-system' nécessaires au cluster sont opérationnels.

L'initialisation et la configuration du maître de cluster Kubernetes sont terminées.

Étape 3 - Ajouter des nœuds de travail au cluster Kubernetes

Dans cette étape, nous allons ajouter deux noeuds worker 'worker01' et 'worker02' au cluster Kubernetes.

Connectez-vous au serveur 'worker01' et exécutez la commande kubeadm join que vous obtenez lors de l'initialisation du cluster.

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd

Connectez-vous au serveur 'worker02' et exécutez la commande kubeadm join que vous obtenez à partir de l'initialisation du cluster.

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd

Attendez quelques minutes et revenez au nœud maître 'k8s-master' et vérifiez l'état du nœud.

kubectl get nodes

Vous verrez que ces nœuds de travail 'worker01' et 'worker02' font partie du cluster Kubernetes.

Étape 4 - Tester

Dans cette étape, nous allons déployer le serveur Web Nginx à l'intérieur du cluster. Nous allons déployer le serveur Web Nginx à l'aide du modèle YAML.

Créez un nouveau répertoire nommé 'nginx' et accédez à ce répertoire.

mkdir -p nginx/
cd nginx/

Créez maintenant le fichier YAML de déploiement Nginx "nginx-deployment.yaml" à l'aide de l'éditeur vim.

sudo vim nginx-deployment.yaml

Collez les configurations ci-dessous.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.0
        ports:
        - containerPort: 80

Enregistrez et quittez.

Remarque :

  • Nous créons un nouveau "déploiement" nommé "nginx-deployment".
  • Configurez le libellé de l'application en tant que "nginx" avec des répliques "3".
  • Le 'nginx-deployment' aura des conteneurs nommés 'nginx', basés sur l'image docker 'nginx:1.14.0', et exposera le port HTTP 80 par défaut.

Créez maintenant le déploiement en exécutant la commande kubectl ci-dessous.

kubectl create -f nginx-deployment.yaml

Après avoir créé un nouveau "nginx-deployment", vérifiez la liste des déploiements à l'intérieur du cluster.

kubectl get deployments
kubectl describe deployment nginx-deployment

Vérifiez maintenant les pods Kubernetes et vous verrez le pod 'nginx-deployment-xxx', vérifiez les détails du pod.

kubectl get pods
kubectl describe pods nginx-deployment-6cb5f7bf4f-t5xfh

Vous obtiendrez des pods de déploiement nginx avec 3 répliques sur les nœuds de travail.

Ensuite, nous devons créer un nouveau service pour notre "nginx-deployment".

Créez un nouveau fichier YAML nommé 'nginx-service.yaml'.

vim nginx-service.yaml

Collez la configuration ci-dessous.

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    run: nginx-service
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: nginx

Enregistrez et quittez.

Remarque :

  • Nous créons un nouveau service Kubernetes nommé "nginx-service".
  • Le type de service est "NodePort" avec le port par défaut HTTP TargetPort 80.
  • Le service appartient à l'application nommée "nginx" basée sur notre déploiement "nginx-deployment".

Créez le service Kubernetes à l'aide de la commande kubectl ci-dessous.

kubectl create -f nginx-service.yaml

Vérifiez maintenant tous les services disponibles sur le cluster et vous obtiendrez le "service nginx" dans la liste, puis vérifiez les détails du service.

kubectl get service
kubectl describe service nginx-service

Et vous verrez que le NodePort 'nginx-service' s'exécute sur le port '32649'.

Vérifiez à l'aide de la commande curl sur tous les nœuds de travail.

Sur le worker01.

curl worker01:32649

Vous verrez la page par défaut de Nginx.

Sur le worker02.

curl worker02:32649

L'installation et la configuration du cluster Kubernetes sur Ubuntu 18.04 ont été effectuées avec succès.


Ubuntu
  1. Comment installer Kubernetes sur Ubuntu 18.04

  2. Comment installer et configurer Redis sur Ubuntu 18.04

  3. Comment installer Docker sur Ubuntu 22.04 / 20.04 LTS

  4. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  5. Comment installer et configurer Fail2ban sur Ubuntu 20.04 LTS

Comment installer et configurer Odoo ERP sur Ubuntu 20.04 LTS

Comment installer et configurer MySQL dans Ubuntu 20.04 LTS

Comment installer Docker sur Ubuntu 16.04 LTS

Comment installer et configurer le serveur DNS sur Ubuntu 16.04 LTS

Comment installer Docker sur Ubuntu 18.04 LTS

Comment installer et configurer Kitematic sur Ubuntu Linux