Wissensbasis

Begriffe, Technologien und Tools rund um das Cloud, Container & Kubernetes Universum für Kubernetes Interessierte

Wissen von A-Z

Einfach erklärt – leicht zu finden.

Dieses Glossar beschreibt Begriffe rund um Cloud, Container und deren Orchestrierung mit dem Fokus auf Kubernetes. Es wurden Begriffe aus der Programmierung mit aufgenommen, die die Container-Orchestrierung in einen Kontext stellen.

A|B|C|D|E|F|G|H|I|K|L|M|N|O|P|R|S|V|Y

A

blank

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Aggregation Layer

Die Aggregationsschicht ermöglicht es, Kubernetes um zusätzliche APIs zu erweitern, so dass diese APIs auf der Kubernetes-Kern-API verfügbar sind. Die K8s Aggregationsschicht leitet Anfragen, die an den Kube-Apiserver gesendet werden, an Ihre Anwendungs-API weiter, wenn die Anfragen auf API-Pfade treffen, die von den registrierten API-Services Ihrer Anwendung genutzt werden.

Annotation

In Kubernetes ist eine Annotation ein Schlüssel-Wert Paar zum Anhängen beliebiger strukturierter oder unstrukturierter Metadaten an Kubernetes API-Objekte. Im Gegensatz zu Labels sind Annotationen nicht dazu bestimmt, Objekte zu identifizieren und auszuwählen, obwohl sie oft verwendet werden, um wichtige Informationen an die Ressourcen und Controller des K8s oder andere Anwendungen zu übermitteln.

Autoscaling

Autoscaling ist eine automatische Anpassung des Clusters an die Last. Mit dieser Funktion erhöht das System die Anzahl der Knoten im Cluster und die Anzahl der Pods im Deployment bei steigender Last und umgekehrt. 

B

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Bare Metal Cluster

Bare-Metal-Cluster („blankes Metall“)  ist ein Kubernetes Cluster was direkt auf physicher Hardware installiert ist.

C

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

CI/ CD

CI/ CD ist eine Software-Engineering-Pipline, die eine Kombination aus Continuous Integration (CI) mit Continuous Delivery (CD) oder Continuous Deployment (CD) beinhaltet. Diese Begriffe sind hier jeweils einzeln erklärt.

Cloud Computing

Mit dem Begriff Cloud werden fälschlicherweise meistens diverse „as a Service“-Anbieter zusammengefasst. Für Endbenutzer werden Ausdrücke wie „in der Cloud“ am häufigsten im Zusammenhang von Dienstanbietern wie z.B. Dropbox verwendet. Die Reduzierung der Cloud auf bestimmte SaaS-Anbieter im Allgemeinbild der Nutzer erweckt jedoch auch Sicherheitsbedenken und spiegelt nicht das wahre potential des Cloud Computings, vor Allem für Unternehmen, wider.

Ursprünglich stammt der Begriff Cloud von der Darstellung nicht näher spezifizierter IT-Strukturen als Wolke. So wird in Schaubildern zur Abbildung von IT-Strukturen und Netzwerken bereits seit vielen Jahren die Wolke als „Endpunkt“ z.B. für das Internet verwendet.

Cloud Computing bezeichnet die Vereinfachung von komplexen IT-Infrastrukturen als nutzbaren Dienst. Der Anwender wird durch Abstraktionstechniken unabhängig von realen IT-Infrastrukturen und hat Zugriff auf theoretisch unbegrenzte IT-Ressourcen.

 

Cloud Service Provider

Ein Cloud Service Provider ist ein Unternehmen, das Infrastruktur und Dienstleistungen für den Betrieb von Containern und Container-Orchestrations-Tools anbietet.  Inftrastructure as a Service (IaaS) beinhaltet die Bereitstellung von Clusterknoten, Platform as a Service (PaaS) bezieht sich auf die Verwaltung von Anwendungen und es gibt noch eine Vielzahl von weiteren Speicher- und Netzwerkdiensten, die angeboten werden.

Cluster

Ein Cluster besteht allegmein aus mehreren verbundenen physischen Computern oder virtuellen Maschinen, die ein eigenes System bilden.

In Kubernetes beschreibt ein Cluster ein Gesamtsystem, dass sich aus Nodes zusammensetzt.  Die wichtigsten Node Typen sind die  „Master-Nodes“ welche die Controll-Plane beherbergen und „Worker-Nodes“ welche die eigentliche Arbeit verrichten.

Die Verwaltung geschieht über die Kubernetes Control Plane. Container auf demselben Node können zu Pods zusammengefasst werden.  Ein Pod kann auch aus einem einzelnen Container bestehen und ist die kleinste organisatorische Einheit in Kubernetes.

 

