Heim >Backend-Entwicklung >Golang >Ausführliche Erläuterung der Container-Orchestrierung und der automatisierten Bereitstellung des Gin-Frameworks

Ausführliche Erläuterung der Container-Orchestrierung und der automatisierten Bereitstellung des Gin-Frameworks

WBOY
WBOYOriginal
2023-06-23 08:54:121168Durchsuche

Gin-Framework ist ein leichtes Web-Framework, das für die schnelle Entwicklung von APIs und Webanwendungen geeignet ist. Es zeichnet sich durch hohe Leistung, einfache Skalierbarkeit und viele über Middleware implementierte Funktionen wie Authentifizierung, Routing, Anforderungsprotokolle usw. aus. In der tatsächlichen Entwicklung können wir Docker-Container verwenden, um Gin-Anwendungen zu verwalten und sie mithilfe von Kubernetes-Clustern automatisch bereitzustellen.

1. Docker-Container-Orchestrierung

Docker ist eine effiziente und leichte Containerisierungstechnologie, die es uns ermöglicht, Anwendungen schnell auf jeder Plattform bereitzustellen und auszuführen. Wir können Docker verwenden, um Gin-Anwendungen zu verpacken und sie auf lokalen oder Cloud-Servern bereitzustellen. Die spezifischen Schritte sind wie folgt:

1. Schreiben Sie eine Docker-Datei

Zuerst müssen wir eine Docker-Datei schreiben, die den Erstellungsprozess des Docker-Containers beschreibt. In der Docker-Datei müssen wir das Basis-Image angeben, abhängige Pakete installieren, die Anwendung in den Container kopieren und andere Vorgänge ausführen. Das Folgende ist ein einfaches Dockerfile-Beispiel:

FROM golang:1.16-alpine

WORKDIR /app
COPY . .

RUN go build -o main .

EXPOSE 8080
CMD ["./main"]

In dieser Dockerfile verwenden wir das offizielle Image von Golang 1.16 als Basisimage, legen das Arbeitsverzeichnis auf /app fest und kopieren alle Dateien im aktuellen Verzeichnis in das /app-Verzeichnis des Containers . Anschließend haben wir den Befehl „go build“ ausgeführt, um die Anwendung zu kompilieren, und sie „main“ genannt. Schließlich haben wir Port 8080 im Container freigelegt und die Anwendung per CMD-Befehl gestartet.

2. Erstellen Sie das Docker-Image

Nachdem wir die Docker-Datei geschrieben haben, müssen wir den Docker-Build-Befehl verwenden, um das Docker-Image zu erstellen. Führen Sie den folgenden Befehl im Terminal aus:

docker build -t gin-app:latest .

Dieser Befehl erstellt ein Docker-Image mit dem Namen gin-app im aktuellen Verzeichnis und die Bezeichnung dieses Images lautet „latest“.

3. Führen Sie den Docker-Container aus.

Nachdem wir das Docker-Image erstellt haben, können wir den Docker-Run-Befehl verwenden, um den Container auszuführen. Bevor wir den Container ausführen, sollten wir festlegen, auf welchem ​​Port wir die Anwendung verfügbar machen möchten. In diesem Beispiel ordnen wir den Port 8080 des Containers dem Port 8080 des lokalen Hosts zu. Führen Sie den folgenden Befehl aus:

docker run -d -p 8080:8080 gin-app:latest

Dieser Befehl führt einen Container namens gin-app im Hintergrund aus und ordnet den 8080-Port im Container dem 8080-Port des Hosts zu. Zu diesem Zeitpunkt sollte die Gin-Anwendung bereits über Port 8080 auf localhost erreichbar sein.

2. Automatisierte Bereitstellung von Kubernetes

Kubernetes ist ein Container-Orchestrierungssystem, das uns dabei helfen kann, Anwendungen automatisch bereitzustellen, zu erweitern und zu verwalten. In Kubernetes können wir Anwendungsbereitstellung und Dienste über Yaml-Dateien definieren. Die spezifischen Schritte sind wie folgt:

