[ English | español | Deutsch | Indonesia | русский | English (United Kingdom) ]
Service-Architektur¶
Einführung¶
OpenStack-Ansible verfügt über ein flexibles Bereitstellungskonfigurationsmodell, mit dem alle Dienste in separaten Computercontainern oder auf bestimmten Hosts ohne Verwendung von Containern bereitgestellt werden können und der gesamte Netzwerkdatenverkehr entweder über eine einzige Netzwerkschnittstelle oder über zahlreiche Netzwerkschnittstellen erfolgt.
Dank dieser Flexibilität können die Implementierer wählen, wie OpenStack für den jeweiligen Anwendungsfall entsprechend bereitgestellt wird.
In den folgenden Abschnitten werden die Dienste beschrieben, die von OpenStack-Ansible bereitgestellt werden.
Infrastrukturdienste¶
OpenStack-Ansible implementiert die folgenden Infrastrukturkomponenten:
MariaDB mit Galera
Alle OpenStack-Dienste erfordern eine zugrunde liegende Datenbank. MariaDB mit Galera implementiert eine Multimaster-Datenbankkonfiguration, die die Verwendung als hoch verfügbare Datenbank mit einem einfachen Failovermodell vereinfacht.
RabbitMQ
OpenStack-Dienste verwenden RabbitMQ für Advanced Message Queuing Protocol (AMQP). OSA setzt RabbitMQ in einer Clusterkonfiguration mit allen zwischen den Clusterknoten gespiegelten Warteschlangen ein. Da der Nachrichtenwarteschlangenverkehr in der Telemetrie (Ceilometer) ziemlich hoch ist, empfehlen wir für große Umgebungen, Telemetriebenachrichtigungen in einen separaten RabbitMQ-Cluster zu trennen.
Memcached
OpenStack-Dienste verwenden Memcached für In-Memory-Caching, wodurch Transaktionen beschleunigt werden. Beispielsweise verwendet der OpenStack Identity-Dienst (Keystone) Memcached zum Zwischenspeichern von Authentifizierungstoken, wodurch sichergestellt wird, dass bei der Tokenüberprüfung nicht jedes Mal eine Datenträger- oder Datenbanktransaktion ausgeführt werden muss, wenn der Dienst aufgefordert wird, ein Token zu validieren.
Repository
Das Repository enthält den Referenzsatz von Artefakten, die für die Installation der Umgebung verwendet werden. Die Artefakte umfassen:
Ein Git-Repository, das eine Kopie des Quellcodes enthält, mit dem die Pakete für alle OpenStack-Dienste vorbereitet werden
Python Wheels für alle Dienste, die in der Umgebung eingesetzt werden
Ein apt/yum-Proxy-Cache, der zum Zwischenspeichern von in der Umgebung installierten Verteilungspaketen verwendet wird
Lastenausgleicher
Für eine Bereitstellung ist mindestens ein Lastenausgleich erforderlich. OSA bietet eine Bereitstellung von HAProxy, aber wir empfehlen die Verwendung einer physischen Lastenausgleichs-Appliance für Produktionsumgebungen.
Dienstprogramm-Container
Wenn für ein Werkzeug oder Objekt kein dedizierter Container erforderlich ist oder wenn das Erstellen eines neuen Containers für ein einzelnes Werkzeug oder Objekt nicht praktikabel ist, wird es im Dienstprogrammcontainer installiert. Der Dienstprogrammcontainer wird auch verwendet, wenn Tools nicht direkt auf einem Host installiert werden können. Der Dienstprogrammcontainer wird mit den entsprechenden Anmeldeinformationen und Clients vorbereitet, um die OpenStack-Umgebung zu verwalten. Es ist so eingestellt, dass es automatisch die internen Service-Endpunkte verwendet.
Unbound DNS-Container
Container, die einen Unbound DNS Caching-Dienst ausführen, können optional zum Cachen von DNS-Lookups und zur internen DNS-Namensauflösung implementiert werden. Wir empfehlen, diesen Service für große Produktionsumgebungen zu verwenden, da die Bereitstellung erheblich schneller wird. Wenn dieser Dienst nicht verwendet wird, ändert OSA
/etc/hosts
Einträge für alle Hosts in der Umgebung.
OpenStack-Dienste¶
OSA kann eine Vielzahl von Diensten bereitstellen. Sehen Sie sich die Rollenmaturitätsmatrix an, um den Status des Dienstes zu kennen, den Sie bereitstellen möchten.