Containerized Application

Eine containerisierte Anwendung ist eine Anwendung, die zum Laufen in einem oder mehreren Containern erstellt wurde.

Container

Bei Containern handelt es sich um abgeschottet laufende Umgebungen, welche die Anwendung und alle dafür benötigten Komponenten enthalten.  Die Container teilen sich die Kern-Komponenten des Betriebssystems mit dem Host-System und  laufen ansonsten eigenständig. Aus diesem Grund sind Container deutlich schlanker und flexibler als klassische virtuelle Maschinen und bieten dennoch eine abgeschottete Umgebung für die Anwendung. 

Da der Container immer nach festen Parametern aus einem Image gestartet wird, und seine eigene Umgebung quasi mit bringt, entfallen auch einige Variablen beim Umzug auf ein anderes Host-System. Dies vermeidet das unter Entwicklern und Admins bekannte „works on my machine“ Problem. Beliebte Containertechnologien sind Docker, rkt, containered und weitere.

 

Continuous Delivery

Continuous Delivery ist ein Software-Engineering-Ansatz zur Automatisierung des Software-Release-Prozesses und steht für eine Sammlung von Techniken, Prozessen und Werkzeugen, die eine kontinuierliche und in kurzen zeitlichen Abständen stattfindende Auslieferung von Software ermöglicht. Mit Continuous Delivery können Sie Releases täglich, wochenweise, monatlich oder nach beliebigen erstellen.

Continuous Integration

Continuous Integration beschreibt die automatisierten Übernahme von Code-Änderungen in das vorgelagerte Repository, die durch automatisierte Tests gegen den Build gewährleistet wird. CI macht Code-Updates wesentlich einfacher und hilft, den Freigabezyklus von Code-Änderungen zu trennen. Um dies zu erreichen, legt CI großen Wert auf Testautomatisierung, um sicherzustellen, dass die Anwendung nicht beschädigt wird, wenn neue Commits in den Master Branch integriert werden.

 

Continuous Deployment

Continuous Deployment ist die Verbindung von Continuous Integration mit Continuous Delivery und automatisiert die gesamte Pipeline vom Code Commit zum Kunden. Es stellt sicher, dass jede Änderung, die die Phasen der Softwaretestpipeline durchläuft, automatisch an die Anwender weitergegeben wird.

CronJob

Als CronJob wird in der Kubernetes Welt ein Subtyp von Kubernetes Jobs bezeichnet, der nach einem periodischen Zeitplan ausgeführt wird. Der Zeitplan wird im Cron-Format angegeben.

Controller

Die Controller in Kubernetes überwachen und steuern den Cluster und seine Bestandteile. 

Control Plane

Control Plane ist eine Kombination von Kubernetes-Masterprozessen, die Ereignisse im Cluster verfolgen und daran arbeiten, dass der aktuelle Zustand aller Objekte im Cluster mit dem vom Administrator festgelegten Soll-Zustand übereinstimmt. Die Steuerungsebene beinhaltet etcd, den kube-apiserver, den kube-controller-manager, den kube-scheduler und den cloud-controller-manager.

D

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Deployment

Das Kubernetes Deployment ist ein API-primitive für die Bereitstellung und Verwaltung von ReplicaSets, das die Fehlertoleranz von Pods erleichtert. Deployments können ReplicaSets beispielsweise mitteilen, wie viele Pods sie haben sollen und welche Spezifikation sie haben. Deployments fügen ReplicaSets auch zusätzliche Funktionen hinzu, wie z.B. rollierende Updates und Rollbacks, wodurch sie robuster und für die meisten Anforderungen besser geeignet sind als ReplicaSet allein.

DevOps

Der Begriff  DevOps stellt sich zusammen aus Development (Dev/ englisch für Entwicklung), welcher für die Softwareentwickler steht, und Operations (Ops/ englisch für Betrieb), stellvertretend für den IT-Betrieb/ Operation. Die Kombination aus beiden Rollen soll einen Prozessverbesserungsansatz in den Bereichen Softwareentwicklung und Systemadministration ermöglichen.  Es sollen helfen die Qualität der Software, die Geschwindigkeit der Entwicklung und der Auslieferung  zu verbessern.

 

Docker

Docker ist eine „open source“ Software zur Isolierung von Anwendungen mit Containervirtualisierung. Docker vereinfacht die Bereitstellung von Applikationen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen.

 

Dynamic Volume Provisioning

Dynamic Volume Provisioning macht die Vorbereitstellung von Cluster-Speicher überflüssig, da Kubernetes-Benutzer die automatische Erstellung von Speicher anfordern können. Es basiert auf API-Primitive der StorageClass, und bezieht sich auf ein Volume Plugin, das ein Volume und einen Satz von Parametern bereitstellt, die an dieses Volume Plugin übergeben werden.

E

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Endpoint

In Kubernetes ist ein Endpoint das API-Objekt, das sich auf einen Pod bezieht, der von einem bestimmten Dienst verwaltet wird. Wenn Benutzer einen Service erstellen, werden eine Reihe von Endpoints mit einer entsprechenden Liste von IPs und Ports erstellt, die auf Pods ausgerichtet sind, die mit dem Selector des Services übereinstimmen.

Etcd

Etcd ist ein zuverlässiger und hochverfügbarer Key Value Store, der als Speicher für alle Cluster-Daten von Kubernetes dient. Des weiteren kann der Etcd als verteilte Datenbank arbeiten.

 

F

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Fault Tolerance

Fault Tolerance ist die Eigenschaft, die es einem System ermöglicht, daß im Falle eines Ausfalls einiger seiner Komponenten weiterhin ordnungsgemäß funktionieren. Des weiteren wird Fault Tolerance oft auch quantitativ genutzt, um anzugeben wie viele und welche Komponeneten ausfallen könnten ohne dass es zu Beeinträchtigungen kommen würde.

G

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

GitLab

GitLab ist ein Managementsystem für die Versionsverwaltung Git. Mit GitLab erstellen Sie Repositories und verwalten diese über eine gut zu bedienende Weboberfläche. Es ist speziell für die Zusammenarbeit im Team ausgelegt und ermöglicht den Anwendern eine einfache Verwaltung von Git Repositories, sowie einfache Durchführung von Änderungen.  Die Gitlab Community Edition (CE) wird als OpenSource entwickelt. 

H

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Helm Chart

Ein Helm Chart ist ein Paket von vorkonfigurierten Kubernetes-Ressourcen wie Deployments und ConfigMaps, die von Tiller, einem On-Cluster-Agenten zur Erstellung von Releases, die über die Helm CLI initiiert wurden, bereitgestellt und verwaltet werden können. Ein einzelnes Chart kann verwendet werden, um eigenständige Anwendungen oder komplexe Web-Stacks mit HTTP-Servern, Caches und Datenbanken bereitzustellen. Der Hauptvorteil von Helm Charts liegt in der Vereinfachung der Bereitstellung und Verwaltung von Kubernetes-Ressourcen und  Standardisierung der Ressourcenkonfiguration eines Teams.  

 

I

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Image

Im Kontext der Containertechnologie wird aus einem Image eine gespeicherte Instanz eines Containers erstellt, die Software und Konfiguration enthält, die für den Betrieb einer Anwendung erforderlich sind. Images werden verpackt und in einer Container-Registry gespeichert und können lokal gezogen werden, um eine Anwendung auszuführen. Images enthalten auch Metadaten, die angeben, welche Datei ausgeführt werden soll, wer das Image erstellt hat und andere nützliche Informationen.

Init Container

In Kubernetes ist der Init Container ein Container, der komplett durchlaufen muss, bevor die Hauptanwendung ausgeführt werden kann. Init Container werden typischerweise verwendet, um einige Initialisierungsaufgaben durchzuführen, wie z.B. das Herunterladen eines Remote Repositorys, die Konfiguration der Systemumgebung und andere Operationen, die abgeschlossen werden müssen, bevor die Hauptanwendung ausgeführt werden kann.

Ingress

 In Kubernetes ist Ingress ein API primitive, das eine Reihe von Regeln für den externen Zugriff auf die Dienste in einem Cluster verwaltet. Ingress kann auch Load Balancing, SSL Termination und name-based virtuelles Hosting anbieten.

 

K

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Kubernetes

Kubernetes (auch als „K8s“ bezeichnet) dient der Orchestrierung von Container-Systemen. Die Open-Source-Plattform automatisiert das Einrichten, das Skalieren und das Verwalten von containerisierten Anwendungen. Es wurde ursprünglich von Google entwickelt und dann von Google an die Cloud Native Computing Foundation gespendet.

Kubernetes ist die englische Schreibweise eines griechischen Wortes, was frei übersetzt „Steuermann“ bedeutet. Die Namensgebung reiht sich damit in die für derartige Projekte gewählte Bildsprache der Frachtschifffahrt ein. Docker heißen im Englischen Hafenarbeiter. Die Symbolik spiegelt sich auch im Kubernetes-Logo wieder, was aus einem siebenspeichigen Steuerrad besteht. Die Zahl Sieben bezieht sich dabei auf eine Figur aus Star Trek, deren Name als Arbeitstitel bei Google für das Projekt diente.

 

Kubernetes-API

Die Kubernetes-API stellt die Kubernetes Funktionalität über eine RESTful-Schnittstelle zur Verfügung. Alle Kubernetes Ressourcen wie Depoyments oder DaemonSets werden als API-Objekte gespeichert, die über RESTful-Aufrufe der API geändert werden können.  Die Benutzer können direkt mit der API interagieren oder Tools nutzen wie kubectl. Die Kubernetes-Kern-API ist flexibel und kann erweitert werden, um kundenspezifische Ressourcen zu unterstützen.

kubeadm

kubeadm ist ein Open-Source-Tool zur schnellen Installation von Kubernetes und zum Aufbau eines sicheren Clusters. Es kann sowohl für die Installation des Control Plans als auch der Worker Nodes verwendet werden.

 

kubectl

kubectl ist ein Kommandozeilen-Tool zur Kommunikation mit einem Kubernetes-API-Server. Es ermöglicht das Erstellen, Bearbeiten, Aktualisieren und Löschen von Kubernetes-Ressourcen sowie das Debuggen und Überwachen des Zustands des Clusters.

kubelet

kubelet ist ein node agent (Knotenagent) in Kubernetes, der auf jedem Knoten des Clusters läuft und sicherstellt, dass Container in einem Pod laufen. Ein kubelet nimmt Pod-Spezifikationen, die auch als Manifeste bezeichnet werden, auf und stellt sicher, dass die in ihnen beschriebenen Container laufen und healthy (gesund) sind.

kube-controller-manager

Der kube-controller-manager ist eine Master-Komponente, die Controller betreibt. Die Kontrollschleifen (Regeln) beinhalten jede Logik, die nicht spezifisch für den vom Cluster verwendeten Cloud-Provider ist (außer Volumes). Nutzt ein Cloud-Anbieter für ihn spezifische Kontrollschleifen (Regeln) (z.B. Loops für Routing, Knoten und andere Cloud-Infrastrukturen) dann werden diese vom optionalen Cloud-Control-Manager verwaltet.

kube-proxy

kube-proxy ist ein Netzwerk-Proxy, der auf jedem Knoten des Clusters läuft und für die Weiterleitung von Anfragen zuständig ist. Es ermöglicht TCP- und UDP-Stream oder Round-Robin-Weiterleitung über eine Reihe von Backend-Funktionen. Der kube-proxy erreicht dies durch mehrere, vom Benutzer ausgewählte Einstellungen, die sich unterschiedlich verhalten.

kube-scheduler

kube-scheduler ist eine Master-Komponente, die neu generierte Pods ohne zugewiesene Knoten überwacht. Der Scheduler informiert den API-Server über den entsprechenden Knoten, auf dem die Planung erfolgen soll, und dann sendet der API-Server eine Anforderung an das entsprechende kubelet, um die erforderlichen Pods zu erstellen.

L

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Label

In Kubenetes sind Labels  Key-Value-Paare, die an Objekte wie Pods angehängt werden. Sie werden verwendet, um Objekt Attribute zu erstellen, die für den Benutzer sinnvoll und relevant sind, um ihm zu helfen, Teilmengen von Objekten zu organisieren und auszuwählen.

M

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Master

Im Computernetzwerk ist ein Master eine zentrale Maschine, die andere Maschinen im Cluster steuert. Im Kontext von Kubernetes bezieht sich der Master auf eine Sammlung von Prozessen, die den Clusterzustand verwalten, auch bekannt als „control plane“. Diese Prozesse können auch in anderen Mustern eingesetzt werden, z.B. außerhalb des Clusters, innerhalb der worker nodes oder sogar in einem anderen separaten Cluster. Der Master kann auf Verfügbarkeit und Redundanz repliziert werden.

Minikube

Minikube ist ein Tool, mit dem Kubernetes lokal einfach ausgeführt werden kann. Minikube führt einen Kubernetes-Cluster mit einem einzigen Node in einer Virtuellen Maschine auf dem Laptop aus, damit Benutzer Kubernetes ausprobieren oder täglich damit entwickeln können.

Mircroservice

Microservices oder Micorservice-Architektur ist ein Designansatz, der eine Anwendung als eine Gruppe von kleinen, lose zusammengesetzten, zielorientierten Diensten strukturiert. Jeder einzelne Microservice erfüllt jeweils einen kleine Aufgabe. Die einzelnen Services / Prozesse lassen sich wie Module so miteinander verbinden, dass sich daraus eine beliebig komplexe Software ergibt.

Microservices erleichtern die DevOps-Kultur und CI/CD-Pipelines und vereinfachen die Bereitstellung großer, komplexer Anwendungen, bei denen jede Komponente unabhängig voneinander entwickelt, getestet, bereitgestellt und skaliert werden kann.

