CoreOS Tectonic: Container Linux, Quay.io, rkt, & etcd

Distribution Linux légère pour les clusters de serveurs Web natifs Kubernetes & Applications SaaS

CoreOS, la société de développement de logiciels cloud qui gère la distribution Container Linux, a récemment publié la version 1.64 (5/31/2017) de Tectonic, qui fournit un moyen rapide et facile de déployer un cluster Kubernetes pour la prise en charge d’applications Web / mobiles sur AWS ou un auto- réseau de serveurs cloud hébergés. Core OS a plus de 100 projets de logiciels open source en cours de développement sur GitHub, notamment etcd, flannel, rkt, Ignition, Clair, Matchbox, dex et prometheus-operators. Tectonic est gratuit à utiliser pour les clusters Kubernetes jusqu’à 10 nœuds, après quoi un certain nombre d’entreprises différentes, un centre de données, & des licences commerciales sont disponibles avec un support technique professionnel. Quay.io est un autre produit SaaS cloud offert par CoreOS sous licence propriétaire qui aide les équipes DevOps à gérer les instantanés de conteneurs avec Docker ou rkt, les clusters Kubernetes, Container Linux, & CoreOS Tectonic en production à grande échelle. Quay.io comprend des fonctionnalités de gestion des instantanés de conteneurs avec sécurité intégrée, analyses, facturation, surveillance, versions de référentiel, sauvegardes automatisées et contrôle de version pour le logiciel de pile de serveurs Web avec prise en charge avancée de GitHub, Bitbucket ou Gitlab (déclencheurs de construction Dockerfile).


Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

CoreOS est l’une des principales sociétés de logiciels développant de nouvelles solutions cloud open source sur Linux et la société a été lancée dans un garage de Palo Alto, en Californie, par Alex Polvi (PDG), Brandon Philips (CTO) et Michael Marineau en 2013. Polvi avait vendu son entreprise Cloudkick à Rackspace en 2010, puis a formé Core OS avec Philips (ancien développeur de noyau SUSE Linux & Programmeur cloud Rackspace) & Marineau (de Google). L’objectif initial de la société était essentiellement de créer une distribution Linux légère pour les conteneurs qui reproduirait ce que Google avait opéré dans leurs centres de données avec "Borg". A cette époque, Kubernetes n’avait pas encore été publié ou open source, mais après 2014/15, lorsque la gouvernance de la plate-forme Kubernetes a été reprise par la Linux Foundation, CoreOS a joué un rôle majeur dans la Cloud Native Computing Foundation (CNCF) afin de “aider à faciliter la collaboration entre développeurs et opérateurs sur des technologies communes.” Google a également lancé par la suite le Google Container Engine pour Kubernetes et Docker (GKE) avec l’utilisation des deux normes adoptées par les plates-formes cloud concurrentes d’AWS, Azure, OCP, VMware, RHEL, etc. Presque toutes les grandes sociétés de logiciels cloud ont un Kubernetes solution de serveur Web en cluster en 2017 avec une utilisation généralisée de etcd & logiciel rkt par CoreOS (CloudFoundry, Fedora, ArchLinux). CoreOS Tectonic rivalise largement avec GKE, RancherOS, Docker Swarm, ou utilise Kubespray comme option de cloud hybride auto-hébergé pour la gestion de cluster de serveurs Web bare-metal sur des serveurs indépendants ("indépendant du vendeur") matériel du centre de données.

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

CoreOS Container Linux a été développé pour répondre aux besoins décrits dans le célèbre document de recherche publié par Google en 2013 connu sous le nom de "Le centre de données comme ordinateur: une introduction à la conception de machines à l’échelle de l’entrepôt." (Barroso, Clidaras, & Hölzle) Cet article décrit les principes qui sous-tendent la conception d’une infrastructure de centre de données sur le modèle cloud par opposition à la conception à serveur unique. Avec du matériel de base et des millions de serveurs dans les déploiements d’entreprise, les administrateurs de réseau cloud doivent planifier l’inévitable CPU, RAM, & autre défaillance matérielle du système. Plusieurs copies de sauvegarde et la véracité de chacune en cas de défaillance d’unité est une partie importante du stockage RAID où les mêmes principes s’appliquent aux serveurs cloud dans des clusters élastiques via le théorème CAP & Algorithme Paxos. CoreOS a résolu ces problèmes avec etcd permettant des mises à niveau des clusters Kubernetes par auto-mise à jour & réparation des processus qui envoient des mises à jour asynchrones coordonnées aux serveurs à l’aide de verrous de redémarrage. Cela permet une application plus facile des mises à jour en masse des correctifs de sécurité dans un centre de données sur un grand nombre de serveurs montés en rack à la fois. etcd propose de meilleures applications de stockage pour enregistrer la configuration, les clés privées, les changements de mot de passe et d’autres variables d’environnement pour les serveurs Web en cas de défaillance matérielle, ce qui en fait un standard majeur de l’industrie sur toutes les plateformes en termes de licence open source. etcd est utilisé par Google (CFS, GFS, Big Table, Chubby, Spanner), Amazon (E2 Replicated Logs), Microsoft (Boxwood), Hadoop (ZooKeeper) et de nombreuses autres sociétés de logiciels cloud pour résoudre le problème de Paxos lors de l’élection des leaders , partitionnement du serveur Web, perte de clés de chiffrement privées, & autres variables de configuration avec défaillance matérielle du centre de données. Docker & les conteneurs rkt isolent le code de l’application web / mobile, y compris les entrées exécutées par l’utilisateur à partir du système d’exploitation matériel pour une meilleure sécurité globale des données isolées dans le cloud.

Vidéo de démonstration: Brandon Philips (Linux Conference 2015 – Auckland, NZ)

CoreOS: une introduction – "Les modèles architecturaux d’une plate-forme à grande échelle changent. Les machines virtuelles dédiées et les outils de gestion de configuration sont remplacés par la conteneurisation et les nouvelles technologies de gestion des services comme systemd. Cette présentation donnera un aperçu de leurs technologies clés, y compris etcd, flotte et docker. Venez apprendre à utiliser ces nouvelles technologies pour construire des systèmes distribués performants, fiables et de grande taille." En savoir plus sur CoreOS, Kubernetes, & Container Linux

Il est important de comprendre les différences entre les conteneurs d’application et les conteneurs système qui fonctionnent comme une machine virtuelle, tels que les VPS fonctionnant sous les plates-formes OpenVZ, KVM, Xen, Parallels, VMware, etc. Les conteneurs fournissent un hyperviseur de virtualisation alternatif qui peut être utilisé pour créer des solutions orientées objet sur différentes couches d’un centre de données grâce à l’utilisation de partitions isolées. Les VPS / VM peuvent être installés et mis à l’échelle en grappes élastiques dans des conteneurs et vice versa. La combinaison de configurations de conteneurs avec la grande variété d’autres plates-formes de virtualisation disponibles sur le marché peut être utilisée pour créer des solutions complexes pour l’informatique d’entreprise, les fournisseurs SaaS / PaaS / IaaS, les applications logicielles mobiles et les sociétés d’hébergement Web. La plupart des solutions de conteneurs n’incluent pas le SSH dédié & des outils de mise en réseau caractéristiques des instances VPS ou VM, mais cela fait partie des raisons pour lesquelles les conteneurs d’applications utilisés en production sont basés sur les distributions Linux les plus légères disponibles. La pratique actuelle dans DevOps consiste à inclure la pile Linux complète pour la couche supérieure de code dans la production, avec toutes les extensions de serveur spécifiques requises par le Web & applications mobiles via des packages de construction ou des binaires. La façon unique dont les conteneurs Docker et rkt utilisent le noyau Unix et l’API Unix conduit à une combinaison de & des espaces de noms globaux qui peuvent être utilisés pour mapper des variables de configuration à l’intérieur / à l’extérieur des conteneurs pour une meilleure consommation de ressources isolées sur le matériel du serveur Web dans les centres de données.

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

rkt avec CoreOS, Fedora, ArchLinux, & NixOS – "L’unité d’exécution principale de rkt est le pod, une collection d’une ou plusieurs applications s’exécutant dans un contexte partagé (les pods de rkt sont synonymes du concept dans le système d’orchestration Kubernetes). rkt permet aux utilisateurs d’appliquer différentes configurations (comme les paramètres d’isolement) à la fois au niveau du pod et au niveau plus granulaire par application. L’architecture de rkt signifie que chaque pod s’exécute directement dans le modèle de processus Unix classique (c’est-à-dire qu’il n’y a pas de démon central), dans un environnement autonome et isolé. rkt implémente un format de conteneur standard moderne et ouvert, la spécification App Container (appc), mais peut également exécuter d’autres images de conteneur, comme celles créées avec Docker." En savoir plus sur le moteur de conteneur rkt

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

Construire & Déployer des conteneurs à grande échelle: "Utilisez Quay.io pour automatiser vos builds de conteneurs, avec intégration à GitHub, Bitbucket, et plus encore … Quay analyse continuellement vos vulnérabilités, vous donnant une visibilité complète sur les problèmes connus et comment les corriger." En savoir plus sur Quay.io

Vidéo de démonstration: Kelsey Hightower (CoreOS Workshop 2015 – Geekdom, SF)

Orchestration de conteneurs à l’aide de CoreOS et Kubernetes – "Cet atelier pratique … enseignera les pratiques modernes d’orchestration des conteneurs et montrera des exemples de la façon dont les composants fonctionnent ensemble pour gérer un cluster de conteneurs Linux. Avec sa capacité à alimenter l’infrastructure dans le cloud ou sur du bare-metal, la session utilisera Kubernetes avec CoreOS comme exemple montrant aux participants comment déployer et gérer une application Web à plusieurs niveaux." En savoir plus sur CoreOS & Kubernetes

Selon Kelsey Hightower, un évangéliste bien connu de Kubernetes qui a travaillé chez Google & CoreOS, Kubernetes n’est pas en concurrence avec CloudFoundry, Heroku ou OpenDeis en tant que "chemin complet" pour DevOps et les solutions d’hébergement cloud en production. Il s’agit plutôt d’un cadre de virtualisation principalement spécialisé dans la gestion de conteneurs, la planification et la découverte de services que de nombreuses entreprises PaaS / SaaS concurrentes peuvent créer de nouvelles solutions open source avec une plus grande interopérabilité multiplateforme et une meilleure portabilité des données entre les fournisseurs d’hébergement cloud. La découverte de services Kubernetes concerne principalement la surveillance et la régulation du nombre de nœuds de serveur dans un cluster élastique et l’utilisation de etcd pour la synchronisation entre les copies avec les mises à jour de changement d’état. Contrairement à Docker, qui utilise des adresses IP partagées pour les conteneurs, Kubernetes fournit une adresse IP unique à chaque module tout en maintenant la communication entre tous les nœuds de serveur d’un réseau. Les adresses IP uniques découplent le code d’application Web / mobile du système d’exploitation de conteneur sous-jacent, permettant à toutes les extensions de langage de programmation, plate-forme de serveur Web ou pile personnalisée d’être exécutées en production qui est intégrée avec des outils de publication continue ou de contrôle de version dans DevOps. Autres alternatives à Docker & Les conteneurs rkt sont:

  • LXC
  • Jardin de la fonderie de nuages
  • Containerizer Mesos
  • systemd-nspawn
  • Google lmctfy (disparu)

Planification des tâches, découverte des services, & la gestion des clusters est le principal aspect de l’architecture du centre de données que les conteneurs améliorent pour les réseaux de serveurs Web. Avant les avancées dans CoreOS, RancherOS et d’autres solutions Container Linux, les programmeurs de la première étape de l’hébergement cloud utilisaient des scripts Chef / Puppet pour partager des instantanés de construction pour des installations de conteneurs automatisées à grande échelle. Les conteneurs facilitent la prise en charge des applications Python, Java, Nginx, MySQL, OpenSSL, etc. à locataires multiples lors de l’exécution. Les conteneurs offrent également une plus grande flexibilité aux développeurs pour maintenir le code actif entre les mises à jour de la plate-forme d’extension afin de garder les serveurs Web corrigés tout en garantissant que les mises à jour de sécurité continues ne cassent pas le code de production. Parce que cela est proverbialement difficile dans la pratique, le principe de Container Linux est de garder le système d’exploitation simple. En ne maintenant que la sécurité du noyau et en ne cassant jamais l’API du noyau sous Linux, les conteneurs peuvent s’exécuter dans l’espace utilisateur avec toutes les extensions & outils isolés avec une plus grande sécurité globale dans la gestion de réseau multi-locataire.

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

CoreOS Container Linux – "Kubernetes est un puissant logiciel de gestion de conteneurs inspiré de Google’s expérience opérationnelle avec les conteneurs. Des fonctionnalités essentielles comme la découverte de services, l’équilibrage de charge automatique, la réplication de conteneurs et bien plus sont intégrées.’s tous alimentés via une API HTTP … Les conteneurs Linux offrent de nombreux avantages aux développeurs d’applications et aux équipes d’exploitation. Container Linux permet uniquement d’installer des logiciels en tant que conteneurs, qui est une couche d’abstraction importante entre le système d’exploitation et les applications (et dépendances) exécutées en haut." En savoir plus sur Container Linux

Vidéo conceptuelle: etcd v 3 – Brandon Philips (CTO / Co-fondateur CoreOS)

Radeau: protocole de consensus distribué – "etcd est écrit en Go qui a un excellent support multiplateforme, de petits binaires et une grande communauté derrière. La communication entre les machines etcd est gérée via l’algorithme de consensus Raft." En savoir plus sur le Raft DCP

Le système Kubernetes permet d’utiliser différents composants dans les niveaux de cluster de nœuds de serveur Web à mise à l’échelle automatique, par exemple en utilisant Terraform, Fleet (similaire au système D), Mesos, CoreOS Tectonic, Docker Swarm, etc. où etcd est le composant essentiel ( similaire à Locksmith) qui coordonne les changements d’état des changements d’entrée de variable utilisateur à travers les clusters élastiques avec de nombreux processus d’exécution simultanés en isolation. Fantoche & Les scripts Chef peuvent également être implémentés. De cette manière, les administrateurs système peuvent établir des paramètres tels que l’exécution de 100 instances d’une application SaaS (site Web ou application mobile) avec 1 Go de RAM et le planificateur Kubernetes maintiendra les niveaux sur les ressources système comme un thermomètre pour augmenter la taille des serveurs et arrêter les nœuds tel que requis par l’état du réseau. Pour cette raison, il n’est pas recommandé d’utiliser des versions volumineuses avec de nombreux fichiers statiques stockés dans les serveurs Web basés sur des conteneurs répliqués, ce qui conduit à davantage de fonctionnalités de stockage cloud basées sur l’API sur lesquelles tous les serveurs Web à nœud élastique peuvent s’appuyer, comme requis par les demandes de trafic https. . Cela permet également aux mécanismes de découverte de services (SkyDNS, discoveryd, Confd, proxys magiques, etc.) de relier la géolocalisation des utilisateurs à partir des demandes de navigateur sur les réseaux publics pour un meilleur équilibrage de charge, ainsi que de créer de nouvelles solutions pour la mise en cache de fichiers proxy inverse interne dans les centres de données pour meilleures performances d’hébergement Web.

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

Dockerfile Build dans le Cloud – "Vous souhaitez utiliser Dockerfiles pour créer vos images? Téléchargez simplement votre Dockerfile (et tous les fichiers supplémentaires dont il a besoin) et nous allons construire votre Dockerfile dans une image et le pousser dans votre référentiel. Si vous stockez votre Dockerfile dans GitHub, Bitbucket ou Gitlab, ajoutez un déclencheur de build à votre référentiel et nous commencerons une build Dockerfile pour chaque modification que vous apportez … Partagez n’importe quel référentiel avec autant (ou aussi peu) d’utilisateurs que vous choisir. Besoin d’un référentiel uniquement pour votre équipe? Partagez facilement avec les membres de votre équipe … Vous voulez partager avec le monde? Rendez votre référentiel entièrement public." En savoir plus sur Quay.io

Distribution Linux légère pour les clusters de serveurs Web et les applications SaaS natifs de Kubernetes

etcd & États du cluster Kubernetes – "etcd est un magasin de valeurs de clés distribué qui fournit un moyen fiable de stocker des données sur un cluster de machines. Il’s open-source et disponible sur GitHub. etcd gère avec élégance les élections des leaders pendant les partitions du réseau et tolérera les pannes de machine, y compris le leader." En savoir plus sur CoreOS & Kubernetes (etcd)

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me