Cómo implementar una aplicación PHP con Kubernetes en Ubuntu - BuhoWeb.com

Introducción

Kubernetes es un sistema de orquestación de contenedores de código abierto. Le permite crear, actualizar y escalar contenedores sin preocuparse por el tiempo de inactividad.

Para ejecutar una aplicación PHP, Nginx actúa como un proxy para PHP-FPM . Contener esta configuración en un solo contenedor puede ser un proceso engorroso, pero Kubernetes ayudará a administrar ambos servicios en contenedores separados. El uso de Kubernetes le permitirá mantener sus contenedores reutilizables e intercambiables, y no tendrá que reconstruir la imagen de su contenedor cada vez que haya una nueva versión de Nginx o PHP.

En este tutorial, implementará una aplicación PHP 7 en un clúster Kubernetes con Nginx y PHP-FPM ejecutándose en contenedores separados. También aprenderá cómo mantener sus archivos de configuración y código de aplicación fuera de la imagen del contenedor utilizando el sistema de almacenamiento en bloque de DigitalOcean . Este enfoque le permitirá reutilizar la imagen Nginx para cualquier aplicación que necesite un servidor web / proxy al pasar un volumen de configuración, en lugar de reconstruir la imagen.

Prerrequisitos

Paso 1 – Creando los servicios PHP-FPM y Nginx

En este paso, creará los servicios PHP-FPM y Nginx. Un servicio permite acceder a un conjunto de pods desde dentro del clúster. Los servicios dentro de un clúster pueden comunicarse directamente a través de sus nombres, sin la necesidad de direcciones IP. El servicio PHP-FPM permitirá el acceso a los pods de PHP-FPM, mientras que el servicio Nginx permitirá el acceso a los pods Nginx.

Como los pods de Nginx representarán a los pods de PHP-FPM, necesitarás decirle al servicio cómo encontrarlos. En lugar de usar direcciones IP, aprovechará el descubrimiento automático de servicios de Kubernetes para usar nombres legibles por humanos para enrutar las solicitudes al servicio apropiado.

Para crear el servicio, creará un archivo de definición de objeto. Cada definición de objeto Kubernetes es un archivo YAML que contiene al menos los siguientes elementos:

  • apiVersion: La versión de la API de Kubernetes a la que pertenece la definición.
  • kind: El objeto Kubernetes que este archivo representa. Por ejemplo, un podservice.
  • metadata: Esto contiene la parte namedel objeto junto con cualquiera labelsque desee aplicarle.
  • spec: Esto contiene una configuración específica en función del tipo de objeto que está creando, como la imagen del contenedor o los puertos desde los cuales se podrá acceder al contenedor.

Primero, creará un directorio para contener sus definiciones de objetos Kubernetes.

SSH a su nodo maestro y cree el definitionsdirectorio que contendrá sus definiciones de objeto Kubernetes.

Ver codigos aquí:  https://www.digitalocean.com/community/tutorials/how-to-deploy-a-php-application-with-kubernetes-on-ubuntu-16-04?utm_source=facebook&utm_medium=paid_social&utm_campaign=K8S_Dev_Awareness_Cold_FB_Tier2&utm_adgroup=K8S_Dev_Awareness_Cold_FB_Tier2_LAL_Tut_PHP

 

¿Qué te pareció?
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid