当前位置:网站首页>Kubernets Rapid Practical fighting and Core Principle Analysis

Kubernets Rapid Practical fighting and Core Principle Analysis

2022-06-21 12:56:00 51CTO

KubernetesAnalyse du combat rapide et du principe de base_nginx


K8S Vue d'ensemble

1.1 K8S Qu'est - ce que c'est??

K8SDocuments du site officiel:https://kubernetes.io/zh/docs/home/ K8S - Oui.KubernetesNom complet,Originaire du grec,Signifie“Timonier”Ou“Pilote”,Officiellement, c'est:Pour déploiement automatique、Extension et gestion“Conteneurisation(containerized)Application”Le système open source de.Traduit en grand vernaculaire:“K8S Est responsable de la gestion automatisée de l'exploitation et de la maintenance de plusieurs machines croisées Docker La procédure Cluster”.

1.2 K8SCaractéristiques essentielles

  • Découverte de services et équilibrage des charges:Utilisez un mécanisme de découverte de service inconnu sans modifier votre application.
  • Chorégraphie de stockage:Monter automatiquement le système de stockage sélectionné,Inclure le stockage local.
  • SecretEt gestion de la configuration:Déploiement des mises à jourSecretsIl n'est pas nécessaire de reconstruire le miroir du conteneur lors de la configuration avec l'application,Et ne pas exposer les informations secrètes dans la configuration de la pile logicielle.
  • Exécution par lots:En plus des services,KubernetesVous pouvez également gérer vos lots etCICharge de travail,Remplacer les contenants défaillants si désiré.
  • Expansion horizontale:Utilisez une commande simple、UnUIOu basé surCPUL'utilisation agrandit automatiquement l'application.
  • Mise en service et retournement automatiques:KubernetesLes modifications apportées à l'application ou à sa configuration sont mises en ligne étape par étape, Surveiller également la santé de l'application pour s'assurer
  • Assurez - vous de ne pas mettre fin à toutes les instances en même temps .
  • Emballage automatique:Placer automatiquement les conteneurs en fonction des besoins en ressources et d'autres contraintes,Évitez également d'affecter la disponibilité.
  • Auto - guérison:Redémarrer le conteneur défaillant,Remplacer et reprogrammer le conteneur en cas de décès du noeud,Tuer les conteneurs qui ne répondent pas aux contrôles de santé définis par l'utilisateur.

1.3 K8SInstallation de Clusters

