---
title: "Аддон WordPress для Kubernetes"
description: "Аддон WordPress для Kubernetes. Установка, настройка, примеры использования. Документация и инструкции по работе с облачными сервисами Timeweb Cloud."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

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

## Установка

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

-   [CSI-driver](https://timeweb.cloud/docs/k8s/network-drives-connection) — обязательный компонент, обеспечивает работу сетевых дисков для WordPress и MariaDB.
-   [Nginx Ingress](https://timeweb.cloud/docs/k8s/addons/nginx-ingress) — необходим для настройки доступа к сайту по доменному имени.
-   [CSI S3](https://timeweb.cloud/docs/k8s/addons/csi-s3) — если вы хотите размещать файлы WordPress в S3-бакете.

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

![Scr 20251211 Kurv](https://content.timeweb.com/assets/a06072fc-6901-452f-b671-6305eb12e5f6.png?width=2272&height=1444)

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

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

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

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

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

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

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

```yaml
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](https://timeweb.cloud/docs/k8s/network/kubernetes-load-balancer):

```yaml
service:
  type: LoadBalancer
```

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

**Ingress**

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

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

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

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

PVC для WordPress:

```yaml
persistence:
  enabled: true
  size: 10Gi
```

PVC для MariaDB:

```yaml
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` вручную в соответствующих блоках.

После установки сетевые диски появятся в панели управления, [в разделе «Сетевые диски»](https://timeweb.cloud/docs/k8s/network-drives-connection).

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

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

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

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

```shell
kubectl get pods -n wordpress
```

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

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

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

```shell
kubectl get svc -n wordpress
```

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

```shell
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-адрес балансировщика, через который доступно приложение.