N

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Namespace

Namespace ist eine Kubenetes-Abstraktion, die es ermöglicht, mehrere logische work spaces innerhalb eines Clusters zu erstellen. Namenspaces können verwendet werden, um Objekte in einem Cluster zu organisieren und bieten eine Möglichkeit, Cluster-Ressourcen zwischen Teams und Benutzern aufzuteilen.

Node

Jede Maschine im Cluster ist ein Node. Es gibt unterschiedliche Arten von Node. Eine worker machine im Kubernetes-Cluster, die je nach Bereitstellungssmuster des Clusters eine virtuelle oder physische Maschine sein kann. Eine Node führt Benutzeranwendungen und Cloud-Workflows aus und wird von den Master-Komponenten verwaltet. Zu den Diensten auf jedem Node gehören Docker oder eine andere Container runtime, kubelet und kube-Proxy.

Node Port

Eine Kubernetes-Netzwerkfunktion zum Bereitstellen eines Dienstes auf der IP jedes Nodes an einem statischen Port, der als Node Port bekannt ist. Node Port ermöglicht die Kommunikation mit dem Kubernetes-Dienst von außerhalb des Clusters über NodeIP Node Port.

O

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

OpenStack

OpenStack ist eine Softwaresammlung mit der man IaaS-Plattformen für öffentliche und private Clouds erstellen und verwalten kann.

 OpenStack ist modular aufgebaut und besteht aus unterschiedlichen Modulen. Ursprünglich wurde OpenStack als Alternative zu den Amazon Web Services (AWS) entwickelt. Alle Module von OpenStack werden über eine gut dokumentierte REST-API-Schnittstelle gesteuert. Um die Arbeit zu vereinfachen gibt es die Möglichkeit, die API über einen Kommandozeilenclient zu verwenden. Weiterhin wird mit dem „horizon“-Dashboard ein Webinterface angeboten, welches als Self Service Portal dient und vom Cloud Anbieter um eigene Funktionen erweitert werden kann.

OpenStack wird in der objektorientierten Programmiersprache Python entwickelt. Python ist leicht zu erlernen und bietet einen großen Umfang an Standardbibliotheken. Weiterhin haben in Python geschriebene Programme einen gut lesbaren Quelltext, was einen großen Teil zur Qualität von OpenStack beiträgt.

OpenStack Kernkomponenten

Beim modularen Aufbau von OpenStack wird zwischen verschiedenen Stufen der Komponenten unterschieden. Die Kernkomponenten von OpenStack bilden die Grundfunktionen für OpenStack ab und werden üblicherweise bei jeder Implementation von OpenStack installiert. Weitere Module befinden sich aktuell in einer Inkubationsphase. Module in der Inkubationsphase werden zwar mit OpenStack ausgeliefert, sind jedoch noch nicht oder nur eingeschränkt für den produktiven Einsatz geeignet. Darüber hinaus existieren noch weitere Module die bisher nicht den Schritt in die Inkubationsphase geschafft haben.

Die Kernkomponenten von OpenStack bestehen aktuell aus 7 verschiedenen Modulen.

Compute (Nova) Das Compute-Modul mit dem Namen Nova ist die Hauptkomponente von OpenStack. Sie bildet die Kernfunktionen als Cloud Controllers ab und steuert dafür die reale Hardware an. Mit Nova werden die Instanzen der Benutzer angelegt, verwaltet und gelöscht. Dafür unterstützt Nova verschiedene Vitrualiserungs- und Container-Techniken wie KVM, Xen, Hyper-V oder LXC. Weiterhin kann Nova selbst Snapshots von Instanzen im laufenden Betrieb erstellen, welche im Block Speicher (Cinder) abgelegt werden. Nova bietet auch eine eigene Netzwerkschicht, welche jedoch durch das Modul Neutron ersetzt wurde.

Block Speicher (Cinder)  Das Modul Cinder dient als persistenter Block-Level Speicher und wird als solcher auch intern verwendet. Cinder stellt dafür virtuelle Datenträger (Volumes) über das Netzwerk in OpenStack bereit. Im Gegensatz zu NFS kann ein Cinder Volume immer nur mit einer Instanz verknüpft (gemounted) werden. Ein gleichzeitiges Verknüpfen zu mehreren Instanzen ist aktuell nicht möglich. Cinder unterstützt im Backend verschiede Storage Plattformen und kann somit auch an den redundanten Cloud Speicher Ceph oder an GlusterFS angebunden werden.

