Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen?

Wie verwende ich Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen?

WBOY
WBOYOriginal
2023-07-31 12:28:491664Durchsuche

Wie verwende ich Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen?

Kubernetes ist eine Open-Source-Container-Orchestrierungs-Engine, die die Bereitstellung, Erweiterung und Verwaltung von Containern automatisieren kann. Es bietet gute Funktionen zur Container-Orchestrierung und erleichtert so die Erstellung und Bereitstellung von Anwendungen. In diesem Artikel wird die Verwendung von Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen vorgestellt und entsprechende Codebeispiele bereitgestellt.

1. Vorbereitung

  1. Docker installieren: Bevor Sie beginnen, müssen Sie Docker installieren. Docker ist eine beliebte Containerisierungsplattform und wir werden Docker verwenden, um unsere Anwendungsimages zu erstellen und zu verpacken. Sie können je nach Betriebssystem die geeignete Installationsmethode auswählen.
  2. Kubernetes installieren: Als nächstes müssen Sie den Kubernetes-Cluster installieren. Kubernetes bietet ein Cluster-Management-Framework, das zum Bereitstellen und Verwalten von Containeranwendungen verwendet werden kann. Der Beamte stellt einige Installationstools wie kubeadm, Minikube usw. zur Verfügung. Sie können die geeignete Installationsmethode entsprechend den tatsächlichen Anforderungen auswählen.

2. Erstellen Sie das Docker-Image
Bevor Sie das Docker-Image erstellen, müssen Sie zunächst eine Docker-Datei schreiben. Eine Docker-Datei ist ein Skript zum Erstellen eines Docker-Images, das verschiedene Anweisungen enthält, die zum Erstellen und Ausführen des Images erforderlich sind. Das Folgende ist ein einfaches Dockerfile-Beispiel:

FROM php:7.4-apache

COPY . /var/www/html

RUN chown -R www-data:www-data /var/www/html

Die obige Dockerfile verwendet das offiziell bereitgestellte PHP 7.4-Apache-Image als Basisimage, kopiert alle Dateien im aktuellen Verzeichnis in das Verzeichnis /var/www/html des Containers und legt fest es entsprechend Berechtigungen.

Führen Sie nach dem Speichern der Docker-Datei den folgenden Befehl aus, um das Docker-Image zu erstellen:

docker build -t my-php-app:v1 .

Unter anderem wird der Parameter -t verwendet, um den Namen und die Bezeichnung des Images anzugeben. Nach der Ausführung können Sie den folgenden Befehl verwenden, um das erstellte Image anzuzeigen:

docker images

3. Erstellen Sie eine Kubernetes-Bereitstellung
In Kubernetes verwenden Sie die Bereitstellung, um Replikatsätze von Anwendungen zu definieren und zu verwalten. Hier ist ein einfaches Bereitstellungsbeispiel:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-php-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-php-app
  template:
    metadata:
      labels:
        app: my-php-app
    spec:
      containers:
      - name: my-php-app
        image: my-php-app:v1
        ports:
        - containerPort: 80

Die obige Bereitstellung definiert eine Containeranwendung namens my-php-app mit 3 Replikaten. Es verwendet das my-php-app:v1-Image, das wir im vorherigen Schritt erstellt haben, und ordnet den Port 80 des Containers dem Port 80 des Hosts zu.

Führen Sie nach dem Speichern der Bereitstellungsdefinitionsdatei den folgenden Befehl aus, um die Bereitstellung zu erstellen:

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

Sie können den folgenden Befehl verwenden, um die erstellte Bereitstellung anzuzeigen:

kubectl get deployments

4. Einen Kubernetes-Dienst erstellen
Der Kubernetes-Dienst wird verwendet, um den bereitzustellen Port der Anwendung, sodass externe Anfragen auf die Anwendung zugreifen können. Das Folgende ist ein einfaches Dienstbeispiel:

apiVersion: v1
kind: Service
metadata:
  name: my-php-app-service
spec:
  selector:
    app: my-php-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Der obige Dienst definiert einen Dienst mit dem Namen my-php-app-service, der die damit verbundene Bereitstellung über einen Selektor auswählt. Leiten Sie die Anfrage von Port 80 des Hosts an Port 80 des Containers weiter und geben Sie den Diensttyp als LoadBalancer an.

Führen Sie nach dem Speichern der Dienstdefinitionsdatei den folgenden Befehl aus, um den Dienst zu erstellen:

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

Sie können den folgenden Befehl verwenden, um den erstellten Dienst anzuzeigen:

kubectl get services

5. Greifen Sie auf die Anwendung zu.
Nachdem Sie die oben genannten Schritte ausgeführt haben, wird Kubernetes dies tun Wir stellen unsere PHP-Anwendungen automatisch bereit und verwalten sie. Sie können den folgenden Befehl verwenden, um den erstellten Pod anzuzeigen:

kubectl get pods

Suchen Sie den Namen eines der Pods. Mit dem folgenden Befehl können Sie das Protokoll des Pods anzeigen:

kubectl logs <pod名称>

Sie können den folgenden Befehl verwenden, um den externen Zugriff zu erhalten Adresse des Dienstes:

minikube service my-php-app-service --url

Kopieren Sie die Ausgabeadresse und öffnen Sie sie in einem Browser, um auf unsere PHP-Anwendung zuzugreifen.

6. Zusammenfassung
In diesem Artikel wird die Verwendung von Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen vorgestellt. Durch die Erstellung von Docker-Images und die Erstellung von Kubernetes-Bereitstellungen und -Diensten können wir unsere PHP-Anwendungen einfach bereitstellen und verwalten. Im tatsächlichen Einsatz können je nach Bedarf weitere Konfigurationen und Optimierungen durchgeführt werden, um den tatsächlichen Anforderungen gerecht zu werden.

Das obige ist der detaillierte Inhalt vonWie verwende ich Kubernetes für die Containerverpackung und Bereitstellung von PHP-Programmen?. 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