ConstructionK8SCluster,Préparez trois2Nucléaire4GMachine virtuelle pour(Mémoire au moins2GCi - dessus),Pour la sélection du système d'exploitationcentos 7Version précédente,Chargez d'abord les trois machines.docker(Référence d'installationdockerCours Docker Explication détaillée et déploiement du micro - service

Effectuer les opérations de commande suivantes sur les trois machines:


      
      
1、Désactiver le pare - feu
systemctl stop firewalld
systemctl disable firewalld

2、Fermer selinux
sed ‐i 's/enforcing/disabled/' /etc/selinux/config # Fermeture permanente
setenforce 0 # Fermeture temporaire
3、Fermer swap
swapoff ‐a # Fermeture temporaire
vim /etc/fstab # Fermeture permanente
#NoteswapÇa marche.
# /dev/mapper/centos‐swap swap swap defaults 0 0

systemctl reboot #Redémarrer en vigueur
free ‐m #Voir ci - dessousswapSi toutes les zones d'échange sont0,Si tout est0EtswapFermeture réussie

4、Définir le nom d'hôte pour chacune des trois machines
hostnamectl set‐hostname <hostname>
Le premier.:k8s‐master
Deuxième.:k8s‐node1
Troisième.:k8s‐node2

5、In k8s‐masterAjout de machineshosts,Exécutez la commande suivante,ipDoit être adapté à votre propre machineip
cat >> /etc/hosts << EOF
192.168.65.160 k8s‐master
192.168.65.203 k8s‐node1
192.168.65.210 k8s‐node2
EOF

6、PontIPv4Le trafic passe àiptables
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge‐nf‐call‐ip6tables = 1
net.bridge.bridge‐nf‐call‐iptables = 1
EOF

sysctl ‐‐system # Entrée en vigueur

7、Définir la synchronisation du temps
yum install ntpdate ‐y
ntpdate time.windows.com

8、Ajouterk8s yumSource
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes‐el7‐x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum‐key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm‐package‐key.gpg
EOF

9、Si vous avez déjà installék8s,Désinstaller d'abord l'ancienne version
yum remove ‐y kubelet kubeadm kubectl

10、Voir les versions que vous pouvez installer
yum list kubelet ‐‐showduplicates | sort ‐r

11、Installationkubelet、kubeadm、kubectl Spécifier la version,Nous utilisonskubeadmMode d'installationk8sCluster
yum install ‐y kubelet‐1.18.0 kubeadm‐1.18.0 kubectl‐1.18.0

12、Démarragekubelet
systemctl enable kubelet
systemctl start kubelet
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.

Ink8s-masterEffectuer l'initialisation sur la machine(Le premier à l'intérieuripL'adresse estk8s-masterMachineip, Changez - le en votre propre machine. ,Deux derrière.ipLe segment réseau ne bouge pas)

      
      
kubeadm init ‐‐apiserver‐advertise‐address=192.168.65.160 ‐‐image‐repository registry.aliyuncs.com/goo
gle_containers ‐‐kubernetes‐version v1.18.0 ‐‐service‐cidr=10.96.0.0/12 ‐‐pod‐network‐cidr=10.244.0.0/16
  • 1.
  • 2.

Le résultat est le suivant après l'exécution : [Impossible de transférer l'image de la chaîne externe,Il peut y avoir un mécanisme antivol à la station source,Il est recommandé de sauvegarder l'image et de la télécharger directement(img-rHBPkaiM-1655448910946)(https://cdn.itjava.top/halo/image-1652951083768.png)]

KubernetesAnalyse du combat rapide et du principe de base_nginx_02

Ink8s-masterExécuter les commandes suivantes sur la machine:


      
      
#Configurer l'utilisation kubectl Outils de commande(SimilairedockerCette commande),Exécuter la commande dans la deuxième boîte rouge de l'image ci - dessus
mkdir ‐p $HOME/.kube
sudo cp ‐i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id ‐u):$(id ‐g) $HOME/.kube/config

#VoirkubectlSi elle peut être utilisée correctement
kubectl get nodes

#Installation Pod Plug - in réseau
kubectl apply ‐f https://docs.projectcalico.org/manifests/calico.yaml
# Si c'est là - haut, calico Le plug - in réseau n'a pas été installé avec succès.
# kubectl apply ‐f
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kubeflannel.yml
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Dans tous lesk8s node La machine exécute les commandes dans la troisième boîte rouge de l'image ci - dessus


      
      
# Oui.node Ajout de noeuds master Dans un cluster de nœuds , Copier l'exécution de la commande dans la troisième boîte rouge de l'image ci - dessus
kubeadm join 192.168.65.160:6443 ‐‐token hbovty.6x82bkdlsk6dfy32 \
‐‐discovery‐token‐ca‐cert‐hash sha256:659511b431f276b2a5f47397677b1dff74838ae5eb18e24135e6dae1b8c45840
  • 1.
  • 2.
  • 3.

Ink8s-masterLa machine exécute la commande View Node


      
      
kubectl get nodes
  • 1.

KubernetesAnalyse du combat rapide et du principe de base_docker_03

Les trois qui viennent d'être installés k8s Les noeuds sont prêts. ,Un grand succès!

Supplément:SinodeImpossible d'ajouter le noeud au cluster, Peut supprimer le noeud ajouter à nouveau pour supprimer k8snode1

Ce noeud,Tout d'abord, master Exécuter les deux commandes suivantes sur le noeud

      
      
kubectl drain k8s‐node1 ‐‐delete‐local‐data ‐‐force ‐‐ignore‐daemonsets
kubectl delete node k8s‐node1
  • 1.
  • 2.

Après exécution par kubectl get node Les commandes peuvent être vues k8snode1Supprimé avec succès Et puis... k8snode1C'est Node Exécutez la commande suivante sur le noeud,De cette façon, le noeud est complètement k8s Déconnecter du cluster,Vous pouvez ensuite exécuter à nouveau la commande pour l'ajouter au cluster

      
      
kubeadm reset
  • 1.

AvecK8SDéploiementNginx Ink8s-masterExécution sur la machine

      
      
Créer une foisdeploymentDéploiement
kubectl create deployment nginx ‐‐image=nginx
kubectl expose deployment nginx ‐‐port=80 ‐‐type=NodePort
# VoirNginxDepodEtserviceInformation
kubectl get pod,svc ‐o wide
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

KubernetesAnalyse du combat rapide et du principe de base_nginx_04

Accès àNginxAdresse: http://N'importe quel noeudip:Dans la figureNginxPort de cartographie externe pour,http://192.168.65.203:30433

KubernetesAnalyse du combat rapide et du principe de base_nginx_05


1.4 K8S Principes fondamentaux de l'architecture

On le sait déjà. K8S Fonctions essentielles:Gestion automatisée de l'exploitation et de l'entretien de plusieurs programmes conteneurisés.Alors K8S Comment??Ici.,Nous apprenons de la macrostructure K8S Des idées de design.Regardez d'abord l'image ci - dessous.:

KubernetesAnalyse du combat rapide et du principe de base_nginx_06

K8S C'est àModèle maître - esclave(Master-Slave Architecture),Oui. Master Le noeud est responsable de l'ordonnancement du noyau、Gestion et o & M,Slave Le noeud exécute le programme de l'utilisateur.Mais dans K8S Moyenne,Le noeud maître est généralement appeléMaster Node Ou Head Node,Et le noeud esclave est appeléWorker Node OuNode. Attention!:Master Node Et Worker Node Est installé séparément K8S De Master Et Woker Serveur physique du composant,Chaque Node Tout correspond. Un serveur physique (Bien que Master Node Peut - être avec l'un d'eux Worker Node Installé sur le même serveur ,Mais la suggestion Master Node Single Déploiement autonome ),Tous les Master Node Et Worker Node C'est fait. K8S Cluster,Plus d'un Cluster peut exister Master Node Et WorkerNode. Voyons d'abord.Master NodeQuels sont les composants:

  • API Server.K8S Demande de service d'entrée pour.API Server Responsable de la réception K8S Toutes les demandes(De UI Interface ou CLI Outils en ligne de commande),Et puis,API Server Sur demande spécifique de l'utilisateur,Pour informer les autres composants.
  • Scheduler.K8S Tous les Worker Node L'ordonnanceur de.Lorsque l'utilisateur veut déployer le Service,Scheduler Choisissez le meilleur WorkerNode(Serveur)Pour déployer.
  • Controller Manager.K8S Tous les Worker Node Le moniteur de.Controller Manager Il y a beaucoup de détailsController, Node Controller、Service Controller、Volume Controller Attendez..Controller Responsable de la surveillance et de l'ajustement desWorker Node État des services du Département supérieur,Comme les exigences des utilisateurs A Déploiement des services 2 Copies,Alors quand l'un des services est mort,,Controller Ça va s'arranger tout de suite,Jean Scheduler Choisissez un autre Worker Node Services de redéploiement.
  • etcd.K8S Services de stockage pour.etcd Stocké K8S Configuration critique et configuration de l'utilisateur pour,K8S Moyenne seulement API Server Pour avoir accès à la lecture et à l'écriture,Les autres composants doivent passer par API Server Pour lire et écrire des données.

Et ensuiteWorker NodeComposants de:

  • Kubelet.Worker Node Moniteur pour,Et Master Node Le communicateur de.Kubelet - Oui. Master Node Placé dansWorker Node Oui.“Ligne oculaire”,Il va régulièrement Master Node Se présenter Node État des services en cours d'exécution ,Et accepter deMaster Node Mesures d'ajustement.Responsable du contrôle du démarrage et de l'arrêt de tous les conteneurs,S'assurer que le noeud fonctionne correctement.
  • Kube-Proxy.K8S Agent réseau pour.Kube-Proxy Responsable Node In K8S Communication réseau pour、 Et équilibrage de la charge pour le trafic réseau externe .
  • Container Runtime.Worker Node Environnement opérationnel pour.C'est - à - dire que l'environnement logiciel nécessaire à la conteneurisation est installé pour s'assurer que le programme conteneurisé fonctionne,Par exemple, Docker EngineEnvironnement opérationnel.
原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/06/202206211232342865.html