Objekt Speicher (Swift) Swift ist ein Objekt Speicher und kann zum Speichern von Objekten oder einzelnen Dateien verwendet werden. Swift ist automatisch skalierbar und redundant ausgelegt so dass ein Objekt stets in mehreren Kopien gehalten wird. Swift kann ausschließlich über eine REST-API genutzt werden.

Image Dienst (Glance) Der Image Dienst Glance dient der Verwaltung von Images (Datenträger-Abbildern). Glance unterscheidet hierbei von privaten, geteilten und öffentlichen Images. Private Images gehören nur dem jeweiligen Benutzer und können nur von diesem verwendet werden. Geteilte Images sind Images die mit einem bestimmten Benutzerkreis geteilt werden. Öffentliche Images stehen allen Benutzern des Cloudsystems zur Verfügung. Neben Images verwaltet Glance auch Snapshots und kann diese als Images ablegen. Glance verwendet Cinder zum Speichern der Images.

Netzwerk (Neutron) Das Modul Neutron stellt den Netzwerkdienst für OpenStack bereit. Mit Neutron lassen sich Netzwerke, Subnetze und IP-Adressen/Floating-IPs verwalten. Eine Floating IP in OpenStack bezeichnet eine offizielle IP, welche als Schnittstelle vom internen zum öffentlichen Netz dient. Neben einem LoadBalancer, dem HA-Proxy und einem HealthMonitor unterstützt Neutron auch Techniken wie VLAN und VPN. Zur Absicherung der Netze nutzt Neutron eine Firewall die vielseitige Portregeln z.B. auf Sicherheitsgruppenbasis erlaubt. Aus Markenrechtlichen Gründen wurde das Modul Neutron vor einiger Zeit umbenannt. Der vorherige Name des Moduls, welchen man teilweise noch in alten Dokumentationen findet, war „Quantum“.

Dashboard (Horizon) Mit dem Horizon Dashboard bietet OpenStack ein benutzerfreundliches Webinterface zur Verwaltung der eigenen Cloud. Über Horizon stehen die wichtigsten Funktion der Cloud zur Verfügung. Bei der aktuellen rasanten Entwicklung hinkt Horizon jedoch dem Umfang der APIs ein wenig hinterher, so dass es nicht alle Funktionen der APIs unterstützt. Auch das Debugging ist bei Verwendung der Kommandozeilenclients oft einfacher so dass man das Dashboard nur für die Basisaufgaben nutzen sollte. Das Webinterface von Horizon ist Templatebasiert und kann durch den Cloudanbieter optisch angepasst und durch Funktionen erweitert werden.

Identitäts Dienst (Keystone) Das Modul Keystone wird als Authentifizierungs- und Rechtesystem zwischen allen Komponenten verwendeten. Keystone unterscheidet dabei zwischen Mandanten (Tenant) und Benutzern. Ein Mandant ist ein Mieter in der Cloud und kann ggf. weitere Benutzer verwenden. Keystone unterstützt neben einem Token-System auch weitere Authentifizierungsmöglichkeiten wie z.B. LDAP. Eine weitere Möglichkeit besteht darin, den Benutzer für die REST-APIs bereits per vorgeschaltetem Webserver zu autorisieren. Der Benutzername kann dann im Request vom Webserver an die API übergeben werden. Dies ermöglicht die Anbindung einer vielzahl weiterer Authentifizierungssysteme, da diese z.B. für den Apache Webserver zahlreich vorhanden sind.

Neben den Kernkomponenten bietet OpenStack weitere integrierte Komponenten wie das Telemetrie-Modul mit dem Namen Ceilometer und Heat zur Orchestrierung.

Telemetrie (Ceilometer) Ceilometer dient als Schnittstelle zum Erfassen und Abfragen sämtlicher Nutzungszahlen des Cloudsystems. Mit Hilfe von Ceilometer lässt sich somit z.B. ein „Pay per Use“-Model technisch realisieren. Neben dem Abruf von Nutzungszahlen durch den Betreiber der Cloudumgebung wird Ceilometer überwiegend vom Modul Heat verwendet.

Orchestrierung (Heat) Mit Heat lassen sich sogenannte „Stacks“ erstellen. Stacks sind Konfigurationen, bestehend aus verschiedenen Cloud Komponenten wie Instanzen, LoadBalancer, Sicherheitsgruppen, Netzwerke etc. Mit Stacks lassen sich Deployment- und AutoScalingprozesse direkt in OpenStack realisieren. In einem sogenannten HOT (Heat Orchestration Template) werden die Konfigurationen im YAML-Format angegeben. Die Konfigurationsmöglichkeiten sind so umfangreich, dass mit einem Heat Template die gesamte Struktur in Ihrer Cloud automatisch erstellt werden kann. Heat Templates bieten die Möglichkeit Trigger (Alarm) für z.B. AutoScaling zu setzen, welche die Last einzelner Instanzen innerhalb eines LoadBalancer-Pools überwachen. So können im laufenden Betrieb automatisch weitere Instanzen erstellt werden.

