Wie verwende ich Kubernetes mit PHP?

PHPz
Freigeben: 2023-05-12 10:12:01
Original
1677 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!";
Nach dem Login kopieren

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
Nach dem Login kopieren

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 dem Login kopieren

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() . "
";
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage