Noticias
FreeBSD 15, Nuevas opciones de sistema operativo en VMware, y nuevo 1-Click Apps ¡Ya están disponibles en el Panel de control!
BS
Junio ​​25 2025
Actualizado el 24 de junio de 2025

Kubernetes Guía de implementación: Hospedaje de OpenCart como una solución de comercio electrónico en contenedores

El comercio electrónico es un ámbito donde la estabilidad y la escalabilidad impactan directamente en los ingresos. Imagine una tienda en línea durante una gran venta: miles de usuarios realizan pedidos simultáneamente, pero la infraestructura tradicional colapsa bajo la carga. El sitio web se ralentiza, los clientes se van y el negocio pierde dinero. OpenCart es una plataforma popular para pequeñas y medianas empresas, pero su rendimiento en servidores estándar es limitado. Kubernetes Aborda estos desafíos al proporcionar escalado automático, tolerancia a fallos y flexibilidad. Esta guía le guiará en la implementación de OpenCart en Kubernetes, transformando su tienda en un sistema confiable y elástico preparado para cualquier carga.

Etapa 1 - Preparación del contenedor: La base

Opción 1 - Imagen oficial (Inicio rápido)

Ideal para una configuración rápida, esta imagen incluye dependencias y configuraciones preinstaladas.

# Pull the optimized Bitnami image for OpenCart

docker pull bitnami/opencart:latest

# Test run to verify functionality

docker run -d -p 8080:8080 -p 8443:8443 \

-e OPENCART_USERNAME=admin \

-e OPENCART_PASSWORD=StrongPassword \

bitnami/opencart

Opción 2: Construcción personalizada (Control total)

Una imagen personalizada proporciona control sobre las versiones y configuraciones, ideal para requisitos específicos.

1. Crear `Dockerlisto para importar`:

FROM php:8.1-apache

# Install dependencies required for OpenCart

RUN apt-get update && apt-get install -y \

libzip-dev libpng-dev libjpeg-dev libfreetype6-dev libonig-dev libxml2-dev \

&& docker-php-ext-configure gd --with-freetype --with-jpeg \

&& docker-php-ext-install -j$(nproc) gd mysqli pdo_mysql zip opcache

# Download and extract OpenCart

ENV OPENCART_VERSION 4.0.2.2

RUN curl -O https://github.com/opencart/opencart/releases/download/${OPENCART_VERSION}/opencart-${OPENCART_VERSION}.zip \

&& unzip opencart-${OPENCART_VERSION}.zip \

&& mv upload /var/www/html \

&& rm opencart-${OPENCART_VERSION}.zip

# Configure permissions and configuration files

RUN chown -R www-data:www-data /var/www/html \

&& mv /var/www/html/config-dist.php /var/www/html/config.php \

&& mv /var/www/html/admin/config-dist.php /var/www/html/admin/config.php

# Optimize PHP for performance

COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini

COPY 000-default.conf /etc/apache2/sites-available/000-default.conf

EXPOSE 8080

2. Construye la imagen:

docker build -t mycompany/opencart:3.0 .

Etapa 2 - Despliegue en Kubernetes — Orquestando el éxito

Arquitectura de soluciones:

Cloudflare proporciona protección y almacenamiento en caché, Ingress administra el tráfico, Redis acelera las sesiones y MySQL almacena datos.

[Пользователь] → [Ingress] → [PrestaShop Pods] → [Redis] → [MariaDB] - visual selection (3)
Imagen 1 - OpenCart

Paso 1 - Instalar MySQL vía Helm

Helm simplifica MySQL Instalación con configuraciones preconfiguradas.

# Add Bitnami repo and install MySQL

helm repo add bitnami https://charts.bitnami.com/bitnami

helm install opencart-db bitnami/mysql \

--namespace opencart \

--set auth.rootPassword=DB_ROOT_PASS \

--set auth.database=opencart_db \

--set auth.username=opencart_user \

--set auth.password=OPENCART_DB_PASS \

--set persistence.size=20Gi

Paso 2: Configurar OpenCart

ConfigMap almacena configuraciones inyectadas en contenedores.

`opencart-configmap.yaml`:

apiVersion: v1

kind: ConfigMap

metadata:

name: opencart-config

namespace: opencart

data:

OPENCART_HOST: "shop.example.com" # Store domain

OPENCART_USERNAME: "admin" # Admin username

DB_HOST: "opencart-db-mysql" # Database host

DB_NAME: "opencart_db" # Database name

DB_USER: "opencart_user" # Database user

SESSION_DRIVER: "redis" # Session driver

REDIS_HOST: "opencart-redis-master" # Redis host

Paso 3: Implementar StatefulSet

StatefulSet garantiza un estado de pod estable con almacenamiento persistente.

`opencart-statefulset.yaml`:

apiVersion: apps/v1

kind: StatefulSet

metadata:

name: opencart

namespace: opencart

spec:

serviceName: opencart

replicas: 3

selector:

matchLabels:

app: opencart

template:

metadata:

labels:

app: opencart

spec:

initContainers:

- name: init-permissions

image: busybox:1.36

command: ['sh', '-c', 'chown -R 33:33 /var/www/html']

volumeMounts:

- name: opencart-data

mountPath: /var/www/html

containers:

- name: opencart

image: mycompany/opencart:3.0

envFrom:

- configMapRef:

name: opencart-config

- secretRef:

name: opencart-secrets

ports:

- containerPort: 8080

volumeMounts:

- name: opencart-data

mountPath: /var/www/html

livenessProbe:

httpGet:

path: /index.php

port: 8080

readinessProbe:

httpGet:

path: /health-check.php

port: 8080

volumeClaimTemplates:

- metadata:

name: opencart-data

spec:

accessModes: ["ReadWriteOnce"]

storageClassName: "ssd"

resources:

requests:

storage: 10Gi

Paso 4 - Servicio e ingreso

Service e Ingress brindan acceso a OpenCart a través de un único dominio con HTTPSoporte S.

`opencart-service.yaml`:

apiVersion: v1

kind: Service

metadata:

name: opencart-service

namespace: opencart

spec:

selector:

app: opencart

ports:

- protocol: TCP

port: 80

targetPort: 8080

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: opencart-ingress

namespace: opencart

annotations:

nginx.ingress.kubernetes.io/affinity: "cookie"

cert-manager.io/cluster-issuer: "letsencrypt-prod"

spec:

tls:

- hosts:

- shop.example.com

secretName: opencart-tls

rules:

- host: shop.example.com

http:

paths:

- path: /

pathType: Prefix

backend:

service:

name: opencart-service

port:

number: 80

Etapa 3 - Configuración final: Lanzamiento de la tienda

Se utiliza para `readinessProbe` para garantizar Kubernetes determina correctamente la preparación del pod.

Configuración inicial:

Abra "https://shop.example.com".

Siga el asistente de configuración:

- Configuración de la base de datos:

Host: opencart-db-mysql

User: opencart_user

Database: opencart_db

Password: from Kubernetes Secrets

- Administrador: especifique el correo electrónico y la contraseña para el acceso de administrador.

Crear health-check.php:

Crear `/var/www/html/health-check.php`:

 

Configurar Redis para sesiones:

// In /config.php

define('SESSION_DRIVER', 'redis');

define('CACHE_HOSTNAME', 'opencart-redis-master:6379');

Optimización del rendimiento:

En el panel de administración: Sistema → Configuración → Servidor

Habilitar almacenamiento en caché: Sí

Compresión de salida: GZIP

Duración de la caché: 86400

Configurar CDN para activos estáticos:

// In /config.php and /admin/config.php

define('HTTP_SERVER', 'https://cdn.example.com/');

Escalado automático:

HPA escala automáticamente los pods en función de CPU cargar.

`opencart-hpa.yaml`:

apiVersion: autoscaling/v2

kind: HorizontalPodAutoscaler

metadata:

name: opencart-hpa

namespace: opencart

spec:

scaleTargetRef:

apiVersion: apps/v1

kind: StatefulSet

name: opencart

minReplicas: 3

maxReplicas: 12

metrics:

- type: Resource

resource:

name: cpu

target:

type: Utilization

averageUtilization: 70

OpenCart en Kubernetes establece lo siguiente:

  • Tolerancia a fallos:
    • Recuperación automática ante fallos.
  • Escalabilidad:
    • Escalabilidad flexible de recursos bajo carga.
  • Actuación:
    • Optimización a través de Redis y CDN.

Si sigue esta guía, creará una tienda lista para crecer y tener mucho tráfico.

Votar:
5 de 5
Calificación promedio: 5
Calificado por: 1
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También le podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies Política de privacidad.