Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
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-адрес балансировщика, через который доступно приложение.

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