Ces dernières années, Kubernetes est devenu l'un des outils importants pour le déploiement conteneurisé, et PHP est un langage couramment utilisé pour le développement d'applications. Comment utiliser Kubernetes en PHP est devenu un sujet important. Cet article explique comment utiliser Kubernetes en PHP, notamment comment créer un cluster Kubernetes, comment utiliser Kubernetes pour héberger des applications PHP et comment interagir avec Kubernetes dans les applications PHP.
1. Créer un cluster Kubernetes
Avant d'utiliser Kubernetes, vous devez d'abord créer un cluster Kubernetes. Pour créer un cluster Kubernetes, vous pouvez choisir d'utiliser l'auto-hébergement ou d'utiliser le service Kubernetes fourni par un fournisseur de services cloud.
Pour l'auto-hébergement, vous pouvez utiliser des outils tels qu'Ansible ou Terraform pour déployer automatiquement des clusters Kubernetes. Je n'entrerai pas dans les détails ici. Vous pouvez vous référer aux liens fournis à la fin de l'article pour acquérir par vous-même les connaissances pertinentes.
Pour les services Kubernetes fournis par les fournisseurs de services cloud, tels que le service de conteneur d'Alibaba Cloud et le Kubernetes Engine de Google Cloud, vous pouvez vous référer à la documentation officielle pour créer un cluster Kubernetes.
Une fois le cluster créé, vous devez installer l'outil de ligne de commande kubectl pour gérer le cluster Kubernetes. Vous pouvez télécharger la version kubectl correspondante depuis le site officiel de Kubernetes et l'installer conformément à la documentation.
2. Utiliser Kubernetes pour héberger des applications PHP
Les étapes pour utiliser Kubernetes pour héberger des applications PHP sont les suivantes :
Le déploiement est un objet utilisé pour gérer une certaine copie de Pod dans Kubernetes. simplement compris comme un dispositif de contrôle Pod. Lors de la définition d'un déploiement, vous devez spécifier les informations sur l'image et le nombre de copies de l'application.
La méthode de définition spécifique est la suivante :
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
Le fichier yaml ci-dessus définit un déploiement nommé php-app, le nombre de copies est de 3 et le miroir est php:7.4-apache. Le port 80 est exposé dans le conteneur et un ConfigMap nommé code est monté.
Dans Kubernetes, le service est utilisé pour définir l'entrée d'accès d'un ensemble de pods et exposer les ports. Lors de la définition d'un service, vous devez spécifier le label du pod cible, ainsi que les ports et protocoles qui doivent être exposés.
La méthode de définition spécifique est la suivante :
apiVersion: v1 kind: Service metadata: name: php-service spec: selector: app: php ports: - name: http port: 80 protocol: TCP targetPort: 80 type: LoadBalancer
Le fichier yaml ci-dessus définit un service nommé php-service, le label du Pod cible est app : php, le port exposé est 80, le protocole est TCP et le service type est défini sur LoadBalancer.
Dans la définition du déploiement, un ConfigMap nommé code est spécifié et le ConfigMap est monté dans le conteneur. ConfigMap est utilisé pour stocker les informations de configuration, etc., et peut être créé via des fichiers yaml ou l'outil de ligne de commande kubectl.
La méthode de création spécifique est la suivante :
apiVersion: v1 kind: ConfigMap metadata: name: code-config data: index.php: | <?php echo "Hello, Kubernetes!";
Le fichier yaml ci-dessus définit un ConfigMap nommé code-config, qui contient un fichier nommé index.php avec le contenu de "Bonjour, Kubernetes !".
Après avoir terminé les définitions ci-dessus, vous pouvez utiliser la commande kubectl apply pour déployer l'application sur le cluster Kubernetes.
Les commandes spécifiques sont les suivantes :
kubectl apply -f deployment.yaml kubectl apply -f service.yaml kubectl apply -f configmap.yaml
Une fois le déploiement de l'application terminé, vous pouvez utiliser la commande kubectl get pour afficher l'état de l'application.
3. Interagissez avec Kubernetes dans les applications PHP
Dans les applications PHP, vous pouvez utiliser la bibliothèque client PHP Kubernetes officiellement fournie par Kubernetes pour interagir avec Kubernetes. La bibliothèque client PHP Kubernetes encapsule l'API Kubernetes et peut facilement faire fonctionner Kubernetes.
Avant d'utiliser la bibliothèque client PHP Kubernetes, vous devez installer des dépendances. Vous pouvez utiliser l'outil Composer pour installer des dépendances.
La méthode d'installation spécifique est la suivante :
composer require kubernetes/client-php
Après avoir installé les dépendances, vous pouvez utiliser la bibliothèque client PHP Kubernetes dans votre application PHP. Ce qui suit est un exemple simple pour obtenir tous les espaces de noms du cluster Kubernetes.
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() . " "; }
Le code ci-dessus crée un client API Kubernetes via la bibliothèque client PHP Kubernetes et accède à la méthode listNamespace dans CoreV1API via le client pour obtenir tous les espaces de noms du cluster Kubernetes. Dans les applications réelles, Kubernetes peut fonctionner de la même manière.
Cet article présente brièvement comment utiliser Kubernetes en PHP, notamment la création d'un cluster Kubernetes, l'utilisation de Kubernetes pour héberger des applications PHP et l'interaction avec Kubernetes dans les applications PHP. J'espère que cela aide les lecteurs.
Lien de référence :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!