Запуск сайта на drupal с использованием Minikube

#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 на хост-машине, я это сделал, ознакомьтесь с руководством

https://www.youtube.com/watch?v=7Y4RJrk-cFw