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

Comment configurer Kubernetes 1.5 avec kubeadm sur CentOS

La nouvelle version de Kubernetes est sortie, nous voici donc avec un autre article sur Kubernetes. Avec Kubernetes 1.5, le kubeadm est toujours en alpha, et il n'est pas recommandé de l'utiliser en production car il ne supporte toujours pas l'équilibreur de charge. Nous allons installer un magasin de chaussettes en ligne bien connu en tant que démo, et nous utiliserons nodeport pour exposer le service.

Installer Kubernetes 1.5 sur tous les nœuds

Ajoutons un référentiel Kubernetes pour CentOS :

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetesbaseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0EOF

Après avoir ajouté le référentiel, nous devons désactiver SElinux car il ne fonctionne pas très bien avec kubernetes. Pour le désactiver momentanément, tapez

setenforce 0

Pour le faire persister après le redémarrage, utilisez nano pour modifier le fichier de configuration SElinux comme ceci :

nano /etc/selinux/config

et assurez-vous que la ligne SELINUX est définie sur permissive ou désactivée :

SELINUX=disabled

Enregistrez le fichier et nous pourrons continuer à installer les packages requis.

yum install docker kubelet kubeadm kubectl kubernetes-cni

Pour activer le démarrage automatique de docker au démarrage, exécutez cette commande :

systemctl enable docker

Et pour le démarrer maintenant, exécutez ce qui suit.

systemctl start docker

Faisons ensuite la même chose pour kubelet

systemctl enable kubelet

systemctl start kubelet

Configuration du cluster

La première chose que nous devons faire est de décider du maître de notre nouveau cluster. Si tous les nœuds sont configurés comme ci-dessus, nous exécutons ensuite notre nœud maître désigné avec la commande suivante.

kubeadm init

Notez que vous ne pouvez pas exécuter cette commande deux fois, vous devrez démonter le cluster avant de l'exécuter une deuxième fois. Le résultat ressemblera à ceci :

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

Installation du réseau de pods et ajout de nœuds à un cluster

Dans la partie ci-dessus, nous avons initialisé le cluster master, et nous sommes entrés dans la dernière commande de ligne avec un jeton que nous utiliserons pour ajouter des nœuds. Mais avant cela, nous devons installer le réseau de pods.

kubectl apply -f https://git.io/weave-kube

Il existe de nombreuses façons d'avoir un réseau de pods, mais celle ci-dessus est peut-être la plus simple. Il utilise Container Network Interface ou CNI, qui est la norme proposée pour les conteneurs de mise en réseau sous Linux.

Ensuite, nous pouvons ajouter des nœuds au cluster en exécutant cette commande sur tous les nœuds

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

Le jeton est nettoyé, de sorte que vous ne pouvez pas ajouter de nœuds à mon cluster. Ensuite, permettons aux pods de s'exécuter sur le maître et pas seulement sur les nœuds.

kubectl taint nodes --all dedicated-

Après cela, nous pouvons vérifier les nœuds pour voir si tous sont en ligne.

kubectl get nodes

Exemple d'installation de microservices

Il existe un exemple simple de microservices que nous utiliserons pour tester notre cluster. C'est une boutique en ligne de chaussettes.

Nous allons d'abord ajouter un espace de noms magasin de chaussettes

kubectl create namespace sock-shop

Et puis nous créons le service

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

Après cela, nous devons attendre un certain temps pour que les conteneurs soient créés, puis nous pouvons essayer de visiter le nouveau site. Pour le visiter, il faut connaître son adresse. Examinons le service

kubectl describe svc front-end -n sock-shop

Cela vous donnera une sortie similaire à celle-ci

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

La ligne en gras est mise en surbrillance par moi car nous avons besoin du numéro de port utilisé par le service. Nous devons combiner le numéro de port avec l'adresse de l'un de nos nœuds, et nous arriverons sur le site.

Conclusion

Nous avons donc réussi à configurer le cluster Kubernetes 1.5 avec kubeadm sur CentOS 7. Dans notre cas, il s'agit d'un cluster à trois nœuds, mais kubeadm vous permet de faire évoluer facilement le cluster en ajoutant de nouveaux nœuds. Assurez-vous de garder votre jeton privé car avec un jeton et une adresse IP publique, n'importe qui peut ajouter des nœuds à votre cluster. Sur ce, nous terminons cet article, merci d'avoir lu et bonne journée.


Cent OS
  1. Comment installer CentOS 8 (avec captures d'écran)

  2. Comment surveiller Kubernetes avec Prometheus

  3. Comment installer Python 3 sur CentOS 7 avec SCL

  4. Comment configurer Pure-FTPD avec MySQL sur CentOS et RedHat

  5. Comment configurer les clés SSH sur CentOS 8

Comment configurer un serveur de sauvegarde centralisé avec Amanda sur CentOS 7

Comment configurer Openshift Origin sur CentOS 7

Comment configurer Percona Cluster avec HAproxy Loadbalancer sur CentOS 7

Comment configurer MariaDB Galera Cluster avec HAproxy sur CentOS 7

Comment installer Kubernetes sur CentOS 8

Comment installer Kubernetes avec Minikube sur CentOS 8