GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer un cluster Kubernetes Docker sur CentOS 7

Kubernetes est une plateforme open source de gestion d'applications conteneurisées développée par Google. Il vous permet de gérer, mettre à l'échelle et déployer automatiquement vos applications conteneurisées dans l'environnement en cluster. Avec Kubernetes, nous pouvons orchestrer nos 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 des conteneurs centralisé.

Dans ce didacticiel, je vais vous montrer étape par étape comment installer et configurer Kubernetes sur CentOS 7. Nous utiliserons 1 serveur 'k8s-master' comme maître hôte Kubernetes et 2 serveurs comme nœud Kubernetes, 'node01' et 'noeud02'.

Prérequis

  • 3 serveurs CentOS 7
    • 10.0.15.10      k8s-master
    • 10.0.15.21      node01
    • 10.0.15.22      node02
  • Privilèges root

Qu'allons-nous faire ?

  1. Installation de Kubernetes
  2. Initialisation du cluster Kubernetes
  3. Ajout de node01 et node02 au cluster
  4. Test – Créer le premier module

Étape 1 - Installation de Kubernetes

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

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-ce et kubernetes lui-même.

- Configurer les hôtes

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

vim /etc/hosts

Collez la liste des hôtes ci-dessous.

10.0.15.10      k8s-master
10.0.15.21      node01
10.0.15.22      node02

Enregistrez et quittez.

- Désactiver SELinux

Dans ce didacticiel, nous n'aborderons pas la configuration de SELinux pour Docker, nous allons donc la désactiver.

Exécutez la commande ci-dessous pour désactiver SELinux.

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

- Activer le module noyau br_netfilter

Le module br_netfilter est requis pour l'installation de kubernetes. Activez ce module de noyau afin que les paquets traversant le pont soient traités par iptables pour le filtrage et la redirection de port, et que les pods kubernetes du cluster puissent communiquer entre eux.

Exécutez la commande ci-dessous pour activer le module de noyau br_netfilter.

modprobe br_netfilter
echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

- Désactiver SWAP

Désactivez SWAP pour l'installation de Kubernetes en exécutant les commandes suivantes.

swapoff -a

Puis éditez le fichier '/etc/fstab'.

vim /etc/fstab

Commentez l'UUID de la ligne d'échange comme ci-dessous.

- Installer Docker CE

Installez la dernière version de Docker-ce à partir du référentiel Docker.

Installez les dépendances du package pour docker-ce.

yum install -y yum-utils device-mapper-persistent-data lvm2

Ajoutez le référentiel docker au système et installez docker-ce à l'aide de la commande yum.

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce

Attendez l'installation de docker-ce.

- Installer Kubernetes

Ajoutez le référentiel kubernetes au système centos 7 en exécutant la commande suivante.

cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google. com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/ yum/doc/yum-key.gpg
        https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

Installez maintenant les packages kubernetes kubeadm, kubelet et kubectl à l'aide de la commande yum ci-dessous.

yum install -y kubelet kubeadm kubectl

Une fois l'installation terminée, redémarrez tous ces serveurs.

redémarrage sudo

Connectez-vous à nouveau au serveur et démarrez les services, docker et kubelet.

systemctl start docker &&systemctl enable docker
systemctl start kubelet &&systemctl enable kubelet

- Changer le pilote du cgroup

Nous devons nous assurer que docker-ce et kubernetes utilisent le même "cgroup".

Vérifiez le groupe de contrôle docker à l'aide de la commande docker info.

info docker | grep -i cgroup

Et vous voyez que le docker utilise 'cgroupfs ' en tant que pilote de groupe de contrôle.

Exécutez maintenant la commande ci-dessous pour changer le pilote de groupe de contrôle kuberetes en 'cgroupfs'.

sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Rechargez le système systemd et redémarrez le service kubelet.

systemctl daemon-reload
systemctl restart kubelet

Nous sommes maintenant prêts à configurer le cluster Kubernetes.

Étape 2 - Initialisation du cluster Kubernetes

Dans cette étape, nous allons initialiser la configuration du cluster maître kubernetes.

Déplacez le shell vers le serveur maître 'k8s-master' et exécutez la commande ci-dessous pour configurer le maître kubernetes.

kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16

Remarque :

--apiserver-advertise-address =détermine sur quelle adresse IP Kubernetes doit annoncer son serveur 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 l'adresse IP de la plage.

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

Remarque :

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

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

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

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' s'exécutant en tant que cluster 'maître' avec le statut 'prêt', et vous obtiendrez tous les pods nécessaires au cluster, y compris le 'kube-flannel-ds' pour le pod réseau configuration.

Assurez-vous que l'état de tous les pods du système kube est "en cours d'exécution".

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

Étape 3 - Ajout de node01 et node02 au cluster

Dans cette étape, nous ajouterons node01 et node02 pour rejoindre le cluster 'k8s'.

Connectez-vous au serveur node01 et exécutez la commande kubeadm join comme nous l'avons copié en haut.

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e

Connectez-vous au serveur node02 et exécutez la commande kubeadm join comme nous l'avons copié en haut.

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e

Attendez quelques minutes et revenez au serveur de cluster maître 'k8s-master', vérifiez les nœuds et les pods à l'aide de la commande suivante.

kubectl get nodes
kubectl get pods --all-namespaces

Vous obtiendrez maintenant node01 et node02 a été ajouté au cluster avec le statut "prêt".

node01 et node02 ont été ajoutés au cluster kubernetes.

Étape 4 - Tester la création du premier pod

Dans cette étape, nous allons faire un test en déployant le pod Nginx sur le cluster kubernetes. Un pod est un groupe d'un ou plusieurs conteneurs avec stockage et réseau partagés qui s'exécutent sous Kubernetes. Un pod contient un ou plusieurs conteneurs, tels qu'un conteneur Docker.

Connectez-vous au serveur 'k8s-master' et créez un nouveau déploiement nommé 'nginx' à l'aide de la commande kubectl.

kubectl créer un déploiement nginx --image=nginx

Pour voir les détails de la spécification de déploiement 'nginx', exécutez la commande suivante.

kubectl décrire le déploiement nginx

Et vous obtiendrez la spécification de déploiement du pod nginx.

Ensuite, nous allons exposer le pod nginx accessible via internet. Et nous devons créer un nouveau service NodePort pour cela.

Exécutez la commande kubectl ci-dessous.

kubectl créer le service nodeport nginx --tcp=80:80

Assurez-vous qu'il n'y a pas d'erreur. Vérifiez maintenant le port de nœud et l'adresse IP du service nginx à l'aide de la commande kubectl ci-dessous.

kubectl get pods
kubectl get svc

Vous obtiendrez maintenant que le pod nginx s'exécute maintenant sous l'adresse IP du cluster '10.160.60.38' port 80, et l'adresse IP principale du nœud '10.0.15.x' sur le port '30691'.

Depuis le serveur "k8s-master", exécutez la commande curl ci-dessous.

nœud de boucle01:30691

nœud de boucle02:30691

Le pod Nginx a maintenant été déployé sous le cluster Kubernetes et est accessible via Internet.

Accédez maintenant à partir du navigateur Web.

http://10.0.15.10:30691/

Et vous obtiendrez la page par défaut de Nginx.

Sur le serveur node02 - http://10.0.15.11:30691/

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


Cent OS
  1. Comment installer Docker sur CentOS 7

  2. Comment installer Kubernetes sur Ubuntu 18.04

  3. Comment installer un cluster Kubernetes sur CentOS 7

  4. Comment installer Docker sur CentOS 7 / RHEL 7

  5. Comment installer Docker dans CentOS

Comment installer Rancher sur CentOS 8

Comment installer Docker sur CentOS 7

Comment installer Docker Compose sur CentOS 7

Comment installer Docker sur CentOS 8

Comment installer Kubernetes sur CentOS 8

Comment installer le cluster Kubernetes sur CentOS 8