Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Kubernetes mit PHP?

Wie verwende ich Kubernetes mit PHP?

PHPz
PHPzOriginal
2023-05-12 08:40:351670Durchsuche

In den letzten Jahren hat sich Kubernetes zu einem der wichtigsten Tools für die Containerbereitstellung entwickelt, und PHP ist eine häufig verwendete Sprache für die Anwendungsentwicklung. Die Verwendung von Kubernetes in PHP ist zu einem wichtigen Thema geworden. In diesem Artikel wird die Verwendung von Kubernetes in PHP vorgestellt, einschließlich der Erstellung eines Kubernetes-Clusters, der Verwendung von Kubernetes zum Hosten von PHP-Anwendungen und der Interaktion mit Kubernetes in PHP-Anwendungen.

1. Erstellen Sie einen Kubernetes-Cluster

Bevor Sie Kubernetes verwenden, müssen Sie zunächst einen Kubernetes-Cluster erstellen. Um einen Kubernetes-Cluster zu erstellen, können Sie sich für Selbsthosting oder den Kubernetes-Dienst eines Cloud-Dienstanbieters entscheiden.

Für das Selbsthosting können Sie Tools wie Ansible oder Terraform verwenden, um Kubernetes-Cluster automatisch bereitzustellen. Ich werde hier nicht auf Details eingehen. Sie können auf die Links am Ende des Artikels verweisen, um sich selbst relevantes Wissen anzueignen.

Für Kubernetes-Dienste, die von Cloud-Dienstanbietern wie dem Containerdienst von Alibaba Cloud und der Kubernetes Engine von Google Cloud bereitgestellt werden, können Sie sich zum Erstellen eines Kubernetes-Clusters auf die offizielle Dokumentation beziehen.

Nachdem der Cluster erstellt wurde, müssen Sie das Befehlszeilentool kubectl installieren, um den Kubernetes-Cluster zu verwalten. Sie können die entsprechende kubectl-Version von der offiziellen Kubernetes-Website herunterladen und gemäß der Dokumentation installieren.

2. Verwenden Sie Kubernetes zum Hosten von PHP-Anwendungen.

Die Schritte zur Verwendung von Kubernetes zum Hosten von PHP-Anwendungen sind wie folgt:

  1. Deployment definieren

Deployment ist ein Objekt, das zum Verwalten einer bestimmten Pod-Kopie in Kubernetes verwendet werden kann einfach als Pod-Steuergerät verstanden. Beim Definieren einer Bereitstellung müssen Sie die Image-Informationen und die Anzahl der Kopien der Anwendung angeben.

Die spezifische Definitionsmethode lautet wie folgt:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-app
  labels:
    app: php
spec:
  replicas: 3
  selector:
    matchLabels:
      app: php
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php
        image: php:7.4-apache
        ports:
        - containerPort: 80
        volumeMounts:
          - name: code
            mountPath: /var/www/html
      volumes:
        - name: code
          configMap:
            name: code-config

Die obige Yaml-Datei definiert eine Bereitstellung mit dem Namen php-app, die Anzahl der Kopien beträgt 3 und der Spiegel ist php:7.4-Apache. Port 80 wird im Container verfügbar gemacht und ein ConfigMap-benannter Code wird bereitgestellt.

  1. Service definieren

In Kubernetes wird Service verwendet, um den Zugriffseingang einer Reihe von Pods zu definieren und Ports freizugeben. Beim Definieren eines Dienstes müssen Sie die Bezeichnung des Ziel-Pods sowie die Ports und Protokolle angeben, die verfügbar gemacht werden müssen.

Die spezifische Definitionsmethode lautet wie folgt:

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

Die obige Yaml-Datei definiert einen Dienst namens php-service, die Bezeichnung des Ziel-Pods lautet app:php, der verfügbar gemachte Port ist 80, das Protokoll ist TCP und der Dienst Typ ist auf LoadBalancer eingestellt.

  1. ConfigMap erstellen

In der Definition der Bereitstellung wird ein ConfigMap-benannter Code angegeben und die ConfigMap wird im Container bereitgestellt. ConfigMap wird zum Speichern von Konfigurationsinformationen usw. verwendet und kann über Yaml-Dateien oder das Befehlszeilentool kubectl erstellt werden.

Die spezifische Erstellungsmethode ist wie folgt:

apiVersion: v1
kind: ConfigMap
metadata:
  name: code-config
data:
  index.php: |
    <?php
    echo "Hello, Kubernetes!";

Die obige Yaml-Datei definiert eine ConfigMap namens code-config, die eine Datei namens index.php mit dem Inhalt „Hallo, Kubernetes!“ enthält.

  1. Stellen Sie die Anwendung bereit

Nach Abschluss der obigen Definitionen können Sie den Befehl kubectl apply verwenden, um die Anwendung im Kubernetes-Cluster bereitzustellen.

Die spezifischen Befehle lauten wie folgt:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f configmap.yaml

Nachdem die Anwendungsbereitstellung abgeschlossen ist, können Sie den Befehl kubectl get verwenden, um den Status der Anwendung anzuzeigen.

3. Interagieren Sie mit Kubernetes in PHP-Anwendungen

In PHP-Anwendungen können Sie die von Kubernetes offiziell bereitgestellte Kubernetes-PHP-Clientbibliothek verwenden, um mit Kubernetes zu interagieren. Die Kubernetes-PHP-Clientbibliothek kapselt die Kubernetes-API und kann Kubernetes problemlos bedienen.

Bevor Sie die Kubernetes PHP-Clientbibliothek verwenden, müssen Sie Abhängigkeiten installieren. Sie können das Composer-Tool verwenden, um Abhängigkeiten zu installieren.

Die spezifische Installationsmethode ist wie folgt:

composer require kubernetes/client-php

Nach der Installation der Abhängigkeiten können Sie die Kubernetes PHP-Clientbibliothek in Ihrer PHP-Anwendung verwenden. Im Folgenden finden Sie ein einfaches Beispiel zum Abrufen aller Namespaces im Kubernetes-Cluster.

use KubernetesClient;
use KubernetesClientConfiguration;
use KubernetesClientApiCoreV1Api;

$config = new Configuration();
$config->setHost('https://kubernetes.example.com');
$config->setUsername('user');
$config->setPassword('password');

$client = new Client($config);
$coreV1Api = new CoreV1Api($client);

$namespaces = $coreV1Api->listNamespace()->getItems();

foreach ($namespaces as $namespace) {
    echo $namespace->getMetadata()->getName() . "
";
}

Der obige Code erstellt einen Kubernetes-API-Client über die Kubernetes-PHP-Clientbibliothek und greift über den Client auf die listNamespace-Methode in CoreV1API zu, um alle Namespaces im Kubernetes-Cluster abzurufen. In tatsächlichen Anwendungen kann Kubernetes auf ähnliche Weise betrieben werden.

In diesem Artikel wird kurz die Verwendung von Kubernetes in PHP vorgestellt, einschließlich der Erstellung eines Kubernetes-Clusters, der Verwendung von Kubernetes zum Hosten von PHP-Anwendungen und der Interaktion mit Kubernetes in PHP-Anwendungen. Ich hoffe, es hilft den Lesern.

Referenzlink:

  1. Kubernetes Chinesische Dokumentation: https://kubernetes.io/zh/docs/home/
  2. Offizielle Website von Ansible: https://www.ansible.com/
  3. Offizielle Website von Terraform: https: // www.terraform.io/
  4. Alibaba Cloud Container Service: https://www.aliyun.com/product/container-service
  5. Google Cloud Kubernetes Engine: https://cloud.google.com/kubernetes-engine
  6. Kubernetes PHP-Client-Bibliothek: https://github.com/kubernetes-client/php

Das obige ist der detaillierte Inhalt vonWie verwende ich Kubernetes mit PHP?. 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