Деплой сайта Wordpress в кластере Kubernetes
Данная статья подразумевает, что в нашем кластере Kubernetes уже установлены сервисы обеспечивающие основную инфраструктуру: HAProxy-Ingress, OpenEBS и cert-manager. А так же для класса clusterissuers.cert-manager.io
уже создан эмитент “letsencrypt”, для получения доверенного сертификата нашего сайта.
Подробнее о настройке кластера-Kubernetes можно прочитать в этой статье.
Используемые helm-чарты от bitnami:
1 Установка Helm-чарта
И так сначала добавим соответствующи репозиторий helm:
|
|
Затем скачиваем файл values.yaml для helm-чарта чтобы изменить в нем базовые настройки нашего релиза. Ниже приведен листинг этого файла, в котором отображены только затронутые значения, остальная часть содержимого файла оставлена как есть:
|
|
Устанавливаем:
|
|
В случае успешной установки должны получить следующие статусы новых сущностей:
kubectl get services -n my-site-namespace
1 2 3
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE wordpress ClusterIP 10.108.11.225 <none> 80/TCP,443/TCP 18h wordpress-mariadb ClusterIP 10.103.183.0 <none> 3306/TCP 18h
kubectl -n my-site-namespace get deployments
1 2
NAME READY UP-TO-DATE AVAILABLE AGE wordpress 2/2 2 2 18h
kubectl -n my-site-namespace get ingress
1 2
NAME CLASS HOSTS ADDRESS PORTS AGE wordpress haproxy site-domain-name.com 192.168.0.3 80, 443 18h
kubectl -n my-site-namespace get certificate
1 2
NAME READY SECRET AGE site-domain-name.com-tls True site-domain-name.com-tls 18h
kubectl -n my-site-namespace get pvc
1 2 3
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE data-wordpress-mariadb-0 Bound pvc-88bbf4fb-8ed5-47a1-8e08-123456abcdef 8Gi RWO openebs-hostpath 18h wordpress Bound pvc-88dbb147-abba-45c7-9739-abcdef123456 10Gi RWO openebs-hostpath 18h
2 Установка phpMyAdmin [опционально]
Сам принцип установки аналогичен. Берем файл values.yaml и так же вносим в него необходимые правки:
|
|
Устанавливаем:
|
|