Heim >Backend-Entwicklung >Python-Tutorial >So verwalten Sie die Containerisierung von Python-Anwendungen mithilfe von Kubernetes

So verwalten Sie die Containerisierung von Python-Anwendungen mithilfe von Kubernetes

WBOY
WBOYOriginal
2023-08-02 09:18:321286Durchsuche

So verwenden Sie Kubernetes zur Verwaltung der Containerisierung von Python-Anwendungen

Kubernetes ist eine Open-Source-Plattform zur Verwaltung der containerisierten Bereitstellung, der automatisierten Skalierung und der fehlertoleranten Wiederherstellung von Anwendungen. Es bietet einen flexiblen Bereitstellungs- und Erweiterungsmechanismus und kann die Verwaltung und Überwachung von Containern automatisieren. In diesem Artikel wird erläutert, wie Sie mit Kubernetes die Containerisierung von Python-Anwendungen verwalten, und es werden einige einfache Codebeispiele bereitgestellt.

  1. Containerisierte Python-Anwendung vorbereiten

Zuerst müssen wir eine Python-Anwendung vorbereiten und sie in einen Container umwandeln. Angenommen, wir haben eine einfache Webanwendung, die über das Flask-Framework implementiert werden kann. Hier ist ein einfaches Beispiel:

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Wir müssen eine Docker-Datei erstellen, um den Container für diese Anwendung zu erstellen. Hier ist ein einfaches Dockerfile-Beispiel:

# Dockerfile
FROM python:3.9

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

In diesem Dockerfile wählen wir zunächst ein Basis-Image für eine Python-Anwendung (Python:3.9) aus, kopieren dann den Anwendungscode in das Arbeitsverzeichnis des Containers und installieren alle erforderlichen Abhängigkeiten. Schließlich haben wir die Anwendung auf Port 5000 verfügbar gemacht und den Befehl definiert, der beim Start des Containers ausgeführt werden soll.

  1. Docker-Image erstellen

Nachdem wir die Docker-Datei vorbereitet haben, können wir das Docker-Image mit dem folgenden Befehl erstellen:

docker build -t my-python-app .

Dadurch wird ein Docker-Image mit dem Namen my-python-app im aktuellen Verzeichnis erstellt.

  1. Kubernetes-Cluster konfigurieren

Bevor wir fortfahren, müssen wir einen Kubernetes-Cluster konfigurieren. Da die Installation und Konfiguration von Kubernetes den Rahmen dieses Artikels sprengt, gehen wir davon aus, dass Sie bereits über einen funktionierenden Cluster verfügen.

  1. Kubernetes-Bereitstellung erstellen

Als nächstes müssen wir eine Kubernetes-Bereitstellung erstellen, um unsere Anwendungscontainer zu verwalten. Bitte erstellen Sie eine Datei mit dem Namen my-python-app-deployment.yaml und fügen Sie der Datei den folgenden Inhalt hinzu:

# my-python-app-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-python-app-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-python-app
  template:
    metadata:
      labels:
        app: my-python-app
    spec:
      containers:
      - name: my-python-app
        image: my-python-app
        ports:
        - containerPort: 5000

In dieser Bereitstellung haben wir 3 Replikate definiert, um die Anzahl der Replikate des Containers anzugeben, den wir ausführen möchten. Wir definieren außerdem einen Selektor passend zu unserem Deployment und geben den Namen und Port des Container-Images an.

  1. App bereitstellen

Als nächstes können wir unsere App mit dem folgenden Befehl bereitstellen:

kubectl apply -f my-python-app-deployment.yaml

Dadurch wird ein Deployment mit dem Namen my-python-app-deployment erstellt und 3 Kopien des Containers im Cluster gestartet.

  1. Dienste freigeben

Abschließend müssen wir die Dienste der Anwendung offenlegen, damit von außen auf sie zugegriffen werden kann. Bitte erstellen Sie eine Datei mit dem Namen my-python-app-service.yaml und fügen Sie der Datei den folgenden Inhalt hinzu:

# my-python-app-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-python-app-service
spec:
  selector:
    app: my-python-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
  type: LoadBalancer

In diesem Service geben wir die Portzuordnung des Containers an und exportieren ihn als Port 80. Wir geben den Diensttyp auch als „LoadBalancer“ an, um automatisch einen externen Lastausgleicher in einer Umgebung zu erstellen, die den Lastausgleich unterstützt.

  1. Stellen Sie den Dienst bereit

Abschließend können wir den Dienst mit dem folgenden Befehl im Cluster bereitstellen:

kubectl apply -f my-python-app-service.yaml

Dadurch wird ein Dienst namens „my-python-app-service“ erstellt und mit unserem Deployment verknüpft. Kubernetes erstellt automatisch einen externen Load Balancer und leitet den Datenverkehr an unseren Anwendungscontainer weiter.

Zusammenfassung

Durch die oben genannten Schritte haben wir Kubernetes erfolgreich verwendet, um die Containerisierung einer Python-Anwendung zu verwalten. Zuerst bereiten wir eine Python-Anwendung vor und verpacken sie als Docker-Image. Anschließend haben wir eine Kubernetes-Bereitstellung erstellt, um die Anwendung zu containerisieren, und die Anzahl der Replikate definiert, die gestartet werden mussten. Schließlich erstellen wir einen Dienst, um die Dienste der Anwendung verfügbar zu machen und die Kommunikation mit der Außenwelt zu ermöglichen.

Ich hoffe, dieser Artikel hilft Ihnen, Kubernetes zu verstehen und zu verwenden, um die Containerisierung von Python-Anwendungen zu verwalten. Sie können den Beispielcode an Ihre Bedürfnisse anpassen und die Anwendung und ihre Umgebung weiter erweitern und optimieren.

Das obige ist der detaillierte Inhalt vonSo verwalten Sie die Containerisierung von Python-Anwendungen mithilfe von Kubernetes. 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