Истории успеха наших клиентов — лучшие проекты
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

WordPress

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

Установка

Перед установкой WordPress убедитесь, что установлены:

  • CSI-driver — обязательный компонент, обеспечивает работу сетевых дисков для WordPress и MariaDB.
  • Nginx Ingress — необходим для настройки доступа к сайту по доменному имени.
  • CSI S3 — если вы хотите хранить файлы WordPress в S3-бакете.

Для установки откройте раздел «Дополнения» в панели управления кластера и выберите «WordPress».

Scr 20251211 Kurv

После выбора дополнения откроется YAML-конфигурация. Для установки достаточно:

  • указать wordpressUsername и wordpressPassword;
  • включить ingress.enabled: true;
  • указать домен в ingress.hostname.

В этом случае будут развернуты:

  • WordPress;
  • база данных MariaDB;
  • два сетевых диска для хранения данных;
  • LoadBalancer;
  • объект Ingress;
  • Kubernetes Secrets.

Настройка параметров

Основные настройки

Ключевые настройки WordPress собраны в одном блоке:

wordpressUsername: user
wordpressPassword: ""
existingSecret: ""
wordpressEmail: user@example.com
wordpressFirstName: FirstName
wordpressLastName: LastName
wordpressBlogName: User's Blog!
wordpressTablePrefix: wp_
wordpressScheme: http
wordpressSkipInstall: false
wordpressExtraConfigContent: ""
wordpressConfiguration: ""
existingWordPressConfigurationSecret: ""
wordpressConfigureCache: false
wordpressPlugins: none
apacheConfiguration: ""
existingApacheConfigurationConfigMap: ""
customPostInitScripts: {}
smtpHost: ""
smtpPort: ""
smtpUser: ""
smtpPassword: ""
smtpProtocol: ""
smtpFromEmail: ""
smtpFromName: ""
smtpExistingSecret: ""
allowEmptyPassword: true
allowOverrideNone: false
overrideDatabaseSettings: false
htaccessPersistenceEnabled: false
customHTAccessCM: ""
command: []
args: []
extraEnvVars: []
extraEnvVarsCM: ""
extraEnvVarsSecret: ""

Здесь указываются:

  • логин и пароль администратора;
  • адрес электронной почты;
  • имя сайта;
  • схема доступа (http/https).

Остальные параметры относятся к расширенной настройке CMS (SMTP, переменные окружения). Их можно оставить без изменений.

Сетевые настройки

Балансировщик нагрузки

По умолчанию создается LoadBalancer:

service:
  type: LoadBalancer

Он получает внешний IP-адрес, через который доступен сайт.

Ingress

Дополнительно можно настроить доступ по доменному имени, указав его в настройках Ingress-контроллера:

ingress:
  enabled: true
  hostname: example.com
  path: /
  tls: false

Хранилище данных

Создаются два тома (PVC):

PVC для WordPress:

persistence:
  enabled: true
  size: 10Gi

PVC для MariaDB:

mariadb:
  enabled: true
  primary:
    persistence:
      enabled: true
      storageClass: "nvme.network-drives.csi.timeweb.cloud"
      size: 8Gi

Оба тома создаются с классом nvme.network-drives.csi.timeweb.cloud. Вы можете изменить класс хранения, указав другой в параметре global.defaultStorageClass или задав storageClass вручную в соответствующих блоках.

После установки сетевые диски появятся в панели управления, в разделе «Сетевые диски».

Постоянные хранилища нужны, чтобы данные сохранялись при пересоздании подов.

После установки

Дождитесь завершения создания балансировщика и создайте A-запись для домена, указав IP-адрес балансировщика.

Проверьте состояние подов:

kubectl get pods -n wordpress

Вы увидите два пода — в них запущены WordPress и база данных:

NAME                         READY   STATUS    RESTARTS   AGE
wordpress-5f77d8758b-6g2z2   1/1     Running   0          23h
wordpress-mariadb-0          1/1     Running   0          23h

Проверьте сервисы:

kubectl get svc -n wordpress

Пример вывода:

NAME                         TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                      AGE
wordpress                    LoadBalancer   10.105.62.193   185.154.193.137   80:31401/TCP,443:32277/TCP   23h
wordpress-mariadb            ClusterIP      10.105.69.70    <none>            3306/TCP                     23h
wordpress-mariadb-headless   ClusterIP      None            <none>            3306/TCP                     23h

Поле EXTERNAL-IP указывает на IP-адрес балансировщика, через который доступно приложение.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев