Kubernetes: Node Express-Anwendung bereitstellen
In diesem Tutorial richten Sie mit einem Oracle Cloud Infrastructure-Account ein Kubernetes-Cluster ein. Anschließend stellen Sie eine Node Express-Anwendung in Ihrem Cluster bereit.
Zu den wichtigsten Aufgaben gehören:
- Richten Sie ein Kubernetes-Cluster in OCI ein.
- Richten Sie die OCI-CLI für den Zugriff auf das Cluster ein.
- Erstellen Sie eine Node Express-Anwendung und ein Docker-Image.
- Übertragen Sie das Image per Push an OCIR.
- Stellen Sie Ihre Node.js-Docker-Anwendung in Ihrem Cluster bereit.
- Stellen Sie eine Verbindung zur Anwendung über das Internet her.

Weitere Informationen finden Sie hier:
Bevor Sie beginnen
Für eine erfolgreiche Ausführung des Tutorials benötigen Sie Folgendes:
- Für Container Registry, Kubernetes und Load Balancer:
- Ein kostenpflichtiger Oracle Cloud Infrastructure-Account.
- Siehe Für Oracle Cloud Infrastructure registrieren.
- So erstellen Sie Anwendungen und Docker-Images:
- Eine der folgenden lokalen Umgebungen:
- Ein MacOS- oder Linux-Rechner.
- Ein Windows-Rechner mit Linux-Unterstützung. Beispiel:
- Die folgenden Anwendungen in Ihrer lokalen Umgebung:
- JDK 11 und JAVA_HOME in .bashrc festlegen.
- Python 3.6.8+ und Pip-Installationsprogramm für Python 3
- Kubernetes-Client 1.11.9+
- Apache Maven 3.0+
- Docker 19.0.3+
- Git 1.8+
- Node.js 10+
- Eine der folgenden lokalen Umgebungen:
Wenn Sie die erforderlichen Anwendungen nicht in Ihrer lokalen Umgebung einrichten möchten, können Sie stattdessen Oracle Cloud Infrastructure Cloud Shell verwenden. Der Vorteil der Verwendung von Cloud Shell besteht darin, dass alle erforderlichen Tools zur Verwaltung Ihrer Anwendung bereits installiert und einsatzbereit sind. Befolgen Sie die Schritte 1 und 2 in:
Kubernetes mit Cloud Shell: Spring Boot-Anwendung bereitstellen
Wenn Sie eine OCI Free Tier-Linux-Compute-Instanz zur Verwaltung des Deployments verwenden möchten, erhalten Sie in den folgenden Abschnitten Anweisungen zur Installation der erforderlichen Software.
- Installieren Sie eine Linux-VM mit einer Compute-Ausprägung vom Typ Immer kostenlos auf Oracle Cloud Infrastructure. Sie benötigen einen Rechner mit
SSH
-Unterstützung, um eine Verbindung zu Ihrer Linux-Instanz herzustellen.- Oracle Linux-VM installieren
- Befolgen Sie die Abschnitte 2 und 3.
- Wenn Sie über einen kostenpflichtigen Account verfügen, wählen Sie für Abschnitt 2 die Compute-Optionen basierend auf Ihren Angeboten aus.
- Sie stellen eine Verbindung zur Instanz her, indem Sie die in Abschnitt 4 genannten Schritte 1-5 ausführen.
- Überspringen Sie die Apache-Anweisungen.
- Ubuntu-VM installieren
- Befolgen Sie die Abschnitte 2 und 3.
- Wenn Sie über einen kostenpflichtigen Account verfügen, wählen Sie für Abschnitt 2 die Compute-Optionen basierend auf Ihren Angeboten aus.
- Sie stellen eine Verbindung zur Instanz her, indem Sie die in Abschnitt 4 genannten Schritte 1-5 ausführen.
- Überspringen Sie die Apache-Anweisungen.
- Befolgen Sie zum Aktualisieren der Firewalleinstellungen Schritt 8 in Abschnitt 4.
- Oracle Linux-VM installieren
Installieren Sie Node.js auf Ihrem System.
Um Node.js und NPM zu installieren, führen Sie die folgenden Befehle aus:
- Oracle Linux:
sudo yum update
Richten Sie das Yum-Repository für Node.js ein. Installieren Sie dann das Package
nodejs
.sudo yum install -y oracle-nodejs-release-el7 sudo yum install -y nodejs
- Ubuntu:
sudo apt update
Installieren Sie die Packages
nodejs
undnpm
.sudo apt install -y nodejs sudo apt install -y npm
- Prüfen Sie die Installation.
node -v npm -v
Wenn Sie browserbasierte Tests der Node-Anwendung durchführen möchten, machen Sie Port 3000 auf Ihrer Linux-Instanz verfügbar.
- Oracle Linux
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload
- Ubuntu Linux
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3000 -j ACCEPT sudo netfilter-persistent save
Führen Sie die folgenden Schritte aus, um das öffentliche Subnetz des VCN auszuwählen und die Ingress-Regel hinzuzufügen.
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Networking, Virtuelle Cloud-Netzwerke.
- Wählen Sie das VCN aus, das Sie mit Ihrer Compute-Instanz erstellt haben.
- Wenn das neue VCN angezeigt wird, klicken Sie auf den Link für das Subnetz <your-subnet-name>.
Die Informationen zum öffentlichen Subnetz werden unten auf der Seite mit den Sicherheitslisten angezeigt. Ein Link zur Standardsicherheitsliste für Ihr VCN wird angezeigt.
- Klicken Sie auf den Link Standardsicherheitsliste.
Die Standard-Ingress-Regeln für das VCN werden angezeigt.
- Klicken Sie auf Ingress-Regeln hinzufügen.
Das Dialogfeld Ingress-Regeln hinzufügen wird angezeigt.
- Geben Sie die folgenden Informationen für die Ingress-Regel ein.
Geben Sie die Ingress-Regel wie folgt ein:
- zustandslos: Aktiviert
- Quelltyp: CIDR
- Quell-CIDR: 0.0.0.0/0
- IP-Protokoll: TCP
- Quellportbereich: (leer lassen)
- Zielportbereich: 3000
- Beschreibung: HTTP-Verbindungen zulassen
- Klicken Sie auf Ingress-Regel hinzufügen.
Jetzt sind HTTP-Verbindungen zulässig. Das VCN ist für Node Express konfiguriert.
Sie haben erfolgreich eine Ingress-Regel erstellt, die Ihre Instanz über das Internet verfügbar macht.
- Prüfen Sie die aktuelle Version.
python3 --version
- Führen Sie für Python 3 die folgenden Befehle aus:
- Oracle Linux:
sudo yum update
sudo yum install -y python3
- Ubuntu:
sudo apt update
sudo apt install -y python3
- Oracle Linux:
- Prüfen Sie die Pip-Installation für Python3.
pip3 -V
Beispielausgabe, wenn Pip für Python3 installiert ist:
pip <version> from xxx/lib/python3.x/site-packages/pip (python 3.x)
- Führen Sie zum Installieren von Pip für Python 3 die folgenden Befehle aus:
- Oracle Linux:
sudo yum update
sudo yum install -y python3-pip
- Ubuntu:
sudo apt update
sudo apt install -y python3-pip
- Oracle Linux:
- Prüfen Sie die Installation von Pip für Python 3.
pip3 -V
- Prüfen Sie die aktuelle Version:
kubectl version --client
Wenn Sie Kubernetes verwenden, lautet die Version<major-version>.<minor-version>
. Für Version 1.20 erhalten Sie beispielsweise Folgendes:version.Info{Major:"1", Minor:"20"...
- Informationen zur Installation des
kubectl
-Clients finden Sie unter folgenden Links: - Prüfen Sie die Installation.
kubectl version --client
- Prüfen Sie die aktuelle Version:
docker -v
- Oracle Linux
Um Docker auf Oracle Linux zu installieren, führen Sie die folgenden Befehle aus.
sudo yum install docker-engine
sudo systemctl start docker
sudo systemctl enable docker
Hinweis: Mit dem letzten Befehl wird der Start von Docker bei Neustarts aktiviert.
- Ubuntu Linux
Informationen zur Installation von Docker auf Ubuntu Linux finden Sie unter dem folgenden Link: Docker herunterladen
- Prüfen Sie die Installation.
docker -v
1. Vorbereiten
Bereiten Sie die Umgebung vor, um Ihre Anwendung zu erstellen und bereitzustellen.
- Melden Sie sich bei der Oracle Cloud Infrastructure-Konsole an.
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Governance und Administration. Klicken Sie unter Governance auf Limits, Quota und Nutzung.
- Suchen Sie nach dem Servicelimit für Regionen:
- Filtern Sie nach den folgenden Optionen:
- Service: Regionen
- Geltungsbereich: Mandant
- Ressource: Anzahl abonnierte Regionen
- Compartment:
<tenancy-name>
(Root)
- Servicelimit suchen:
- Limitname:
subscribed-region-count
- Leistungslimit: Mindestens 2
- Limitname:
- Filtern Sie nach den folgenden Optionen:
- Suchen Sie nach der verfügbaren Compute-Coreanzahl für die Ausprägung VM.Standard.E3.Flex:
- Filtern Sie nach den folgenden Optionen:
- Service: Compute
- Bereich:
<first-availability-domain>
. Beispiel:EMlr:US-ASHBURN-AD-1
- Ressource: Cores für die Instanzen Standard.E3.Flex und BM.Standard.E3.128
- Compartment:
<tenancy-name>
(Root)
- Nach der verfügbaren Coreanzahl suchen:
- Limitname:
standard-e3-core-ad-count
- Verfügbar: Mindestens 1
- Limitname:
- Wiederholen Sie den Vorgang für Geltungsbereich:
<second-availability-domain>
und<third-availability-domain>
. In jeder Region muss mindestens ein Core für diese Ausprägung verfügbar sein.
- Filtern Sie nach den folgenden Optionen:
- Überprüfen Sie, ob 50 GB Block-Volume-Speicher verfügbar sind:
- Filtern Sie nach den folgenden Optionen:
- Service: Block-Volume
- Bereich:
<first-availability-domain>
. Beispiel:EMlr:US-ASHBURN-AD-1
- Ressource: Volume-Größe (GB)
- Compartment:
<tenancy-name>
(Root)
- Nach verfügbarem Block-Volume-Speicher suchen:
- Limitname:
total-storage-gb
- Verfügbar: Mindestens 50
- Limitname:
- Wiederholen Sie den Vorgang für Geltungsbereich:
<second-availability-domain>
und<third-availability-domain>
. In jeder Region müssen mindestens 50 GB Block-Volume-Speicher verfügbar sein.
- Filtern Sie nach den folgenden Optionen:
- Überprüfen Sie, wie viele flexible Load Balancer verfügbar sind:
- Filtern Sie nach den folgenden Optionen:
- Service: LbaaS
- Bereich:
<your-region>
. Beispiel:us-ashburn-1
- Ressource:
<blank>
- Compartment:
<tenancy-name>
(Root)
- Nach der Anzahl der verfügbaren flexiblen Load Balancer suchen:
- Limitname:
lb-flexible-count
- Verfügbar: Mindestens 1
- Limitname:
- Filtern Sie nach den folgenden Optionen:
In diesem Tutorial werden drei Compute-Instanzen mit einer VM.Standard.E3.Flex-Ausprägung für die Clusterknoten erstellt. Wenn Sie eine andere Ausprägung verwenden möchten, filtern Sie nach der Coreanzahl. Beispiel: Filtern Sie für VM.Standard2.4 nach Cores für Standard2-basierte VM- und BM-Instanzen, und rufen Sie die Anzahl ab.
Eine Liste aller Ausprägungen finden Sie unter VM-Standardausprägungen.
In diesem Tutorial erstellen Sie mithilfe des Workflows "Schnellerstellung" ein Cluster mit einem öffentlichen regionalen Subnetz, das einen flexiblen Load Balancer hostet. Um einen anderen Load Balancer zu verwenden, können Sie mit einem benutzerdefinierten Workflow explizit angeben, welche vorhandenen Netzwerkressourcen verwendet werden sollen. Dazu gehören etwa vorhandene Subnetze, in denen die Load Balancer erstellt werden sollen.
Wenn Sie für den Load Balancer eine andere Bandbreite verwenden möchten, filtern Sie nach ihrerAnzahl, z.B. 100 Mbit/s Bandbreite oder 400 Mbit/s Bandbreite.
- Wählen Sie in der Navigationsleiste das Menü Profil und dann die Option Benutzereinstellungen oder Mein Profil, je nach der angezeigten Option aus.
- Klicken Sie auf Authentifizierungstoken.
- Klicken Sie auf Token generieren.
- Geben Sie eine Beschreibung ein.
- Klicken Sie auf Token generieren.
- Kopieren Sie das Token, und speichern Sie es.
- Klicken Sie auf Schließen.
Speichern Sie das Token direkt nach dem Erstellen. Sie haben später keinen Zugriff mehr darauf.
Python virtualenv
erstellt einen Ordner, der alle ausführbaren Dateien und Librarys für das Projekt enthält.
virtualenvwrapper
ist eine Erweiterung von virtualenv
. Er bietet eine Reihe von Befehlen, wodurch das Arbeiten mit virtuellen Umgebungen komfortabler wird. Außerdem werden alle virtuellen Umgebungen an einem Ort platziert. virtualenvwrapper
ermöglicht die Tab-Vervollständigung von Umgebungsnamen.
- Installieren Sie
virtualenv
.pip3 install --user virtualenv
- Installieren Sie
virtualenvwrapper
.pip3 install --user virtualenvwrapper
- Suchen Sie nach dem Speicherort des Skripts
virtualenvwrapper.sh
.grep -R virtualenvwrapper.sh
Beispielpfade:- Linux-Beispiel:
/home/ubuntu/.local/bin/virtualenvwrapper.sh
- MacOS-Beispiel:
/usr/local/bin/virtualenvwrapper.sh
- Linux-Beispiel:
- Konfigurieren Sie den Wrapper der virtuellen Umgebung in
.bashrc
.sudo vi .bashrc
Hängen Sie folgenden Text an.
# set up Python env export WORKON_HOME=~/envs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 ' source <path-to-virtualenvwrapper.sh>
Ersetzen Sie
<path-to-virtualenvwrapper.sh>
durch seinen Wert.Ändern Sie
/usr/bin/python3
basierend auf dem Speicherort der Python3-Binärdateien in Ihrer Umgebung in den richtigen Speicherort.Speichern Sie die Datei.
- Aktivieren Sie die Befehle im aktuellen Fenster.
source ~/.bashrc
Beispielausgabe:virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/initialize virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/prermvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postrmvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/predeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postdeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/preactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postactivate
- Starten Sie eine virtuelle Umgebung.
workon cli-app
- Vergewissern Sie sich, dass der Name der virtuellen Umgebung,
cli-app
, links neben der Eingabeaufforderung angezeigt wird.Beispiel:
(cli-app) ubuntu@<ubuntu-instance-name>:~$
- Installieren Sie die OCI-CLI.
pip3 install oci-cli
- Testen Sie die Installation.
oci --version
Falls die Einrichtung korrekt ist, erhalten Sie die Version.
oci --help
- Geben Sie den folgenden Befehl in die virtuelle Umgebung ein:
oci setup config
- Geben Sie Ihre Antworten aus dem Abschnitt Erforderliche Informationen erfassen ein:
- Speicherort für die Konfiguration [$HOME/.oci/config]:
<take-default>
- Benutzer-OCID:
<user-ocid>
- Mandanten-OCID:
<tenancy-ocid>
- Region (Beispiel: us-ashburn-1):
<region-identifier>
- Speicherort für die Konfiguration [$HOME/.oci/config]:
- Geben Sie die folgenden Informationen ein, um Ihre OpenSSL-API-Verschlüsselungsschlüssel einzurichten:
- Neues RSA-Schlüsselpaar für API-Signatur generieren? [Y/n]: J
- Verzeichnis für Ihre Schlüssel [$HOME/.oci]:
<take-default>
- Name für Ihren Schlüssel [oci_api_key]
<take-default>
- Deaktivieren Sie die virtuelle Umgebung:
deactivate
Das Präfix
(cli-app)
in Ihrer Umgebung wird nicht mehr angezeigt.
Ihr Private Key ist
oci_api_key.pem
, und Ihr Public Key ist oci_api_key_public.pem
.- Aktivieren Sie die
cli-app
-Umgebung:workon cli-app
- Zeigen Sie den Public Key an.
cat $HOME/.oci/oci_api_key_public.pem
- Kopieren Sie den Public Key.
- Fügen Sie den Public Key zu Ihrem Benutzeraccount hinzu:
- Gehen Sie zur Konsole.
- Wählen Sie in der Navigationsleiste das Menü Profil und dann die Option Benutzereinstellungen oder Mein Profil, je nachdem, welche Option angezeigt wird.
- Klicken Sie auf API-Schlüssel.
- Klicken Sie auf API-Schlüssel hinzufügen.
- Klicken Sie auf Public Key einfügen.
- Wert aus vorherigem Schritt einfügen, einschließlich der Zeilen mit
BEGIN PUBLIC KEY
undEND PUBLIC KEY
. - Klicken Sie auf Hinzufügen.
- Wenn Sie die OCI-CLI verwenden möchten, aktivieren Sie sie mit:
workon cli-app
- Wenn Sie Projektnamen ändern, deaktiviert
workon
Ihre aktuelle Arbeitsumgebung. Auf diese Weise können Sie schnell zwischen Umgebungen wechseln.
2. Cluster einrichten
Installieren und konfigurieren Sie Verwaltungsoptionen für Ihr Kubernetes-Cluster. Stellen Sie die Anwendung später in diesem Cluster bereit.
Wenn sich Ihr Benutzername in der Gruppe Administratoren befindet, überspringen Sie diesen Abschnitt. Andernfalls muss der Administrator Ihrem Mandanten die folgende Policy hinzufügen:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
Mit dieser Berechtigung können Sie ein Compartment für alle Ressourcen in Ihrem Tutorial erstellen.
- Wählen Sie in der Navigationsleiste das Menü Profil und dann die Option Benutzereinstellungen oder Mein Profil, je nachdem, welche Option angezeigt wird.
- Klicken Sie im linken Fensterbereich auf Gruppen.
- Kopieren Sie den Gruppennamen, zu dem Ihr Benutzername gehört, in Notepad.
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Identität und Sicherheit. Klicken Sie unter Identität auf Policys.
- Wählen Sie Ihr Compartment in der Dropdown-Liste Compartment aus.
- Klicken Sie auf Policy erstellen.
- Geben Sie die folgenden Informationen ein:
- Name:
manage-compartments
- Beschreibung:
Allow the group <the-group-your-username-belongs> to list, create, update, delete and recover compartments in the tenancy.
- Compartment:
<your-tenancy>(root)
- Name:
- Klicken Sie unter Policy Builder auf Manuellen Editor anzeigen.
- Fügen Sie die folgende Policy ein:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
- Klicken Sie auf Erstellen.
Referenz: Der Ressourcentyp compartments
in Kombinationen aus Verben + Ressourcentyp für IAM
Erstellen Sie ein Compartment für die Ressourcen, die Sie in diesem Tutorial erstellen.
- Melden Sie sich bei der Oracle Cloud Infrastructure-Konsole an.
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Identität und Sicherheit. Klicken Sie unter Identität auf Compartments.
- Klicken Sie auf Compartment erstellen.
- Geben Sie die folgenden Informationen ein:
- Name:
<your-compartment-name>
- Beschreibung:
Compartment für <your-description>.
- Übergeordnetes Compartment:
<your-tenancy>(Root)
- Name:
- Klicken Sie auf Compartment erstellen.
Referenz: Compartment erstellen
Wenn sich Ihr Benutzername in der Gruppe Administratoren befindet, überspringen Sie diesen Abschnitt. Andernfalls muss der Administrator Ihrem Mandanten die folgende Policy hinzufügen:
allow group <the-group-your-username-belongs> to manage all-resources in compartment <your-compartment-name>
Mit dieser Berechtigung können Sie alle Ressourcen im Compartment verwalten, was Ihnen im Wesentlichen Administratorrechte in diesem Compartment gewährt.
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Identität und Sicherheit. Klicken Sie unter Identität auf Policys.
- Wählen Sie Ihr Compartment in der Dropdown-Liste Compartment aus.
- Klicken Sie auf Policy erstellen.
- Geben Sie die folgenden Informationen ein:
- Name:
manage-<your-compartment-name>-resources
- Beschreibung:
Auflisten, Erstellen, Aktualisieren und Löschen von Ressourcen in <your-compartment-name> durch Benutzer zulassen.
- Compartment:
<your-tenancy>(root)
- Name:
- Wählen Sie unter Policy Builder die folgenden Optionen aus:
- Policy-Anwendungsfälle:
Compartment-Verwaltung
- Allgemeine Policy-Vorlagen:
Verwalten des Compartments durch Compartment-Administratoren zulassen
- Gruppen:
<the-group-your-username-belongs>
- Speicherort:
<your-tenancy>(root)
- Policy-Anwendungsfälle:
- Klicken Sie auf Erstellen.
Referenz: Standard-Policys
Erstellen Sie ein Cluster mit Standardeinstellungen und neuen Netzwerkressourcen über den Workflow "Schnellerstellung".
Nachdem Sie ein Kubernetes-Cluster erstellt haben, richten Sie das lokale System für den Zugriff auf das Cluster ein.
Wenn der Clusterzugriff eingerichtet ist, können Sie Ihre Anwendung jetzt auf das Deployment vorbereiten.
3. Lokale Anwendung erstellen
Erstellen Sie eine lokale Anwendung und ein Docker-Image für die Anwendung.
Erstellen Sie die Node.js-Anwendung.
Sie haben die Node.js-Anwendung erfolgreich eingerichtet.
Führen Sie die Node.js-Anwendung aus.
Sie haben erfolgreich eine "Hello World"-Anwendung mit Node.js und Express erstellt.
Referenzen:
- Ausführliche Informationen zu diesem Beispiel finden Sie unter Erste Schritte mit Express.
Erstellen Sie als Nächstes ein Docker-Image für Ihre Node.js-Express-Anwendung.
4. Docker-Image bereitstellen
Übertragen Sie das Node.js-Express-Image per Push an OCI Container Registry. Verwenden Sie dann das Image, um Ihre Anwendung bereitzustellen.
Nachdem das lokale Docker-Image erstellt wurde, übertragen Sie das Image an die Container Registry.
Gehen Sie wie folgt vor.
Suchen Sie Ihr Image in Container Registry, nachdem der Push-Befehl abgeschlossen ist.
Weitere Schritte
Sie haben mit dem Node Express-Framework erfolgreich eine "Hello World"-Anwendung erstellt, in einem Kubernetes-Cluster bereitgestellt und Internetzugriff darauf über das Node Express-Framework eingerichtet.
Auf diesen Sites finden Sie weitere Informationen zur Entwicklung mit Oracle-Produkten: