Heim  >  Artikel  >  Backend-Entwicklung  >  Containerisierte Bereitstellung mit Kubernetes in Beego

Containerisierte Bereitstellung mit Kubernetes in Beego

PHPz
PHPzOriginal
2023-06-22 08:01:171124Durchsuche

Containerisierte Bereitstellung mit Kubernetes in Beego

Mit der Popularität von Cloud Computing und Containerisierungstechnologie beginnen immer mehr Webanwendungen, die containerisierte Bereitstellung zu übernehmen. Im Container-Deployment ist Kubernetes zu einem der De-facto-Standards geworden. In diesem Artikel wird erläutert, wie Sie Kubernetes für die Containerbereitstellung in Beego verwenden.

1. Was ist Beego?

Beego ist ein einfaches, schnelles, Go (Golang) basierendes MVC-Framework. Hierbei handelt es sich um ein Open-Source-Framework, mit dem sich schnell leistungsstarke, skalierbare, wartbare und testbare Webanwendungen entwickeln lassen.

2. Was ist Kubernetes?

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem zur Verwaltung von Containeranwendungen. Es bietet die Möglichkeit, die Bereitstellung, Skalierung und Verwaltung von Containeranwendungen zu automatisieren. Kubernetes kann in privaten und öffentlichen Cloud-Umgebungen ausgeführt und bei mehreren Cloud-Anbietern bereitgestellt werden.

3. Warum Kubernetes für die Containerbereitstellung in Beego verwenden?

Die Verwendung von Kubernetes für die Container-Bereitstellung in Beego bietet die folgenden Vorteile:

1 Portabilität: Mithilfe der Container-Bereitstellungstechnologie können Anwendungen in Container abgelegt und mit Kubernetes überall bereitgestellt werden.

2. Automatische Skalierung: Verwenden Sie Kubernetes, um Anwendungscontainer automatisch horizontal zu erweitern und zu verkleinern, um auf Verkehrsänderungen zu reagieren.

3. Hohe Verfügbarkeit: Mit Kubernetes kann eine hohe Verfügbarkeit erreicht werden. Wenn ein Knoten ausfällt, startet Kubernetes den Container automatisch neu.

4. Einfache Verwaltung: Die Verwendung von Kubernetes vereinfacht die Verwaltung von Anwendungen und Infrastruktur.

4. Wie verwende ich Kubernetes für die Containerbereitstellung in Beego?

Die folgenden Schritte sind für die Containerbereitstellung mit Kubernetes in Beego erforderlich:

1 Schreiben Sie eine Docker-Datei: Eine Docker-Datei ist eine Skriptdatei zum Erstellen eines Docker-Containers. Erstellen Sie im Stammverzeichnis der Beego-Anwendung eine Datei mit dem Namen Dockerfile und fügen Sie den folgenden Inhalt hinzu:

FROM golang:1.13 as builder
WORKDIR /app
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o app .

FROM alpine
RUN apk update && apk add --no-cache ca-certificates
WORKDIR /root/
COPY --from=builder /app/app .
CMD ["./app"]

In der obigen Dockerfile-Datei gibt Zeile 1 an, dass das verwendete Basis-Image das offizielle Golang:1.13-Image ist, und Zeile 2 gibt das an job Das Verzeichnis ist /app. Zeile 3 kopiert die Beego-Anwendung in den Container. Zeile 4 lädt die für die Anwendung erforderlichen Module herunter. Zeile 5 kompiliert. Zeile 7 kopiert die Anwendung in ein anderes Basis-Image, alpine, das klein ist und nur notwendige Dateien enthält. Die letzte Zeile gibt den Befehl an, der beim Start des Containers ausgeführt werden soll.

2. Erstellen Sie das Docker-Image: Navigieren Sie zu dem Verzeichnis, in dem sich die Dockerfile-Datei im Terminal befindet, und führen Sie den folgenden Befehl aus, um das Docker-Image zu erstellen:

docker build -t [image name] .

Wobei [Image-Name] der Name des zu erstellenden Docker-Images ist erstellt. Sie können beispielsweise den folgenden Befehl verwenden, um ein Docker-Image mit dem Namen my-app zu erstellen:

docker build -t my-app .

3. Bereitstellung mit Kubernetes: In Kubernetes können Sie die folgenden drei Methoden zur Bereitstellung verwenden:

(1) Bereitstellung mit Bereitstellung: Verwenden Sie die Bereitstellungsressourcendatei (deployment.yaml), um die Bereitstellung der Anwendung zu definieren. Diese Ressourcendatei definiert das zu verwendende Container-Image, die Anzahl der Kopien und andere Informationen. Das Folgende ist ein Beispiel für eine Datei „deployment.yaml“:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 3
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app-container
        image: my-app
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

In dieser Datei gibt Zeile 1 die API-Version an, Zeile 2 gibt die zu erstellende Ressource (Bereitstellung) an, Zeile 4 gibt den Ressourcennamen an und Zeile 7 gibt die an Selektor. Um den zu steuernden Pod anzugeben, gibt Zeile 10 die Anzahl der Kopien an und Zeile 13 gibt Informationen über das Container-Image an.

(2) Pod-Bereitstellung verwenden: Verwenden Sie die Pod-Ressourcendatei (pod.yaml), um die Bereitstellung eines Pods zu definieren. Geben Sie Informationen wie das Container-Image und den Anwendungsport an, die in der Ressourcendatei verwendet werden sollen. Hier ist ein Beispiel einer pod.yaml-Datei:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
    - name: my-app-container
      image: my-app
      imagePullPolicy: Always
      ports:
        - containerPort: 8080

In dieser Datei gibt Zeile 1 die API-Version an, Zeile 2 gibt die zu erstellende Ressource (Pod) an, Zeile 5 gibt den Ressourcennamen an und Zeile 7 gibt die zu erstellende Ressource an use Der Name des Container-Images, Zeile 10 gibt den Anwendungsport an.

(3) Service-Bereitstellung verwenden: Verwenden Sie die Service-Ressourcendatei (service.yaml), um das Service-Objekt zu definieren. Diese Datei gibt Informationen wie den zuzuordnenden Port und den Diensttyp an. Das Folgende ist ein Beispiel für eine service.yaml-Datei:

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

In dieser Datei gibt Zeile 1 die API-Version an, Zeile 2 gibt die zu erstellende Ressource (Dienst) an, Zeile 5 gibt den Ressourcennamen an und Zeile 7 gibt die an Die Dienstauswahl gibt den Diensttyp an und die zehnte Zeile gibt die entsprechende Beziehung zwischen dem Dienstzuordnungsport und dem Containerport an.

Die oben genannten Schritte sind die Schritte für die Containerbereitstellung mit Kubernetes in Beego. Auf diese Weise können Beego-Anwendungen schnell und einfach bereitgestellt werden.

Das obige ist der detaillierte Inhalt vonContainerisierte Bereitstellung mit Kubernetes in Beego. 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