OpenStack ist eine Open-Source-Cloud-Computing-Plattform, die eine Lösung für Infrastructure as a Service bietet. OpenStack besteht aus mehreren Komponenten, die zur Bereitstellung von IaaS zusammengestellt wurden. Die Komponenten sind unten mit ihrer Verwendung aufgeführt.
Komponenten:
Komponente | Name | Verwenden |
---|---|---|
Berechnen | (Nova) | Verwaltet virtuelle Maschinen |
Objektspeicherung | (Schnell) | Verwaltet den Speicher in der gesamten Cloud |
Speicher blockieren | (Schlacke) | Verwaltet den Speicher für die Compute-Instanz |
Netzwerk | (Neutron) | Verwaltet Netzwerke und IP-Adressen |
Dashboard | (Horizont) | Bereitstellen einer grafischen Weboberfläche zum Verwalten von Ressourcen |
Identitätsdienst | (Schlüsselstein) | Verwaltet das Authentifizierungssystem über die Cloud |
Bilderdienst | (Blick) | Stellt Festplatten- und Server-Images bereit (Vorlage) |
Telemetrie | (Ceilometer) | Abrechnungssystem |
Orchestrierung | (Wärme) | Bietet Orchestrierungsfunktion |
Infrastrukturdesign:
Was die Infrastruktur betrifft, werden wir OpenStack-Netzwerke (Neutron) verwenden, insgesamt werden hier drei Ubuntu-Instanzen verwendet, die als Controller, Netzwerk und Rechenknoten fungieren.
OpenStack empfiehlt die folgenden Mindestkonfigurationen für jeden Knoten mit einem 64-Bit-Host-Betriebssystem.
• Controller Node:1 Prozessor, 2 GB Arbeitsspeicher und 5 GB Speicher
• Compute Node:1 Prozessor, 2 GB Arbeitsspeicher und 10 GB Speicher
Das Folgende ist die Netzwerkkonfiguration jedes Knotens.
Rolle | NW-Karte 1 | NW-Karte 2 |
---|---|---|
Controller-Knoten HostName =controller.itzgeek.local (Controller) | 192.168.12.21/24, GW=192.168.12.2 (Verwaltungsnetzwerk) | 192.168.0.21 / 24 GW=192.168.0.1 (Öffentliches Netzwerk – DHCP aktiviert) |
Rechenknoten HostName =compute.itzgeek.local (compute) | 192.168.12.22 / 24 GW=192.168.12.2 (Verwaltungsnetzwerk) | 192.168.0.22 / 24 GW=192.168.0.1 (Öffentliches Netzwerk – DHCP aktiviert) |
* Verwaltung auf 192.168.12.0/24 mit Gateway 192.168.12.1
Dieses Netzwerk erfordert ein Gateway, um allen Knoten für Verwaltungszwecke wie Paketinstallation, Sicherheitsupdates, DNS und NTP Internetzugang bereitzustellen.
* Öffentlich unter 192.168.0.0/24 mit Gateway 192.168.0.1
Dieses Netzwerk erfordert ein Gateway, um Instanzen in Ihrer OpenStack-Umgebung Internetzugriff zu bieten.
Fügen Sie einen Host-Eintrag hinzu, damit die Knoten anstelle der IP-Adresse den Hostnamen verwenden können, um zu kommunizieren. Platzieren Sie es auf allen Knoten.
# nano /etc/hosts # controller 192.168.12.21 controller.itzgeek.local controller # compute 192.168.12.22 compute.itzgeek.local compute
Wenn Sie mit der Konfiguration der IP-Adresse fertig sind, pingen Sie zwischen den Knoten, um die Konnektivität zu überprüfen.
NTP-Server:
Installieren und konfigurieren Sie Chrony (NTP) auf dem Controller-Knoten, damit alle anderen Knoten die Zeit mit dem Controller-Knoten synchronisieren können.
# apt-get install ntp # service ntp restart
Client-NTP-Konfiguration
Installieren Sie das NTP-Paket auf Compute-Knoten und allen Knoten, die Sie in Zukunft hinzufügen.
# apt-get install ntp
Bearbeiten Sie die folgende Konfigurationsdatei.
# nano /etc/ntp.conf
Entfernen Sie andere NTP-Server aus dieser Datei oder kommentieren Sie einfach die Zeilen aus, die mit dem Wort „Server“ beginnen. Fügen Sie den folgenden Eintrag hinzu, um unsere Knoten mit dem Controller-Knoten zu synchronisieren.
server controller
Starten Sie den NTP-Dienst neu.
# service ntp restart
OpenStack-Pakete:
Installieren Sie den Schlüsselbund und das Repository des Ubuntu Cloud-Archivs.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Aktualisieren Sie Ihr System.
# apt-get update && apt-get dist-upgrade
Installieren Sie den OpenStack-Python-Client.
# apt-get install python-openstackclient
Führen Sie die beiden obigen Schritte auf allen Knoten aus.
MySQL-Datenbank installieren:
OpenStack-Komponenten verwenden eine MySQL-Datenbank zum Speichern von Informationen, installieren Sie also MySQL auf dem Controller-Knoten.
# apt-get install mariadb-server python-pymysql
Das Installationsprogramm ruft ein Befehlszeilen-TUI auf, um das MySQL-Root-Passwort festzulegen.
Erstellen und bearbeiten Sie die Datei /etc/mysql/conf.d/mysqld_openstack.cnf Datei
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Fügen Sie die folgenden Werte hinzu und stellen Sie sicher, dass der Bind-Address-Wert auf die Verwaltungs-IP-Adresse des Controller-Knotens gesetzt ist, damit andere Knoten auf die MySQL-Instanz zugreifen können.
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
Starten Sie MySQL neu.
# service mysql restart
Installieren Sie die NoSQL-Datenbank (für den Telemetriedienst):
Der Telemetriedienst verwendet eine NoSQL-Datenbank zum Speichern von Informationen. Die Datenbank wird normalerweise auf dem Controller-Knoten ausgeführt. Hier verwenden wir MongoDB.
Die Installation des NoSQL-Datenbankservers ist nur bei der Installation des Telemetriedienstes notwendig. Andernfalls können Sie dies überspringen.
Installieren Sie MongoDB und das Paket.
# apt-get install mongodb-server mongodb-clients python-pymongo
Bearbeiten Sie die /etc/mongodb.conf Datei.
# vi /etc/mongodb.conf
Fügen Sie die folgenden Werte hinzu und stellen Sie sicher, dass der bind_ip-Wert auf die Verwaltungs-IP-Adresse des Controller-Knotens gesetzt ist, damit andere Knoten auf die MySQL-Instanz zugreifen können. Setzen Sie außerdem smallfiles =true .
# Management interface IP address of the controller node bind_ip = 192.168.12.21 smallfiles = true
Beenden und starten Sie den MongoDB-Dienst.
# service mongodb stop # rm -rf /var/lib/mongodb/journal/prealloc.* # service mongodb start
Installieren Sie RabbitMQ:
RabbitMQ wird von OpenStack verwendet, um Operationen und Statusinformationen zwischen Diensten zu koordinieren. Installieren Sie es auf dem Controller-Knoten.
# apt-get install rabbitmq-server
Openstack-Benutzer hinzufügen.
# rabbitmqctl add_user openstack password
* Ersetzen Sie das Passwort durch Ihr eigenes Passwort.
Openstack-Benutzer Lese-, Schreib- und Konfigurationszugriff erlauben.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Als nächstes müssen Sie den KeyStone-Dienst (OpenStack-Identität) konfigurieren .