Docker et k8s

En 2010, plusieurs jeunes engagés dans l'informatique ont fondé une société appelée «dotCloud» à San Francisco, aux États-Unis.

Cette société fournit principalement des services technologiques de cloud computing basés sur le PaaS. Plus précisément, il s'agit de la technologie des conteneurs liée au LXC.

LXC est la technologie de virtualisation de conteneurs Linux (conteneur Linux)

Plus tard, dotCloud a simplifié et normalisé sa propre technologie de conteneur et l'a nommée Docker.

Après la naissance de la technologie Docker, elle n'a pas attiré l'attention de l'industrie. Et dotCloud, en tant que petite entreprise entrepreneuriale, est également confrontée à une concurrence féroce.

Juste au moment où ils étaient sur le point de ne plus pouvoir persister, l'idée de «l'open source» leur est venue à l'esprit.

Qu'est-ce que "open source"? Open source signifie code open source. Cela consiste à ouvrir le code source du programme secret interne original à tout le monde, puis à laisser tout le monde participer ensemble et contribuer au code et aux opinions.

Open source

Certains logiciels sont open source depuis le début. Il y a aussi des logiciels qui ne peuvent pas être mélangés, et les créateurs ne veulent pas abandonner, ils choisissent donc d'ouvrir le code source. Si vous ne pouvez pas subvenir à vos besoins, vous pouvez manger "Hundred Family Rice".

En mars 2013, Solomon Hykes, 28 ans, l'un des fondateurs de dotCloud et le père de Docker, a officiellement décidé d'ouvrir le projet Docker.

Solomon Hykes (vient de démissionner de Docker cette année)

Si vous ne l'ouvrez pas, c'est incroyable.

De plus en plus d'ingénieurs informatiques ont découvert les avantages de Docker, puis ont afflué pour rejoindre la communauté open source Docker.

La popularité de Docker a augmenté rapidement et la vitesse est à couper le souffle.

Au cours du mois de l'open source, la version 0.1 de Docker est sortie. Tous les mois par la suite, Docker publiera une version. Depuis le 9 juin 2014, la version 1.0 de Docker a été officiellement publiée.

À l'heure actuelle, Docker est devenu la technologie open source la plus populaire du secteur, et non l'une d'entre elles. Même des géants comme Google, Microsoft, Amazon et VMware ont montré leur soutien total.

Après que Docker soit devenu populaire, dotCloud a simplement changé le nom de l'entreprise en Docker Inc.

Pourquoi la technologie Docker et les conteneurs sont-elles si populaires? Pour le dire franchement, c'est parce que c'est «léger».

Avant la technologie des conteneurs, les influenceurs de l’industrie étaient des machines virtuelles. Les représentants de la technologie des machines virtuelles sont VMWare et OpenStack .

Je pense que de nombreuses personnes ont utilisé des machines virtuelles. Une machine virtuelle consiste à installer un logiciel dans votre système d'exploitation, puis à simuler un ou plusieurs «sous-ordinateurs» via ce logiciel.

Machine virtuelle, similaire à "ordinateur enfant"

Dans le "sous-ordinateur", vous pouvez exécuter des programmes comme des ordinateurs normaux, tels que l'ouverture de QQ. Si vous le souhaitez, vous pouvez créer plusieurs "sous-ordinateurs", qui tous ouvrent QQ. Le «sous-ordinateur» et le «sous-ordinateur» sont isolés l'un de l'autre et ne s'affectent pas.

Les machines virtuelles appartiennent à la technologie de virtualisation. Et la technologie de conteneur comme Docker est également une technologie de virtualisation, qui appartient à la virtualisation légère .

Bien qu'une machine virtuelle puisse isoler de nombreux «sous-ordinateurs», elle prend plus d'espace et démarre plus lentement. Les logiciels de machine virtuelle peuvent également coûter de l'argent (comme VMWare).

Et la technologie des conteneurs n'a pas ces lacunes. Il n'a pas besoin de virtualiser l'ensemble du système d'exploitation, seulement un environnement à petite échelle (similaire à un «bac à sable»).

bac à sable

Il démarre rapidement et peut être terminé en quelques secondes. De plus, il a une utilisation élevée des ressources (un hôte peut exécuter des milliers de conteneurs Docker en même temps). De plus, il occupe un très petit espace, une machine virtuelle nécessite généralement quelques Go à des dizaines de Go d'espace, alors qu'un conteneur n'a besoin que de Mo voire de Ko.

Comparaison des conteneurs et des machines virtuelles

Pour cette raison, la technologie des conteneurs a été chaleureusement accueillie et recherchée, et s'est développée rapidement.

Jetons un coup d'œil à Docker en particulier.

Tout le monde doit noter que Docker lui-même n'est pas un conteneur, c'est un outil de création de conteneurs et un moteur de conteneur d'application.

Si vous voulez comprendre Docker, il suffit de regarder ses deux slogans.

La première phrase est " Construire, expédier et exécuter ".

En d'autres termes, «construire, envoyer et exécuter» est une approche à trois volets.

par exemple:

Je suis arrivé sur un terrain vague et je voulais construire une maison, alors j'ai déplacé des pierres, coupé du bois, dessiné des plans et travaillé dessus.

En conséquence, j'ai vécu pendant un certain temps et j'ai voulu déménager dans un autre terrain vague. Pour le moment, selon la méthode précédente, je ne peux que déplacer des pierres, couper du bois, dessiner des dessins et reconstruire des maisons.

Cependant, une vieille sorcière est venue et m'a appris une sorte de magie.

Ce genre de magie peut faire une copie de la maison que j'ai construite, en faire un "miroir" et la mettre dans mon sac à dos.

Quand je suis arrivé sur un autre terrain vague, j'ai utilisé ce "miroir" pour copier une maison, je l'ai mis là-bas et j'ai emménagé avec mes bagages.

que diriez-vous? N’est-ce pas incroyable?

Ainsi, le deuxième slogan de Docker est: " Build Once, the Run Anywhere (build once, use partout) ".

Les trois concepts de base de la technologie Docker sont:

  • Image miroir (Image)

  • Récipient

  • Dépôt

Dans mon exemple à l'instant, le "miroir" dans le package est l' image Docker . Et mon sac à dos est l' entrepôt Docker . Je suis dans l'espace ouvert, et la maison construite par magie est un conteneur Docker .

Pour le dire franchement, cette image Docker est un système de fichiers spécial. En plus de fournir des programmes, des bibliothèques, des ressources, la configuration et d'autres fichiers requis par le runtime du conteneur, il contient également certains paramètres de configuration (tels que les variables d'environnement) préparés pour le runtime. L'image ne contient aucune donnée dynamique et son contenu ne sera pas modifié après sa création.

En d'autres termes, chaque fois qu'une maison est changée, la maison est la même, mais les nécessités quotidiennes et autres sont ignorées. Celui qui vit est responsable de l'achat.

Chaque image miroir peut se transformer en une sorte de maison. Eh bien, je peux avoir plusieurs miroirs!

En d'autres termes, j'ai construit une villa de style européen et généré une image miroir. Un autre copain a peut-être construit une maison avec cour chinoise, qui a également créé une image miroir. Et mon pote, a construit une maison africaine au toit de chaume, qui a également généré une image miroir. . .

De cette façon, nous pouvons échanger des images miroir. Ne serait-il pas génial que vous utilisiez la mienne et que j'utilise la vôtre?

Depuis, il est devenu un grand entrepôt public.

Le service Docker Registry (similaire aux administrateurs d'entrepôt) est responsable de la gestion des images Docker .

Aucun miroir créé par quiconque n'est légal. Et si quelqu'un construisait une maison problématique?

Par conséquent, le service Docker Registry est très strict dans la gestion des images.

Le service public de registre le plus couramment utilisé est le Docker Hub officiel , qui est également le registre par défaut et contient un grand nombre d'images officielles de haute qualité.

D'accord, après avoir parlé de Docker, tournons notre attention vers K8S.

Lorsque la technologie de conteneur Docker battait son plein, tout le monde a constaté que si vous souhaitez appliquer Docker à des implémentations métier spécifiques, il y a des difficultés - pas faciles dans tous les aspects de l'orchestration, de la gestion et de la planification. Par conséquent, les gens ont un besoin urgent d'un système de gestion pour une gestion plus avancée et plus flexible de Docker et des conteneurs.

À ce moment, K8S est apparu.

K8S est une plate-forme de gestion de cluster basée sur des conteneurs. Son nom complet est kubernetes.

Le mot Kubernetes vient du grec, signifiant barreur ou navigateur. K8S est son abréviation, remplaçant les 8 caractères "ubernete" par "8".

Contrairement à Docker, le créateur de K8S est un géant de l'industrie bien connu - Google .

Cependant, K8S n'est pas une nouvelle invention. Son prédécesseur est le système Borg sur lequel Google travaille depuis plus d'une décennie .

K8S a été officiellement annoncé et open source par Google en juin 2014.

En juillet de la même année, des entreprises telles que Microsoft, Red Hat, IBM, Docker, CoreOS, Mesosphere et Saltstack ont ​​rejoint K8S les unes après les autres.

L'année suivante, VMware, HP, Intel et d'autres sociétés se sont également jointes.

En juillet 2015, Google a officiellement rejoint la Fondation OpenStack. Dans le même temps, Kuberentes v1.0 a été officiellement publié.

Actuellement, la version de kubernetes a été développée vers la V1.13.

L'architecture de K8S est un peu compliquée, examinons-la brièvement.

Un système K8S est généralement appelé un cluster K8S (cluster) .

Ce cluster se compose principalement de deux parties:

  • Un nœud maître (nœud maître)

  • Un groupe de nœuds Node (nœuds de calcul)

C'est clair en un coup d'œil: le nœud maître est principalement responsable de la gestion et du contrôle. Le nœud de nœud est un nœud de charge de travail, qui est un conteneur spécifique.

Examinez de plus près ces deux types de nœuds.

Le premier est le nœud maître.

Le nœud maître comprend le serveur API, le planificateur, le gestionnaire de contrôleur, etc.

Le serveur API est l'interface externe de l'ensemble du système pour les clients et les autres composants à appeler, ce qui équivaut à un «business hall».

Le planificateur est responsable de la planification des ressources au sein du cluster, ce qui équivaut à une «salle de répartition».

Le contrôleur manager est responsable de la gestion du contrôleur, ce qui équivaut au "master manager".

Ensuite, il y a le nœud Node .

Les nœuds de nœud incluent Docker, kubelet, kube-proxy, Fluentd, kube-dns (facultatif) et Pod .

Pod est l'unité d'exploitation la plus basique de Kubernetes. Un pod représente un processus en cours d'exécution dans le cluster et il encapsule un ou plusieurs conteneurs étroitement liés. En plus des pods, K8S a également le concept de service.Un service peut être considéré comme un ensemble d'interfaces d'accès externes pour les pods qui fournissent le même service. Ce paragraphe n'est pas facile à comprendre, alors sautez-le.

Il va sans dire que Docker crée des conteneurs.

Kubelet est principalement responsable de la surveillance du Pod affecté à son Node, y compris la création, la modification, la surveillance, la suppression, etc.

Kube-proxy est principalement chargé de fournir un proxy pour les objets Pod.

Fluentd est principalement responsable de la collecte, du stockage et des requêtes des journaux.

N'est-ce pas un peu gênant? Hélas, il est vraiment difficile de clarifier les choses en quelques mots, alors allez-y et sautez-le.

Docker et K8S ont été introduits, mais l'article n'est pas terminé.

La partie suivante est destinée aux ingénieurs du réseau central et même à tous les ingénieurs en communication .

De la 1G il y a des décennies à la 4G aujourd'hui et à la 5G à l'avenir, les communications mobiles ont subi des changements révolutionnaires, tout comme le réseau central.

Cependant, si vous observez attentivement ces changements, vous constaterez que le soi-disant réseau central n'a pas changé en substance, ce n'est rien de plus qu'un grand nombre de serveurs. Les différents éléments du réseau central sont différents serveurs et différents nœuds informatiques.

Ce qui a changé, c'est la forme et l'interface de ces «serveurs»: forme, de la carte simple d'armoire à la lame d'armoire, de la lame d'armoire au serveur lame à usage général X86; interface, du câble principal au câble réseau, du câble réseau à 成fibre.

Même si cela change, c'est le serveur, le nœud de calcul et le processeur.

Puisqu'il s'agit d'un serveur, il est appelé à s'engager sur la voie de la virtualisation comme le cloud computing informatique. Après tout, la virtualisation présente trop d'avantages, tels que le faible coût susmentionné, une utilisation élevée, une flexibilité totale, une planification dynamique, etc.

Au cours des dernières années, tout le monde pensait que la machine virtuelle était la forme ultime du réseau central. Il semble qu'il soit plus susceptible d'être conteneurisé . NFV (Network Element Function Virtualization), qui a souvent été dit ces dernières années, peut également être changé en NFC (Network Element Function Containerization).

Prenons l'exemple de VoLTE: si vous suivez la méthode 2G / 3G précédente, un grand nombre d'équipements dédiés seront nécessaires pour servir d'éléments de réseau différents pour EPC et IMS.

Éléments de réseau liés à VoLTE

Après l'adoption des conteneurs, il est probable qu'un seul serveur soit nécessaire, une douzaine de conteneurs sont créés et différents conteneurs sont utilisés pour exécuter des programmes de service de différents éléments du réseau.

Ces conteneurs peuvent être créés ou détruits à tout moment. Il peut également devenir plus grand, plus petit, plus fort et plus faible à volonté sans arrêter la machine et équilibrer dynamiquement les performances et la consommation d'énergie.

Simplement parfait!

À l'ère de la 5G, le réseau central adopte une architecture de microservices, qui convient également parfaitement aux conteneurs.L'architecture monolithique devient une architecture de microservices, ce qui équivaut à transformer un multitalent en N types spécialisés. Chaque type spécialisé est affecté à un conteneur isolé, ce qui donne le plus grand degré de flexibilité.

Division raffinée du travail

Selon cette tendance de développement, dans le système de communication mobile, à l'exception de l'antenne, les parties restantes sont susceptibles d'être virtualisées. Le réseau central est le premier, mais pas le dernier. Le réseau central après la virtualisation doit être classé comme informatique plutôt que comme communications. La fonction du réseau central n'est qu'une fonction logicielle courante dans le conteneur.

Quant aux ingénieurs cœur de réseau présents ici, félicitations, nous sommes sur le point de réussir bientôt une transformation!

Je suppose que tu aimes

Origine blog.csdn.net/qq_30264689/article/details/102817944
conseillé
Classement