Beste antwoord
OpenStack is Infrastructure as a Service (IaaS) cloud. Het geeft gebruikers een interface om systemen van een specifieke cpu / geheugen / schijf / netwerk te starten met behulp van een image gebaseerd op een bepaald besturingssysteem (+ andere functionaliteiten). De eindgebruiker kan beslissen hoe hij het systeem gebruikt nadat Openstack een systeem / vm heeft aangemaakt. Hij / zij kan een applicatie naar keuze installeren, enz. En hun werklast uitvoeren. OpenStack ondersteunt meerdere Virtualization Hypervisors.
OpenShift is Platform as a Service (PaaS) -cloud. Het geeft gebruikers een interface om een applicatieplatform zoals jboss / python te selecteren en hun werklast direct uit te voeren met de applicatiespecifieke code / configuratie die moet worden uitgevoerd. Dit wordt geïmplementeerd met behulp van container / pods. Men kan het register van Red Hat gebruiken voor geteste / gecertificeerde containers of ook Docker Register of andere registers van derden gebruiken.
Antwoord
Er is niet één manier om te vergelijken, omdat ze meestal verschillende dingen. Dat gezegd hebbende, zal ik eerst proberen de noodzaak voor elk van deze te definiëren en ze aan elkaar te koppelen.
Laten we beginnen met de onderkant van de stapel. U hebt een infrastructuur nodig om uw servers te laten draaien. Wat zou je kunnen doen? U kunt een VPS-provider zoals DigitalOcean gebruiken, of AWS gebruiken.
Wat als u om een niet-technische reden AWS niet kunt gebruiken? Er is bijvoorbeeld een wettelijke naleving die stelt dat de gegevens die ik opsla en de servers die ik gebruik zich in dezelfde geografie bevinden als de klanten die ik bedien, en dat AWS hiervoor geen regio heeft?
Dit is waar OpenStack binnenkomt. Het is een platform om uw infrastructuur te beheren. Zie het als een open source-implementatie van AWS die u kunt draaien op bare metal datacenters.
Vervolgens gaan we de stapel op. We willen een efficiënte manier om onze app te verpakken en te verzenden. Beschouw een voorbeeld uit de echte wereld waarin u een vaste hoeveelheid autos, kolen en katoen van punt A naar punt B wilt verplaatsen. We stapelen ze gewoon niet allemaal op in het schip en sturen het weg! We gebruiken containers. Een container is een gestandaardiseerde eenheid die zorgt voor de juiste isolatie en verpakking van uw goederen, zodat ze efficiënt kunnen worden verplaatst.
Bron: Containers op een vrachtschip foto door Axel Ahoi (@axelahoi) op Unsplash
Docker is het software-equivalent van een fysieke container. Het biedt isolatie en verpakking voor uw apps. U kunt ze gemakkelijk schalen. Er zijn veel technologieën voor containerisering, maar Docker is de dominante.
Je realiseert je dat Docker je zoveel voordelen biedt en je gaat er meer van gebruiken. U “containerize” uw applicaties en verzendt ze naar productie. Al snel sta je voor een nieuw probleem. Hoe al deze containers efficiënt beheren? Hoe kan ik orkestreren mijn containers?
Bron : Orkestrepetitiefoto door Manuel Nägeli (@gwundrig) op Unsplash
Waarom hebben containers in de eerste plaats orkestratie nodig? De kans is groot dat u dit antwoord leest op uw desktopcomputer, waarop een besturingssysteem wordt uitgevoerd. Wanneer u uw browser opent, wijst uw besturingssysteem bronnen toe zoals geheugen en rekenkracht voor het browserproces. Na een tijdje wisselt u van browsertabblad en, even later, opent u een nieuw programma. Het besturingssysteem doet veel achter de schermen, zodat al uw processen een eerlijk deel krijgen van de computerbronnen die ze nodig hebben. We hebben zoiets als een besturingssysteem op containerniveau nodig. Dit is de exacte rol die Kubernetes speelt.
We geven Kubernetes een set computerresources (nodes genoemd) en werklast, zoals Hé, creëer en geef me 3 containers om deze PHP-app uit te voeren ”, en Kubernetes wil de genoemde containers maken bovenop mijn bestaande computerbronnen. Er zijn ook andere oplossingen voor containerorkestratie, zoals Docker swarm en Mesos.
Kubernetes is voor uw cluster wat een Linux-kernel is voor uw besturingssysteem. Net zoals de kernel alleen de processen in uw besturingssysteem beheert, beheert Kubernetes alleen de containers. Om een volwaardig besturingssysteem te gebruiken, heb je veel meer nodig, zoals gebruikers, machtigingen, apparaatstuurprogrammas en andere dingen. In dezelfde geest heeft Kubernetes op zichzelf een beperkt nut. Het kan containers voor u leveren als u het een specificatie of een werklast geeft. Hoe bouwt u uw container voordat u deze aan Kubernetes geeft? Hoe kunt u automatisch een nieuwe Kubernetes-provisioning activeren zodra u nieuwe code verzendt? Er zijn veel oplossingen bovenop Kubernetes gebouwd om dat te doen. U kunt ze optimaliseren en bedraden om aan uw behoeften te voldoen, of u kunt OpenShift gebruiken.
Bron: Presenteer, strik, lint en kerst HD-foto door Ben White (@benwhitephotography) op Unsplash
OpenShift is een Kubernetes-distributie die al deze goodies combineert met kale Kubernetes op een netjes verpakte manier. OpenShift is voor Kubernetes wat Ubuntu is voor de Linux Kernel. Het is geen “vork” van Kubernetes, maar bouwt er bovenop.
Als je een diepe duik wilt maken in wat OpenShift bovenop Kubernetes bouwt, kun je mijn bericht op de topic, OpenShift vs Kubernetes – Craft of Coding .