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

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster & SaaS Apps

CoreOS, das Cloud-Softwareentwicklungsunternehmen, das die Container Linux-Distribution verwaltet, hat kürzlich die Tectonic-Version 1.64 (31.05.2017) veröffentlicht, die eine schnelle und einfache Möglichkeit bietet, einen Kubernetes-Cluster für die Unterstützung von Web- / mobilen Apps auf AWS oder einem Self- gehostetes Cloud-Server-Netzwerk. Core OS hat über 100 Open-Source-Softwareprojekte in der Unternehmensentwicklung auf GitHub, darunter etcd, flannel, rkt, Ignition, Clair, Matchbox, dex und prometheus-Operatoren. Tectonic kann kostenlos für Kubernetes-Cluster mit bis zu 10 Knoten verwendet werden. Danach gibt es eine Reihe verschiedener Unternehmens-Rechenzentren, & Geschäftslizenzen sind mit professionellem technischen Support erhältlich. Quay.io ist ein weiteres Cloud-SaaS-Produkt, das von CoreOS unter einer proprietären Lizenz angeboten wird und DevOps-Teams bei der Verwaltung von Container-Snapshots mit Docker oder rkt, Kubernetes-Clustern und Container Linux unterstützt, & CoreOS Tectonic wird in großem Maßstab hergestellt. Quay.io enthält Funktionen zur Verwaltung von Container-Snapshots mit integrierter Sicherheit, Analyse, Abrechnung, Überwachung, Repository-Erstellung, automatisierten Sicherungen und Versionskontrolle für Webserver-Stack-Software mit erweiterter GitHub-, Bitbucket- oder Gitlab-Unterstützung (Dockerfile Build Triggers)..


Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

CoreOS ist eines der führenden Softwareunternehmen, das neue Open-Source-Cloud-Lösungen unter Linux entwickelt. Das Unternehmen wurde 2013 von Alex Polvi (CEO), Brandon Philips (CTO) und Michael Marineau in einer Garage in Palo Alto, Kalifornien, gegründet. Polvi hatte verkauft seine Firma Cloudkick zu Rackspace im Jahr 2010 und gründete dann Core OS mit Philips (ehemaliger SUSE Linux Kernel Entwickler & Rackspace-Cloud-Programmierer) & Marineau (von Google). Das ursprüngliche Ziel des Unternehmens bestand im Wesentlichen darin, eine leichtgewichtige Linux-Distribution für Container zu erstellen, die das repliziert, mit dem Google in seinen Rechenzentren gearbeitet hat "Borg". Zu diesem Zeitpunkt war Kubernetes noch nicht öffentlich oder Open-Source veröffentlicht worden. Nach 2014/15, als die Linux Foundation die Verwaltung der Kubernetes-Plattform übernahm, spielte CoreOS eine wichtige Rolle in der Cloud Native Computing Foundation (CNCF). damit “Erleichterung der Zusammenarbeit zwischen Entwicklern und Betreibern bei gemeinsamen Technologien.” In der Folge hat Google auch die Google Container Engine für Kubernetes und Docker (GKE) eingeführt, bei der beide Standards auf den konkurrierenden Cloud-Plattformen von AWS, Azure, OCP, VMware, RHEL usw. angewendet werden. Fast jedes große Cloud-Software-Unternehmen verfügt über Kubernetes Cluster-Webserver-Lösung im Jahr 2017 mit weit verbreiteter Verwendung der etcd & RKT-Software von CoreOS (CloudFoundry, Fedora, ArchLinux). CoreOS Tectonic konkurriert weitgehend mit GKE, RancherOS, Docker Swarm oder der Verwendung von Kubespray als selbst gehostete Hybrid-Cloud-Option für die Bare-Metal-Webserver-Clusterverwaltung auf unabhängiger Basis ("herstellerunabhängig") Rechenzentrumshardware.

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

CoreOS Container Linux wurde entwickelt, um den Anforderungen des berühmten Forschungspapiers von Google aus dem Jahr 2013 zu entsprechen "Das Rechenzentrum als Computer: Eine Einführung in die Konstruktion von Maschinen im Lagermaßstab." (Barroso, Clidaras, & Hölzle) In diesem Artikel wurden die Prinzipien für die Konzeption der Rechenzentrumsinfrastruktur im Cloud-Modell im Gegensatz zum Einzelserver-Design beschrieben. Mit Standardhardware und Millionen von Servern in Unternehmensbereitstellungen müssen Cloud-Netzwerkadministratoren unvermeidliche CPU und RAM einplanen, & anderer Systemhardwarefehler. Mehrere Sicherungskopien und deren Richtigkeit bei einem Geräteausfall sind ein wesentlicher Bestandteil des RAID-Speichers, bei dem dieselben Prinzipien für Cloud-Server in elastischen Clustern über das CAP-Theorem gelten & Paxos-Algorithmus. CoreOS löste diese Probleme mit etcd und ermöglichte Upgrades von Kubernetes-Clustern durch Selbstaktualisierung & Reparieren von Prozessen, die koordinierte asynchrone Updates mithilfe von Neustart-Sperren auf Server übertragen. Dies ermöglicht die einfachere Anwendung von Massenaktualisierungen von Sicherheitspatches in einem Rechenzentrum auf einer großen Anzahl von Rackmount-Servern gleichzeitig. etcd bietet bessere Speicheranwendungen zum Speichern der Konfiguration, privater Schlüssel, Kennwortänderungen und anderer Umgebungsvariablen für Webserver im Falle eines Hardwarefehlers, was es zu einem branchenübergreifenden Standard unter Open Source-Lizenzbedingungen gemacht hat. etcd wird von Google (CFS, GFS, Big Table, Chubby, Spanner), Amazon (E2 Replicated Logs), Microsoft (Boxwood), Hadoop (ZooKeeper) und vielen anderen Cloud-Software-Unternehmen verwendet, um das Problem von Paxos bei der Wahl von Führungskräften zu lösen , Webserver-Sharding, Verlust privater Verschlüsselungsschlüssel, & andere Konfigurationsvariablen mit Hardwarefehler im Rechenzentrum. Docker & rkt-Container isolieren den Web- / Mobilanwendungscode einschließlich der vom Benutzer ausgeführten Eingaben vom Hardware-Betriebssystem, um die isolierte Datensicherheit in der Cloud insgesamt zu verbessern.

Demo-Video: Brandon Philips (Linux-Konferenz 2015 – Auckland, Neuseeland)

CoreOS: Eine Einführung – "Die architektonischen Muster einer großen Plattform ändern sich. Spezielle VMs und Konfigurationsmanagement-Tools werden durch Containerisierung und neue Service-Management-Technologien wie systemd ersetzt. Diese Präsentation gibt einen Überblick über ihre Schlüsseltechnologien, einschließlich etcd, Flotte und Docker. Lernen Sie, wie Sie mit diesen neuen Technologien leistungsfähige, zuverlässige und große verteilte Systeme erstellen." Erfahren Sie mehr über CoreOS, Kubernetes, & Container Linux

Es ist wichtig, die Unterschiede zwischen Anwendungscontainern und Systemcontainern zu verstehen, die als VM fungieren, z. B. VPS, das unter OpenVZ-, KVM-, Xen-, Parallels-, VMware- usw. Plattformen ausgeführt wird. Container bieten einen alternativen Virtualisierungshypervisor, mit dem objektorientierte Lösungen auf verschiedenen Ebenen eines Rechenzentrums mithilfe isolierter Partitionen erstellt werden können. VPS / VMs können in elastischen Clustern innerhalb von Containern installiert und skaliert werden und umgekehrt. Die Kombination von Containerkonfigurationen mit der Vielzahl anderer auf dem Markt verfügbarer Virtualisierungsplattformen kann verwendet werden, um komplexe Lösungen für Unternehmens-IT-, SaaS / PaaS / IaaS-Anbieter, mobile Softwareanwendungen und Webhosting-Unternehmen zu erstellen. Die meisten Containerlösungen enthalten kein dediziertes SSH & Netzwerk-Tools, die für VPS- oder VM-Instanzen charakteristisch sind, aber dies ist Teil dessen, was dazu führt, dass die in der Produktion verwendeten Anwendungscontainer auf den leichtesten verfügbaren Linux-Distributionen basieren. Die derzeitige Praxis in DevOps besteht darin, den vollständigen Linux-Stack für die oberste Codeebene in der Produktion einzubeziehen, der mit allen für das Web erforderlichen spezifischen Servererweiterungen gebündelt ist & mobile Apps durch Build-Pakete oder Binärdateien. Die einzigartige Art und Weise, wie Docker- und RKT-Container den Unix-Kernel und die Unix-API verwenden, führt zu einer Kombination aus isolierten & Globale Namespaces, mit denen Konfigurationsvariablen innerhalb / außerhalb von Containern zugeordnet werden können, um den isolierten Ressourcenverbrauch auf Webserverhardware in Rechenzentren zu verbessern.

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

rkt mit CoreOS, Fedora, ArchLinux, & NixOS – "Die Kernausführungseinheit von rkt ist der Pod, eine Sammlung von einer oder mehreren Anwendungen, die in einem gemeinsam genutzten Kontext ausgeführt werden (die Pods von rkt sind gleichbedeutend mit dem Konzept im Kubernetes-Orchestrierungssystem). Mit rkt können Benutzer verschiedene Konfigurationen (z. B. Isolationsparameter) sowohl auf Pod-Ebene als auch auf der detaillierteren Ebene pro Anwendung anwenden. Die Architektur von rkt bedeutet, dass jeder Pod direkt im klassischen Unix-Prozessmodell (d. h. es gibt keinen zentralen Daemon) in einer eigenständigen, isolierten Umgebung ausgeführt wird. rkt implementiert ein modernes, offenes Standardcontainerformat, die App Container (Appc) -Spezifikation, kann aber auch andere Container-Images ausführen, wie sie mit Docker erstellt wurden." Erfahren Sie mehr über die rkt Container Engine

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

Bauen & Bereitstellen von Containern im Maßstab: "Verwenden Sie Quay.io, um Ihre Container-Builds mit der Integration in GitHub, Bitbucket und mehr zu automatisieren. Quay durchsucht Ihre Container kontinuierlich nach Schwachstellen und gibt Ihnen einen vollständigen Überblick über bekannte Probleme und deren Behebung." Erfahren Sie mehr über Quay.io

Demo-Video: Kelsey Hightower (CoreOS Workshop 2015 – Geekdom, SF)

Container Orchestration mit CoreOS und Kubernetes – "In diesem praktischen Workshop werden moderne Praktiken für die Container-Orchestrierung vermittelt und Beispiele für die Zusammenarbeit von Komponenten bei der Verwaltung eines Clusters von Linux-Containern gezeigt. Mit der Fähigkeit, die Infrastruktur in der Cloud oder auf Bare-Metal-Basis zu betreiben, wird die Sitzung Kubernetes mit CoreOS als Beispiel verwenden, das den Teilnehmern zeigt, wie eine mehrschichtige Webanwendung bereitgestellt und verwaltet wird." Erfahren Sie mehr über CoreOS & Kubernetes

Laut Kelsey Hightower, einem bekannten Kubernetes-Evangelisten, der bei Google gearbeitet hat & CoreOS, Kubernetes konkurriert nicht mit CloudFoundry, Heroku oder OpenDeis als "vollständiger Pfad" für DevOps und Cloud-Hosting-Lösungen in der Produktion. Vielmehr handelt es sich um ein Virtualisierungsframework, das sich hauptsächlich auf die Verwaltung, Planung und Serviceerkennung von Containern spezialisiert hat. Viele konkurrierende PaaS / SaaS-Unternehmen können neue Open Source-Lösungen mit größerer plattformübergreifender Interoperabilität und Datenportabilität zwischen Cloud-Hosting-Anbietern entwickeln. Die Kubernetes-Diensterkennung bezieht sich hauptsächlich auf die Überwachung und Regulierung der Anzahl der Serverknoten in einem elastischen Cluster und die Verwendung von etcd für die Synchronisation zwischen Kopien mit Statusänderungsaktualisierungen. Im Gegensatz zu Docker, das gemeinsam genutzte IP-Adressen für Container verwendet, stellt Kubernetes jedem Pod eine eindeutige IP-Adresse zur Verfügung, während die Kommunikation zwischen allen Serverknoten in einem Netzwerk aufrechterhalten wird. Die eindeutigen IP-Adressen entkoppeln den Web- / Mobilanwendungscode vom zugrunde liegenden Container-Betriebssystem, sodass Programmiersprachenerweiterungen, Webserverplattformen oder angepasste Stapel in der Produktion ausgeführt werden können, die in Tools für die kontinuierliche Veröffentlichung oder Versionskontrolle in DevOps integriert sind. Andere Alternativen zu Docker & rkt Container sind:

  • LXC
  • Wolkengießereigarten
  • Mesos Containerizer
  • systemd-nspawn
  • Google lmctfy (nicht mehr vorhanden)

Auftragsplanung, Serviceerkennung, & Clusterverwaltung sind die Hauptaspekte der Rechenzentrumsarchitektur, die Container für Webservernetzwerke verbessern. Vor den Fortschritten bei CoreOS, RancherOS und anderen Container Linux-Lösungen verwendeten Programmierer in der ersten Phase des Cloud-Hostings Chef / Puppet-Skripte, um Build-Snapshots für automatisierte Container-Installationen in großem Maßstab gemeinsam zu nutzen. Container erleichtern die Unterstützung mandantenfähiger Python-, Java-, Nginx-, MySQL-, OpenSSL- usw. Apps zur Laufzeit. Container bieten Entwicklern außerdem mehr Flexibilität bei der Verwaltung von aktivem Code zwischen Aktualisierungen der Erweiterungsplattform, um Webserver gepatcht zu halten und gleichzeitig sicherzustellen, dass fortlaufende Sicherheitsupdates den Produktionscode nicht beschädigen. Da dies in der Praxis sprichwörtlich schwierig ist, besteht das Prinzip von Container Linux darin, das Betriebssystem einfach zu halten. Indem nur die Kernel-Sicherheit aufrechterhalten wird und die Kernel-API unter Linux niemals beschädigt wird, können Container mit allen Erweiterungen im Benutzerbereich ausgeführt werden & Tools isoliert mit größerer Gesamtsicherheit bei der mandantenfähigen Netzwerkverwaltung.

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

CoreOS Container Linux – "Kubernetes ist eine leistungsstarke Container-Management-Software, die von Google inspiriert wurde’s Betriebserfahrung mit Containern. Wesentliche Funktionen wie Serviceerkennung, automatischer Lastausgleich, Containerreplikation und mehr sind integriert’s Alle werden über eine HTTP-API betrieben … Linux-Container bieten sowohl Anwendungsentwicklern als auch Betriebsteams zahlreiche Vorteile. Container Linux ermöglicht nur die Installation von Software als Container. Dies ist eine wichtige Abstraktionsschicht zwischen dem Betriebssystem und den oben ausgeführten Anwendungen (und Abhängigkeiten)." Weitere Informationen zu Container Linux

Konzeptvideo: etcd v 3 – Brandon Philips (CTO / Mitbegründer CoreOS)

Floß: Verteiltes Konsensprotokoll – "etcd ist in Go geschrieben, das eine hervorragende plattformübergreifende Unterstützung, kleine Binärdateien und eine großartige Community bietet. Die Kommunikation zwischen etcd-Maschinen erfolgt über den Raft-Konsensalgorithmus." Erfahren Sie mehr über das Raft DCP

Das Kubernetes-System ermöglicht die Verwendung verschiedener Komponenten bei der automatischen Skalierung von Cluster-Ebenen von Webserverknoten, z. B. Terraform, Fleet (ähnlich wie System D), Mesos, CoreOS Tectonic, Docker Swarm usw., wobei etcd die entscheidende Komponente ist ( ähnlich wie Locksmith), das die Statusänderungen aufgrund von Benutzervariablen-Eingabeänderungen über elastische Cluster hinweg koordiniert, wobei viele gleichzeitige Ausführungsprozesse isoliert ausgeführt werden. Marionette & Chef Scripting kann ebenfalls implementiert werden. Auf diese Weise können Systemadministratoren Parameter festlegen, z. B. das Ausführen von 100 Instanzen einer SaaS-Anwendung (Website oder mobile App) mit 1 GB RAM, und der Kubernetes-Scheduler verwaltet die Ebenen über Systemressourcen hinweg, z. B. ein Thermometer, das Server skaliert und Knoten herunterfährt wie vom Netzwerkstatus gefordert. Aus diesem Grund wird nicht empfohlen, große Builds mit vielen gespeicherten statischen Dateien auf den replizierten container-basierten Webservern zu verwenden. Dies führt zu einer API-gesteuerten Cloud-Speicherfunktionalität, auf die alle Webserver mit elastischem Knoten gemäß den Anforderungen von https-Verkehrsanforderungen zurückgreifen können . Auf diese Weise können auch Mechanismen zur Diensterkennung (SkyDNS, Discoverd, Confd, Magic Proxys usw.) die Geolokalisierung von Benutzern anhand von Browseranforderungen in öffentlichen Netzwerken in Beziehung setzen, um einen besseren Lastausgleich zu erzielen, und neue Lösungen für das interne Reverse-Proxy-Datei-Caching in Rechenzentren für erstellen Bessere Webhosting-Leistung.

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

Dockerfile Build in der Cloud – "Möchten Sie Dockerfiles verwenden, um Ihre Bilder zu erstellen? Laden Sie einfach Ihre Docker-Datei (und alle erforderlichen zusätzlichen Dateien) hoch, und wir bauen Ihre Docker-Datei in ein Image ein und übertragen sie in Ihr Repository. Wenn Sie Ihr Dockerfile in GitHub, Bitbucket oder Gitlab speichern, fügen Sie Ihrem Repository einen Build-Trigger hinzu, und wir starten einen Dockerfile-Build für jede Änderung, die Sie vornehmen … Teilen Sie jedes Repository mit so vielen (oder so wenigen) Benutzern wie Ihnen wählen. Benötigen Sie ein Repository nur für Ihr Team? Einfach mit Ihren Teammitgliedern teilen … Möchten Sie mit der Welt teilen? Machen Sie Ihr Repository vollständig öffentlich." Erfahren Sie mehr über Quay.io

Leichte Linux-Distribution für native Kubernetes-Webserver-Cluster und SaaS-Apps

etcd & Kubernetes-Clusterzustände – "etcd ist ein verteilter Schlüsselwertspeicher, der eine zuverlässige Möglichkeit zum Speichern von Daten in einem Cluster von Computern bietet. Es’s Open Source und auf GitHub verfügbar. etcd behandelt Leader-Wahlen während Netzwerkpartitionen ordnungsgemäß und toleriert Maschinenausfälle, einschließlich des Leader." Erfahren Sie mehr über CoreOS & Kubernetes (etcd)

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