Despliegue de una aplicación PHP en Kubernetes

Índice

En este post se documenta el despliegue de la aplicación Let`s Chat en Kubernetes.

Para desplegar esta aplicación se crea, en primer lugar, el despliegue de la aplicación.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: lets-chat
  labels:
    app: lets-chat
    tier: frontend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: lets-chat
      tier: frontend
  template:
    metadata:
      labels:
        app: lets-chat
        tier: frontend
    spec:
      containers:
      - name: contenedor-lets-chat
        image: sdelements/lets-chat
        ports:
          - name: lets-chat-port
            containerPort: 8080

A continuación, se define el despliegue de la base de datos.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo
  labels:
    app: mongo
    tier: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo
      tier: backend
  template:
    metadata:
      labels:
        app: mongo
        tier: backend
    spec:
      containers:
        - name: contenedor-mongo
          image: mongo:4
          ports:
            - name: mongo-server
              containerPort: 27017

Y se ejecutan ambos despliegues.

kubectl apply -f letschat-deployment.yaml
kubectl apply -f mongo-deployment.yaml

Para que la aplicación pueda acceder a la base de datos hay que configurar un servicio de tipo CulsterIP.

apiVersion: v1
kind: Service
metadata:
  name: lets-chat
  labels:
    app: lets-chat
    tier: frontend
spec:
  type: NodePort
  ports:
  - port: 8080 
    targetPort: lets-chat-port
  selector:
    app: lets-chat
    tier: frontend

Y para poder acceder a la aplicación hay que usar un servicio de tipo NodePort.

apiVersion: v1
kind: Service
metadata:
  name: mongo
  labels:
    app: mongo
    tier: backend
spec:
  type: ClusterIP
  ports:
  - port: 27017
    targetPort: mongo-server
  selector:
    app: mongo
    tier: backend

Y ejecutar ambos servicios.

kubectl apply -f letschat-service.yaml 
kubectl apply -f mongo-service.yaml

Para poder acceder a la aplicación usando una URL hay que crear un recurso de tipo ingress.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: lets-chat
spec:
  rules:
  - host: www.chat-javi.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service: 
            name: lets-chat
            port:
              number: 8080

Y se ejecuta el recurso.

kubectl apply -f letschat-ingress.yaml
comments powered by Disqus

Relacionados

Instalación de Debian 12 bajo LVM en Proxmox

Proxmox Virtual Environment, o Proxmox VE, entorno de virtualización de servidores de código abierto basado en Debian. En este post se usa este entorno para crear una máquina virtual en la que se instala un sistema operativo Debian 12 bajo volúmenes lógicos (lvm).

Leer

Creación de usuarios y políticas de seguridad en Debian

En este post se explica, a través de varios casos prácticos y ejemplos, el uso adecuado de los comandos básicos para la creación de usuarios y el establecimiento de políticas de seguridad en los sistemas operativos basados en Debian.

Leer

Configuración de un servidor SAN

En este post se muestran, a través de un caso práctico, algunos ejemplos de configuración de un servidor SAN.

Leer