Настраиваем WordPress
Как обсуждалось ранее, вы развернёте приложение WordPress, используя файл YAML Kubernetes. Сначала определите хранилище как PersistentVolumeClaim в файле quadlet-demo.yml:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
Затем добавляем определение пода в тот же файл:
---
apiVersion: v1
kind: Pod
metadata:
name: quadlet-demo
spec:
containers:
- name: wordpress
image: docker.io/library/wordpress:4.8-apache
env:
- name: WORDPRESS_DB_HOST
value: quadlet-demo-mysql
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-root-password-kube
key: password
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
- name: envoy
image: docker.io/envoyproxy/envoy:v1.25.0
volumeMounts:
- name: config-volume
mountPath: /etc/envoy
- name: certificates
mountPath: /etc/envoy-certificates
env:
- name: ENVOY_UID
value: "0"
volumes:
- name: config-volume
configMap:
name: envoy-proxy-config
- name: certificates
secret:
secretName: envoy-certificates
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wp-pv-claim
Этот под содержит два контейнера со следующей конфигурацией:
- приложение WordPress:
- использует официальный образ контейнера WordPress
- задаёт для переменной среды WORDPRESS_DB_HOST имя контейнера базы данных
- получает пароль базы данных из секрета mysql-root-password-kube
- использует постоянный том wp-pv-claim, настроенный в том же файле YAML, в качестве хранилища
- Envoy Proxy:
- использует официальный образ контейнера Envoy Proxy
- получает сертификаты TLS из секрета envoy-certificates
- получает конфигурацию из envoy-proxy-config ConfigMap
Продолжение следует...
Перевод с некоторыми авторскими заголовками.
Автор оригинала: Ygal Blum (Red Hat).