Heim > Artikel > Backend-Entwicklung > Wie verwende ich Kubernetes mit PHP?
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:
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.
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.
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.
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:
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!