Maison  >  Article  >  développement back-end  >  Comment utiliser Kubernetes avec PHP ?

Comment utiliser Kubernetes avec PHP ?

PHPz
PHPzoriginal
2023-05-12 08:40:351602parcourir

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 :

  1. Définir le déploiement

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é.

  1. Définir le service

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.

  1. Créer ConfigMap

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 !".

  1. Déployer l'application

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 :

  1. Documentation chinoise Kubernetes : https://kubernetes.io/zh/docs/home/
  2. Site officiel d'Ansible : https://www.ansible.com/
  3. Site officiel de Terraform : https : // www.terraform.io/
  4. Service de conteneur cloud Alibaba : https://www.aliyun.com/product/container-service
  5. Google Cloud Kubernetes Engine : https://cloud.google.com/kubernetes-engine
  6. Bibliothèque client PHP Kubernetes : https://github.com/kubernetes-client/php

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn