Maison  >  Article  >  développement back-end  >  À propos de l'instance miroir PHP de déploiement K8s

À propos de l'instance miroir PHP de déploiement K8s

小云云
小云云original
2018-03-09 13:57:424257parcourir

J'ai déjà écrit sur la création d'une image d'environnement php+nginx et j'ai créé une image php. Cet article partage principalement avec vous quelques exemples de déploiement par k8 de la mise en miroir PHP, en espérant vous aider.

Alors comment utiliser cette image ?

1. Vous pouvez utiliser directement docker pour exécuter ce conteneur

docker run --rm -d --name php -p 80:80 -v /tmp:/app

Explication de la commande docker :

–rm : empêcher docker de générer des balises of none Mirror

-d : Faire fonctionner le conteneur généré en arrière-plan

–name : Spécifiez le nom du conteneur en tant que php pour faciliter les opérations ultérieures

-p : Spécifiez le numéro de port Un 80 est le numéro de port de l'hôte et le second 80 est le numéro de port du conteneur
Le premier numéro de port peut être n’importe quel port disponible sur votre machine hôte et est accessible à l’aide de localhost:port number.

-v : v est l'abréviation de volume, qui consiste à monter le volume hôte dans le conteneur
Le premier /tmp fait référence au chemin dans la machine hôte
Le deuxième /app est le chemin du conteneur

Puisque le chemin racine nginx configuré dans l'image de base webdevops/php-nginx:centos-7-php56 est /app, il est donc spécifié ici comme /app
Ajoutez le fichier index.php
dans /tmp avec le contenu :

<? phpinfo() ?>

Après avoir démarré le conteneur, vous pouvez accéder à l'adresse de l'hôte + au numéro de port Par exemple, curl localhost:port. le numéro renverra phpinfo

Vous pouvez voir le chemin du fichier de configuration dans le document image webdevops/php-nginx
Le chemin du fichier de configuration nginx en vigueur ici est : /opt/docker/etc/nginx/ vhost.conf
Dans Dans ce fichier de configuration, vous pouvez voir que le chemin racine configuré pour l'écoute sur le port 80 est /app
Vous pouvez modifier le chemin

2. Utiliser le déploiement k8s
pour télécharger l'image dans l'entrepôt
docker push image_name

Créez un nouveau fichier de configuration de déploiement : php-deployment.yaml

deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: php
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php        image: image_address
        ports:
        - containerPort: 80        volumeMounts:
        - mountPath: /app          name: php-volume
      volumes:
      - name: php-volume        hostPath:
          path: /tmp

Créez un nouveau php -fichier service.yaml

kind: Service
apiVersion: v1
metadata:
  name: php-service  namespace: default
  labels:
    app: php
spec:
  ports:
  - name: listener
    protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: php  type: LoadBalancer
  externalIPs:
    - your ip address

Exécutez la commande :

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

Vous pouvez le visualiser via la commande suivante

kubectl get deployment
kubectl get service

Vous pouvez ensuite obtenir phpinfo en accéder à l'adresse IP de votre hôte
Bien sûr, le / du nœud du conteneur php exécuté dans votre cluster k8s Le fichier index.php doit être dans le chemin tmp
Quant au nœud qui exécute ce conteneur, vous pouvez le vérifier via kubecel get pods php

Je l'ai déjà écrit et j'ai créé une image d'environnement php+nginx
J'ai créé un miroir php.

Alors comment utiliser cette image ?

1. Vous pouvez utiliser directement docker pour exécuter ce conteneur

docker run --rm -d --name php -p 80:80 -v /tmp:/app

Explication de la commande docker :

–rm : empêcher docker de générer des balises of none Mirror

-d : Faire fonctionner le conteneur généré en arrière-plan

–name : Spécifiez le nom du conteneur en tant que php pour faciliter les opérations ultérieures

-p : Spécifiez le numéro de port Un 80 est le numéro de port de l'hôte et le second 80 est le numéro de port du conteneur
Le premier numéro de port peut être n'importe quel port disponible sur votre machine hôte, accessible à l'aide de localhost:port number.

-v : v est l'abréviation de volume, qui consiste à monter le volume hôte dans le conteneur
Le premier /tmp fait référence au chemin dans la machine hôte
Le deuxième /app est le chemin du conteneur

Puisque le chemin racine nginx configuré dans l'image de base webdevops/php-nginx:centos-7-php56 est /app, il est donc spécifié ici comme /app
Ajoutez le fichier index.php
dans /tmp avec le contenu :

<? phpinfo() ?>

Après avoir démarré le conteneur, vous pouvez accéder à l'adresse de l'hôte + au numéro de port Par exemple, curl localhost:port. le numéro renverra phpinfo

Vous pouvez voir le chemin du fichier de configuration dans le document image webdevops/php-nginx
Le chemin du fichier de configuration nginx en vigueur ici est : /opt/docker/etc/nginx/ vhost.conf
Dans Dans ce fichier de configuration, vous pouvez voir que le chemin racine configuré pour l'écoute sur le port 80 est /app
Vous pouvez modifier le chemin

2. Utiliser le déploiement k8s
pour télécharger l'image dans l'entrepôt
docker push image_name

Créez un nouveau fichier de configuration de déploiement : php-deployment.yaml

deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: php
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php        image: image_address
        ports:
        - containerPort: 80        volumeMounts:
        - mountPath: /app          name: php-volume
      volumes:
      - name: php-volume        hostPath:
          path: /tmp

Créez un nouveau php -fichier service.yaml

kind: Service
apiVersion: v1
metadata:
  name: php-service  namespace: default
  labels:
    app: php
spec:
  ports:
  - name: listener
    protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: php  type: LoadBalancer
  externalIPs:
    - your ip address

Exécutez la commande :

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

Vous pouvez le visualiser via la commande suivante

kubectl get deployment
kubectl get service

Vous pouvez ensuite obtenir phpinfo en accéder à l'adresse IP de votre hôte
Bien sûr, le / du nœud du conteneur php exécuté dans votre cluster k8s Le fichier index.php doit être dans le chemin tmp
Quant au nœud qui exécute ce conteneur, vous pouvez le vérifier via kubecel récupère les pods php.

Recommandations associées :

Comment utiliser Docker pour déployer un environnement de développement PHP

Comment déployer un projet php sous Linux ?

Déployer plusieurs versions de PHP pour coexister sous Linux

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