Orchestration

Im Container-Kontext ist eine Orchestration ein Prozess und eine Reihe von Tools zur Verwaltung der Lebenszyklen von Containern. Software-Teams verwenden die Container-Orchestration, um viele Tasks zu steuern und zu automatisieren, einschließlich der Provisionierung und Bereitstellung von Containern, Redundanz und Verfügbarkeit von Containern, Skalierung, Aktualisierung, Scheduling, um die wichtigsten zu nennen.

Overlay Network

Ein Overlay-Netzwerk ist eine softwaredefinierte Netzwerkkomponente, die auf dem Underlay aufliegt und Netzwerkbestandteile wie IP-Adressen und Ports für den Lebenszyklus von Containern und Hosts bereitstellt. Das Overlay kann die Kommunikation zwischen Anwendungen, die das gleiche physikalische Netzwerk verwenden, isolieren.

p

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Pod

Ein Pod ist eine Gruppe von einem oder mehreren Containern (wie z.B. Docker-Container), mit gemeinsamem Speicher und Netzwerk und einer Spezifikation für den Betrieb der Container. Die Inhalte eines Pods werden immer gemeinsam platziert und geplant und laufen in einem gemeinsamen Kontext. Ein Pod modelliert einen anwendungsspezifischen „logicsl host“ – er enthält einen oder mehrere Anwendungscontainer, die relativ eng gekoppelt sind.

Pod Security Policy

Eine Pod Security Policy ist eine Ressource auf Cluster-Ebene, die eine Reihe von Sicherheitsbedingungen definiert, mit denen ein Pod ausgeführt werden kann, um vom System genehmigt zu werden. Pod Security Polices schränken den Sicherheitskontext eines Pod`s ein, wodurch kritische Lücken in der Clustersicherheit geschlossen werden können. Diese Ressourcen sind als optionaler-admission- controller implementiert.

Public Cloud vs Private Cloud

Für den Anwender werden „as a Service“-Dienste in der Regel in Form einer Public Cloud von einem Anbieter bereitgestellt. Neben Anbietern von Public Clouds besteht auch die Möglichkeit als Unternehmen selbst seinen Mitarbeitern eine Cloud als Private Cloud zur Verfügung zu stellen.

Public Cloud

Die Public Cloud vereint die grundsätzlichen Cloud Vorteile wie die theoretisch unendliche Skalierbarkeit sowie die flexible Bezahlung nach dem „Pay per Use“-Model. Eine Public Cloud wird idR. durch einen Drittanbieter bereitgestellt und bietet eine API-Schnittstelle zur Interaktion mit der Cloud. Mehrere Kunden teilen sich gemeinsam Hardwareressourcen und haben meistens keinen Einfluss auf die zu verwendende „echte“ Hardware. Je nach Anbieter lassen sich bestimmte Ressourcen reservieren, was jedoch nicht kostenfrei ist. Die weit verbreitete Meinung, dass eine Public Cloud unsicher ist, trifft nicht allgemein zu. Ein Server in der Public Cloud ist durch die Virtualisierungsschichten oft deutlich besser abgesichert als z.B. eine klassische Webseite auf einem Shared Hosting System. Weiterhin bietet OpenStack z.B. umfangreiche Möglichkeiten wie eine fein konfigurierbares Firewallsystem, so dass der Kunde selbst großen Einfluss auf die Absicherung seiner virtuellen Systeme nehmen kann. Erfahren Sie mehr über unser Angebot und  die teutostack Public Cloud.

 

Private Cloud

Der Große Unterschied der Private Cloud ist die ausschließliche Nutzung der echten Hardware durch den Kunden. Die exklusive Nutzung der dedizierten Hardware erhöht die Sicherheit der Cloud. Eine Public Cloud kann jedoch auch, neben dem Hosting im eigenen Datacenter, durch einen Drittanbieter Remote bereitgestellt werden. Neben dem klassischen Kaufmodell für die Hardware gibt es neben Mietmodellen auch Anbieter, die eine Nutzungsabhängige Abrechnung z.B. pro Tag bei Remote-Private Clouds anbieten. Abhängig vom Anbieter gibt es bei Remote Private Clouds auch die Möglichkeit in kurzer Zeit die Private Cloud um echte Hardware zu erweitern. Die freie Skalierbarkeit geht somit nicht verloren. Hier finden Sie merh Informationen und unser Angeebot für eine eigene teutotack Private Cloud.

Prometheus

Prometheus ist ein Open-Source-Monitoring- und Alarmierungs-Toolkit, das 2012 von SoundCloud entwickelt wurde. Prometheus ist eng in das Cloud Native/ Kubernetes Ökosystem integriert und hat native Unterstützung für Container und Kubernetes.

R

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Registry

Eine Container-Registry ist ein gehostetes Repository von Container-Images. Es ist ein zentraler Ort, um Container-Images zu verwalten, Schwachstellenanalysen durchzuführen. In Kubernetes kann eine RBAC (Role Based Access Control) für das Registry konfiguriert werden. Es gibt private Registry, die von Unternehmen geführt werden, und öffentliche Containerregister wie Docker Hub, Quay oder GCR.

Resource Quotas

Die Resource Quotas sind Kubernetes Ressourcenbeschränkungen, die den aggregierten Ressourcenverbrauch pro Kubernetes Objekte wie Namespace begrenzen. Sie können verwendet werden, um die Anzahl der Objekte, die in einem Namespace angelegt werden können, nach Typ zu begrenzen, sowie die Gesamtmenge der Compute Resources, die von Ressourcen in diesem Namespace verbraucht werden können.

Runtime

Im Allgemeinen bezeichnte die „Runtime“ entweder die Lebenszyklusphase während der Ausführung eines Programms oder das Framework, das seine Ausführung unterstützt. In Bezug auf Container ähnelt eine Runtime wie Docker dem Hypervisor der Virtuellen Maschine, aber anstatt zwischen einem Betriebssystem zu übersetzen, werden Containerprozesse direkt im Host-Kernel ausgeführt. Die Runtime ist für alle Teile des Betriebs eines Containers mit Ausnahme des enthaltenen Prozesses verantwortlich. Kubernetes kann bei Bedarf mehr als eine Container-Runtime auf einem Node verwenden.

S

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Selector

Ein Selector ist eine Kubernetes-Funktion, die es Benutzern, wie Controllern, Schedulern us.w. ermöglicht, eine Liste von Ressourcen und K8s Objekten basierend auf Labels zu filtern.

Service

Eine Kubernete API primitive, die beschreibt, wie man auf Anwendungen zugreift, wie z.B. eine Reihe von Pods. Die Services fungieren als Load-Balancer, die eine Anfrage mit einer Reihe von korrespondierenden Backend-Pods verbindet. Die neu erstellten Services informieren kube-proxy, um neue Netzwerkregeln zu erstellen, mit denen die Pods kommunizieren können.

Service Account

Im Hinblick auf den RBAC (Role Based Access Control) sind Service Accounts wie die Benutzer gleichwertig mit den im Cluster ausgeführten Diensten. So wie menschliche Benutzer autorisiert werden müssen, so müssen auch Services autorisiert werden. Service Accounts stellen Services und Nutzern Identitäten zur Verfügung, die sie für die Autorisierung verwenden können.

Service Discovery

Bei einem nicht statischen Backend mit wechselnden IP’s identifiziert die Service Discovery die dynamisch zugewiesenen Netzwerkinformationen der Service oder der Geräte, in denen sie ausgeführt werden.

Service Mesh

Der Begriff Service Mesh wird verwendet, um das Netzwerk von Microservices zu beschreiben, aus denen sich solche Anwendungen zusammensetzen, und die Interaktionen zwischen ihnen. Da ein Service Mesh immer größer und komplexer wird, kann es schwieriger werden, es zu verstehen und zu verwalten. Zu den Anforderungen gehören Discovery, Load Balancing, Failure Recovery und Monitoring. Ein Service Mesh hat auch oft komplexere betriebliche Anforderungen, wie A/B-Tests, Canary Rollouts, Access Control und End-to-End-Authentification.

 

V

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Volume

Ein Kubernetes Volume ist ein Verzeichnis mit Daten, auf das der Container in einer Pod zugreifen kann. Ein Volume lebt so lange wie der Pod, der es umschließt. Folglich ermöglicht ein Volume das Speichern von Daten über Container-Neustarts hinweg.

Y

Ihr Titel geht hier

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

YAML

YAML (Ain`t Markup Language, früher bekannt als Yet Another Markup Language) ist eine vom Menschen lesbare Sprache zur Serialisierung von Daten, die häufig für Konfigurationsdateien verwendet wird. In Kubernetes können Manifeste ( Spezifikationsdateien) in YAML oder JSON geschrieben werden. Alle Anfragen, die direkt an die Kubernetes-API gesendet werden, müssen JSON verwenden, und kubectl wird YAML nach Übermittlung des Manifests in JSON konvertieren.