#kubernetes #drupal #drupal-8 #minikube
#kubernetes #drupal #drupal-8 #minikube
Вопрос:
Я изучаю, как использовать Kubernetes, используя Minikube и создавая сайт на Drupal.
Я смог зайти на minikube service
свой сайт drupal и перейти на страницу «Настройка базы данных», и это все. Он продолжает говорить мне, что мне нужно вставить правильную информацию. Я проверил свой модуль MYSQL и смог exec
добавить MySQL в свою базу данных.
Я не уверен, чего мне не хватает? Модуль MYSQL не подключен к моему модулю Drupal?
Вот мой файл drupal-mysql.yaml:
---
apiVersion: v1
kind: Service
metadata:
name: drupal-mysql-service
spec:
ports:
- name: mysql
port: 3306
targetPort: 3306
protocol: TCP
selector:
app: drupal
type: ClusterIP
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: drupal-mysql
spec:
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.7
name: mysql
env:
# Use secret in real usage
- name: MYSQL_ROOT_PASSWORD
value: seto_password
- name: MYSQL_DATABASE
value: drupal_databases
ports:
- containerPort: 3306
name: mysql
protocol: TCP
volumeMounts:
- name: vol-drupal
mountPath: /var/lib/mysql
subPath: 'mysql'
volumes:
- name: vol-drupal
persistentVolumeClaim:
claimName: drupal-seto-mysql
Вот мой файл drupal.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: drupal
labels:
app: drupal
spec:
selector:
matchLabels:
app: drupal
tier: frontend
strategy:
type: Recreate
replicas: 1
template:
metadata:
labels:
app: drupal
tier: frontend
spec:
selector:
initContainers:
- name: init-sites-volume
image: drupal:8.9.11
command: ['/bin/bash', '-c']
args:
[
'cp -r /var/www/html/sites/ /data/; chown www-data:www-data /data/ -R',
]
volumeMounts:
- mountPath: /data
name: vol-drupal
containers:
- image: drupal:8.9.11
name: drupal
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/www/html/modules
name: vol-drupal
subPath: modules
- mountPath: /var/www/html/profiles
name: vol-drupal
subPath: profiles
- mountPath: /var/www/html/sites
name: vol-drupal
subPath: sites
- mountPath: /var/www/html/themes
name: vol-drupal
subPath: themes
volumes:
- name: vol-drupal
persistentVolumeClaim:
claimName: drupal-seto
И вот мой drupal-service.yaml:
apiVersion: v1
kind: Service
metadata:
name: drupal-service
labels:
app: drupal
spec:
type: NodePort
ports:
- name: web
protocol: TCP
port: 80
targetPort: 80
selector:
app: drupal
Комментарии:
1. Какую информацию он запрашивает?
2. Какую точную ошибку вы получаете? Используете ли вы специальное руководство для этой настройки? Вы видели эту статью — medium.com/containerum /… ? Можете ли вы изменить службу drupal на LoadBalancer, как в примере в статье? Вы пробовали получить доступ к приложению с помощью MinikubeIP: NodePort? Также для подключения бэкэнда к интерфейсу вам необходимо добавить дополнительную метку, которая будет их соединять — подробнее: kubernetes.io/docs/tasks/access-application-cluster /…
Ответ №1:
Вам нужно подключиться между контейнерами, используя IP-адрес контейнеров или, возможно, модулей, но какой смысл получать базу данных в контейнере, вместо этого установите mysql на хост-машине, я это сделал, ознакомьтесь с руководством