Die Beherrschung der Cloud-Containerisierung: Ein Schritt-für-Schritt-Leitfaden zur Bereitstellung von Containern in der Cloud

Container haben die Art und Weise, wie wir Anwendungen bereitstellen, skalieren und verwalten, revolutioniert, indem sie Code und Abhängigkeiten in einer standardisierten Einheit verpacken, die konsistent in jeder Umgebung ausgeführt werden kann. In Cloud-Umgebungen bieten Container:

  • Portabilität über Entwicklung, Test und Produktion.
  • Skalierbarkeit, um sich schnell an Verkehr und Nachfrage anzupassen.
  • Effizienz mit reduziertem Overhead im Vergleich zu traditionellen virtuellen Maschinen.

In diesem Tutorial werden wir eine vollständige Einrichtung einer cloudbasierten containerisierten Anwendung durchgehen, die Folgendes abdeckt:

  1. Grundlagen von Containern und warum sie ideal für die Cloud sind.
  2. Einrichten einer dockerisierten Anwendung.
  3. Bereitstellung des Containers bei einem Cloud-Anbieter (unter Verwendung von Google Cloud Platform als Beispiel).
  4. Skalierung und Verwaltung Ihres Containers in der Cloud.

Container-Grundlagen: Wie Container in Cloud-Workflows integriert sind

Container kapseln alle Bibliotheken und Abhängigkeiten ein, die benötigt werden, um eine Anwendung auszuführen. Im Gegensatz zu traditionellen virtuellen Maschinen, bei denen jede ein Betriebssystem hat, teilen Container das Host-Betriebssystem, was sie leichtgewichtig und effizient macht.

Warum Container für die Cloud?

  • Schnelle Startzeiten bedeuten schnellere Skalierung, um variablen Verkehr zu bewältigen.
  • Konsistenz in verschiedenen Umgebungen stellt sicher, dass der Code vom Entwickler-Laptop bis zur Produktion gleich funktioniert.
  • Ressourceneffizienz ermöglicht eine dichte Bereitstellung auf derselben Infrastruktur.

Kernkomponenten der Cloud-Containerisierung

  • Container Engine: Verwaltet und führt Container aus (z.B. Docker, containerd).
  • Orchestrierung: Gewährleistet App-Zuverlässigkeit, Skalierung und Lastenausgleich (z.B. Kubernetes, ECS).
  • Registry: Speichert Container-Images für den Zugriff in verschiedenen Umgebungen (z.B. Docker Hub, GCR).

Einrichten einer dockerisierten Anwendung

Wir beginnen damit, eine einfache Node.js-Anwendung zu containerisieren.

Schritt 1: Erstellen der Anwendung

1. Initialisieren Sie in einem Projektordner ein Node.js-Projekt:   

Shell

 

2. Erstellen Sie eine grundlegende Serverdatei, app.js:

JavaScript

 

 

3. Fügen Sie Express dem Projekt hinzu:    

Shell

 

Schritt 2: Erstellen eines Dockerfiles

Dieses Dockerfile legt fest, wie die App in einem Docker-Container verpackt wird.

Dockerfile

 

Schritt 3: Bauen und Testen des Docker-Images lokal

1. Bauen Sie das Docker-Image:   

Shell

 

2. Führen Sie den Container lokal aus:

Shell

 

 

3. Besuchen Sie `http://localhost:3000` in Ihrem Browser. Sie sollten „Hallo, Cloud Container!“ angezeigt bekommen.

Bereitstellung des Containers auf Google Cloud Platform (GCP)

In diesem Abschnitt werden wir das Container-Image in das Google Container Registry (GCR) hochladen und es auf Google Kubernetes Engine (GKE) bereitstellen.

Schritt 1: Ein GCP-Projekt einrichten

1. Erstellen Sie ein GCP-Projekt. Gehen Sie zur [Google Cloud Console] (https://console.cloud.google.com) und erstellen Sie ein neues Projekt.

2. Aktivieren Sie die APIs für Kubernetes Engine und Container Registry für Ihr Projekt.

Schritt 2: Bild in das Google Container Registry hochladen

1. Taggen Sie das Docker-Image für Google Cloud:

Shell

 

 

2. Laden Sie das Bild in GCR hoch:

Shell

 

Schritt 3: Erstellen eines Kubernetes-Clusters

1. Initialisieren Sie einen GKE-Cluster:

Shell

 

   

2. Konfigurieren Sie kubectl, um sich mit Ihrem neuen Cluster zu verbinden:

Shell

 

Schritt 4: Bereitstellung der containerisierten App in GKE

1. Erstellen Sie eine k8s-deployment.yaml-Datei, um die Bereitstellung und den Dienst zu definieren:

YAML

 

2. Stellen Sie die Anwendung in GKE bereit:

Shell

 

3. Holen Sie die externe IP, um auf die App zuzugreifen:

Shell

 

Skalierung und Verwaltung von Containern in GKE

Schritt 1: Skalieren der Bereitstellung

Um die Anzahl der Replikate anzupassen (z. B. um höheren Verkehr zu bewältigen), verwenden Sie den folgenden Befehl:

Shell

 

GKE wird die App automatisch skalieren, indem es Replikate hinzufügt und die Last verteilt.

Schritt 2: Protokolle überwachen und verwalten

1. Verwenden Sie den folgenden Befehl, um Protokolle für ein bestimmtes Pod in Kubernetes anzuzeigen:

Shell

 

2. Aktivieren Sie das GKE-Dashboard, um den Status der Pods und die Ressourcennutzung zu überwachen und Bereitstellungen visuell zu verwalten.

Fazit: Nutzung von Containern für skalierbare Cloud-Bereitstellungen

Dieses Tutorial behandelte:

  1. Die Containerisierung einer Node.js-App mit Docker.
  2. Bereitstellung auf Google Kubernetes Engine (GKE) für skalierbares, verwaltetes Hosting.
  3. Effektives Verwalten und Skalieren von Containern in der Cloud.

Mit Containern in der Cloud gewinnen Ihre Anwendungen an Skalierbarkeit, Portabilität und Effizienz – und stellen sicher, dass sie bereit sind, die Nachfrage zu bewältigen, sich schnell anzupassen und in verschiedenen Umgebungen konsistent zu bleiben.

Source:
https://dzone.com/articles/a-step-by-step-guide-to-deploying-containers-in-the-cloud