Развертывание WordPress в Kubernetes: подробное руководство

Kubernetes стал популярным выбором для развертывания и управления контейнерными приложениями благодаря своей масштабируемости, гибкости и надежности. В этой статье мы рассмотрим различные способы развертывания WordPress в Kubernetes, предоставив вам пошаговые инструкции и примеры кода.

Метод 1: использование YAML-манифеста Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
      - name: wordpress
        image: wordpress:latest
        ports:
        - containerPort: 80
        env:
        - name: WORDPRESS_DB_HOST
          value: mysql-service
        - name: WORDPRESS_DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-secret
              key: password
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:latest
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-secret
              key: root-password
apiVersion: v1
kind: Service
metadata:
  name: wordpress-service
spec:
  selector:
    app: wordpress
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  selector:
    app: mysql
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306

Шаг 5. Примените манифесты YAML с помощью команды kubectl apply:

kubectl apply -f wordpress-deployment.yaml
kubectl apply -f mysql-deployment.yaml
kubectl apply -f wordpress-service.yaml
kubectl apply -f mysql-service.yaml

Метод 2: использование Helm-диаграмм

Helm — это менеджер пакетов для Kubernetes, который упрощает процесс развертывания, предоставляя предварительно настроенные диаграммы. Чтобы развернуть WordPress с помощью Helm, выполните следующие действия:

Шаг 1. Установите Helm на свой локальный компьютер, если вы еще этого не сделали.

Шаг 2. Добавьте официальный репозиторий WordPress Helm:

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

Шаг 3. Установите диаграмму WordPress:

helm install my-wordpress bitnami/wordpress

Метод 3. Использование операторов Kubernetes

Операторы Kubernetes — это специальные контроллеры, расширяющие функциональность Kubernetes. Для развертывания WordPress в Kubernetes доступно несколько операторов, например оператор WordPress Presslabs. Вот пример использования оператора Presslabs:

Шаг 1. Установите оператор WordPress Presslabs:

kubectl apply -f https://github.com/presslabs/wordpress-operator/releases/latest/download/crds.yaml
kubectl apply -f https://github.com/presslabs/wordpress-operator/releases/latest/download/operator.yaml
apiVersion: wordpress.presslabs.org/v1alpha1
kind: WordPress
metadata:
  name: example-wordpress
spec:
  size: 1
  version: latest

Шаг 3. Примените WordPress CR:

kubectl apply -f wordpress-cr.yaml

В этой статье мы рассмотрели три различных метода развертывания WordPress в Kubernetes. Вы можете выбрать тот метод, который лучше всего соответствует вашим требованиям и предпочтениям. Kubernetes предоставляет масштабируемую и надежную среду для размещения WordPress, позволяющую эффективно управлять и масштабировать ваше приложение. Используя возможности Kubernetes, вы можете обеспечить доступность и производительность своего сайта WordPress.