1. Schreiben Sie eine Bereitstellungsdatei

Bereitstellung ist ein Kernkonzept, das von Kubernetes zum Bereitstellen und Aktualisieren von Anwendungen verwendet wird. Bei der Bereitstellung definieren wir Attribute wie die Anzahl der Kopien der Anwendung, Container-Images, Umgebungsvariablen und bereitgestellte Volumes. Das Folgende ist ein einfaches Bereitstellungsbeispiel:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gin-app-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: gin-app
  template:
    metadata:
      labels:
        app: gin-app
    spec:
      containers:
      - name: gin-app
        image: gin-app:latest
        ports:
        - containerPort: 8080

In diesem Beispiel definieren wir ein Bereitstellungsobjekt mit dem Namen gin-app-deployment und geben die Anzahl der Replikate der Anwendung auf 2 an. Der Selektor wird verwendet, um den bereitzustellenden Pod auszuwählen. Hier haben wir den Pod mit der Bezeichnung app=gin-app ausgewählt. In der Pod-Vorlage definieren wir einen Container mit dem Namen gin-app, verknüpfen ihn mit dem zuvor erstellten Docker-Image gin-app:latest und geben an, dass der für andere Container verfügbare Port im Container 8080 ist.

2. Schreiben Sie die Servicedatei

Service ist ein Objekt, das in Kubernetes zur Bereitstellung von Lastausgleichsdiensten verwendet wird. Es kann Anforderungen innerhalb des Clusters an den richtigen Pod weiterleiten. Das Folgende ist ein einfaches Service-Beispiel:

apiVersion: v1
kind: Service
metadata:
  name: gin-app-service
spec:
  selector:
    app: gin-app
  ports:
  - name: http
    port: 80
    targetPort: 8080
  type: LoadBalancer

In diesem Beispiel definieren wir ein Service-Objekt mit dem Namen gin-app-service und geben den Pod mit der Bezeichnung app=gin-app als Backend an, und der Port des Service ist 80 und leitet die Anfrage an den Port 8080 des Containers weiter. Die Typoption gibt den Typ des Dienstes als LoadBalancer an, sodass Kubernetes einen externen Lastausgleicher für diesen Dienst erstellt, damit wir von außen auf diesen Dienst zugreifen können.

3. Anwendungsbereitstellung

Nachdem wir die Bereitstellungs- und Servicedateien geschrieben haben, können wir sie mit dem Befehl kubectl im Kubernetes-Cluster bereitstellen. Führen Sie die folgenden Befehle im Terminal aus:

kubectl create -f gin-app-deployment.yaml
kubectl create -f gin-app-service.yaml

Diese beiden Befehle erstellen die beiden Kubernetes-Objekte gin-app-deployment und gin-app-service und stellen sie im Kubernetes-Cluster bereit. Nachdem die Bereitstellung abgeschlossen ist, können wir den Befehl kubectl get verwenden, um ihren Status anzuzeigen:

kubectl get deployments
kubectl get services

In der Ausgabe dieser beiden Befehle sollten wir in der Lage sein, die von uns erstellten Bereitstellungs- und Serviceobjekte sowie deren jeweilige Anzahl an Kopien zu sehen , Informationen wie IP-Adresse und Portnummer.

3. Zusammenfassung

Durch die oben erwähnte Docker-Container-Orchestrierung und die automatisierte Kubernetes-Bereitstellung können wir Gin-Anwendungen schnell in jeder Umgebung bereitstellen. Dieser Ansatz kann die Entwicklungseffizienz erheblich verbessern und den Arbeitsaufwand für Bereitstellung und Wartung verringern. Gleichzeitig ermöglichen uns die Hochverfügbarkeits- und Skalierbarkeitsfunktionen von Kubernetes auch eine einfache Erweiterung des Anwendungsumfangs, um sich ändernden Geschäftsanforderungen gerecht zu werden.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Container-Orchestrierung und der automatisierten Bereitstellung des Gin-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn