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

Comment installer Kubernetes (k8s) 1.7 sur CentOS 7 / RHEL 7

Kubernetes est un cluster et orchestration moteur pour conteneurs docker. En d'autres termes, Kubernetes est un logiciel ou un outil open source utilisé pour orchestrer et gérer les conteneurs Docker dans un environnement de cluster. Kubernetes est également connu sous le nom de k8s et il a été développé par Google et donné à la "fondation Cloud Native Computing"

Dans la configuration de Kubernetes, nous avons un nœud maître et plusieurs nœuds. Les nœuds de cluster sont connus sous le nom de nœud de travail ou Minion. Depuis le nœud maître, nous gérons le cluster et ses nœuds à l'aide de 'kubeadm ' et 'kubectl ' commande.

Kubernetes peut être installé et déployé à l'aide des méthodes suivantes :

  • Minikube (il s'agit d'un cluster Kubernetes à nœud unique)
  • Kops (configuration de kubernetes multi-nœuds dans AWS)
  • Kubeadm (Cluster multi-nœuds dans nos propres locaux)

Dans cet article, nous installerons la dernière version de Kubernetes 1.7 sur CentOS 7 / RHEL 7 avec l'utilitaire kubeadm. Dans ma configuration, je prends trois serveurs CentOS 7 avec une installation minimale. Un serveur agira comme nœud maître et les deux autres serveurs seront des nœuds minion ou worker.

Sur le nœud maître, les composants suivants seront installés

  • Serveur d'API - Il fournit l'API kubernetes en utilisant Jason / Yaml sur http, les états des objets API sont stockés dans etcd
  • Planificateur  - Il s'agit d'un programme sur le nœud maître qui effectue les tâches de planification telles que le lancement de conteneurs dans les nœuds de travail en fonction de la disponibilité des ressources
  • Gestionnaire du contrôleur - Le travail principal du gestionnaire de contrôleur consiste à surveiller les contrôleurs de réplication et à créer des pods pour maintenir l'état souhaité.
  • etcd - Il s'agit d'une base de données de paires de valeurs clés. Il stocke les données de configuration du cluster et de l'état du cluster.
  • Utilitaire Kubectl - Il s'agit d'un utilitaire de ligne de commande qui se connecte au serveur API sur le port 6443. Il est utilisé par les administrateurs pour créer des pods, des services, etc.

Sur les nœuds de travail, les composants suivants seront installés

  • Kubelet – Il s'agit d'un agent qui s'exécute sur chaque nœud de travail, il se connecte à Docker et s'occupe de créer, démarrer et supprimer des conteneurs.
  • Proxy Kube – Il achemine le trafic vers les conteneurs appropriés en fonction de l'adresse IP et du numéro de port de la demande entrante. En d'autres termes, nous pouvons dire qu'il est utilisé pour la traduction du port.
  • Cosse – Le pod peut être défini comme un multiniveau ou un groupe de conteneurs déployés sur un nœud de travail unique ou un hôte docker.

Étapes d'installation de Kubernetes 1.7 sur CentOS 7 / RHEL 7

Effectuez les étapes suivantes sur le nœud maître

Étape 1 :Désactivez SELinux et configurez les règles de pare-feu

Connectez-vous à votre nœud maître kubernetes et définissez le nom d'hôte et désactivez selinux à l'aide des commandes suivantes

~]# hostnamectl set-hostname 'k8s-master'~]# exec bash~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' / etc/sysconfig/selinux

Définissez les règles de pare-feu suivantes.

[[email protected] ~]# firewall-cmd --permanent --add-port=6443/tcp[[email protected] ~]# firewall-cmd --permanent --add-port=2379-2380/ tcp[[email protected] ~]# firewall-cmd --permanent --add-port=10250/tcp[[email protected] ~]# firewall-cmd --permanent --add-port=10251/tcp[[email protégé] ~]# firewall-cmd --permanent --add-port=10252/tcp[[email protected] ~]# firewall-cmd --permanent --add-port=10255/tcp[[email protected] ~] # firewall-cmd --reload[[email protected] ~]# modprobe br_netfilter[[email protected] ~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

Remarque : Si vous n'avez pas votre propre serveur DNS, mettez à jour le fichier /etc/hosts sur les nœuds maître et travailleur

192.168.1.30 k8s-master192.168.1.40 worker-node1192.168.1.50 worker-node2

Désactivez Swap dans tous les nœuds en utilisant "swapoff -a " et supprimez ou commentez les partitions d'échange ou le fichier d'échange du fichier fstab

Étape 2 :Configurer le référentiel Kubernetes

Les packages Kubernetes ne sont pas disponibles dans les référentiels CentOS 7 et RHEL 7 par défaut. Utilisez la commande ci-dessous pour configurer ses référentiels de packages.

[[email protected] ~]# 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 [[email protected] ~]#

Étape 3 :Installez Kubeadm et Docker

Une fois les référentiels de packages configurés, exécutez la commande ci-dessous pour installer les packages kubeadm et docker.

[[email protected] ~]# yum install kubeadm docker -y

Démarrer et activer le service kubectl et docker

[[email protected] ~]# systemctl restart docker &&systemctl enable docker[[email protected] ~]# systemctl restart kubelet &&systemctl enable kubelet

Étape 4 :Initialiser le maître Kubernetes avec "kubeadm init"

Exécutez la commande ci-dessous pour initialiser et configurer le maître kubernetes.

[[email protected] ~]# kubeadm init

La sortie de la commande ci-dessus serait quelque chose comme ci-dessous

Comme nous pouvons le voir dans la sortie, le maître kubernetes a été initialisé avec succès. Exécutez les commandes ci-dessous pour utiliser le cluster en tant qu'utilisateur root.

[[email protected] ~]# mkdir -p $HOME/.kube[[email protected] ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[[email protected] ~]# chown $(id -u):$(id -g) $HOME/.kube/config

Étape 5 :Déployer le réseau de pods sur le cluster

Essayez d'exécuter les commandes ci-dessous pour obtenir l'état du cluster et des pods.

Pour que l'état du cluster soit prêt et que l'état kube-dns soit en cours d'exécution, déployez le réseau de pods afin que les conteneurs de différents hôtes communiquent entre eux. Le réseau POD est le réseau superposé entre les nœuds de travail.

Exécutez la commande ci-dessous pour déployer le réseau.

[[email protected] ~]# export kubever=$(kubectl version | base64 | tr -d '\n')[[email protected] ~]# kubectl apply -f "https://cloud.weave. works/k8s/net?k8s-version=$kubever"serviceaccount "weave-net" createdclusterrole "weave-net" createdclusterrolebinding "weave-net" createddaemonset "weave-net" créé[[email protected] ~]#

Exécutez maintenant les commandes suivantes pour vérifier l'état

 [[e-mail protégé] ~] # kubectl get nœudsName status Âge versionk8s-master ready 1h v1.7.5 [[e-mail protégé] ~] # kubectl get pods - alld-namespacesNamespace name status Ready restarts AgeKube-system etcd-k8s -Master 1/1 Exécution 0 57MKUBE-System Kube-apiserver-K8S-Master 1/1 Running 0 57MKUBE-System Kube-Controller-Manager-K8S-Master 1/1 exécutant 0 57MKUBE-SYSTH KUBE-DNS-2425271678-044WW 3 / 3 Exécution 0 1HKUBE-System Kube-Proxy-9H259 1/1 Running 0 1HKUBE-System Kube-Scheduler-K8S-Master 1/1 Exécution 0 57MKUBE-System Weave-Net-Hdjzd 2/2 Running 0 7m [[Protégé de messagerie ] ~]#

Ajoutons maintenant des nœuds de travail aux nœuds maîtres Kubernetes.

Effectuez les étapes suivantes sur chaque nœud de travail

Étape 1 :Désactivez SELinux et configurez les règles de pare-feu sur les deux nœuds

Avant de désactiver SELinux, définissez le nom d'hôte sur les deux nœuds comme "worker-node1" et "worker-node2" respectivement

~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux~]# firewall-cmd --permanent --add -port=10250/tcp~]# firewall-cmd --permanent --add-port=10255/tcp~]# firewall-cmd --permanent --add-port=30000-32767/tcp~]# firewall-cmd --permanent --add-port=6783/tcp~]# firewall-cmd  --reload~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

Étape 2 : Configurer les référentiels Kubernetes sur les deux nœuds de travail

~]# 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

Étape 3 :Installez kubeadm et le package docker sur les deux nœuds

[[email protected] ~]# yum install kubeadm docker -y[[email protected] ~]# yum install kubeadm docker -y

Démarrer et activer le service docker

[[email protected] ~]# systemctl restart docker &&systemctl enable docker[[email protected] ~]# systemctl restart docker &&systemctl enable docker

Étape 4 :Joindre maintenant les nœuds de travail au nœud maître

Pour joindre des nœuds de travail au nœud maître, un jeton est requis. Chaque fois que le maître kubernetes est initialisé, nous obtenons la commande et le jeton dans la sortie. Copiez cette commande et exécutez-la sur les deux nœuds.

[[email protected] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

La sortie de la commande ci-dessus serait quelque chose comme ci-dessous

[[email protected] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

La sortie serait quelque chose comme ci-dessous

Vérifiez maintenant l'état des nœuds à partir du nœud maître à l'aide de la commande kubectl

 [[e-mail protégé] ~] # kubectl get nœudsName status Âge versionk8s-master ready 2h v1.7.5worker-node1 ready 20m v1.7.5worker-node2 prêt 18m v1.7.5 [[e-mail protégé] ~] #  

Comme nous pouvons le voir, les nœuds maître et travailleur sont à l'état prêt. Cela conclut que kubernetes 1.7 a été installé avec succès et que nous avons également rejoint avec succès deux nœuds de travail. Nous pouvons maintenant créer des pods et des services.

Veuillez partager vos commentaires et commentaires au cas où cet article vous aiderait à installer la dernière version de kubernetes 1.7


Cent OS
  1. Comment installer phpMyAdmin sur RHEL 8 / CentOS 8

  2. Comment installer P7Zip sur RHEL 8 / CentOS 8

  3. Comment installer Icinga 2 sur CentOS 8 / RHEL 8

  4. Comment installer MongoDB sur CentOS 8 / RHEL 8

  5. Comment installer Firefox 10 sur CentOS 6 / RHEL 6

Comment installer maven sur RHEL 8 / CentOS 8

Comment installer cpan sur RHEL 8 / CentOS 8

Comment installer ruby ​​sur RHEL 8 / CentOS 8

Comment installer Docker CE sur RHEL 8 / CentOS 8

Comment installer VirtualBox 6.0 sur CentOS 8 / RHEL 8

Comment installer PHP 7.4 sur CentOS 8 / RHEL 8