【问题标题】:Running a drupal site using Minikube使用 Minikube 运行 drupal 站点
【发布时间】:2021-01-12 04:13:34
【问题描述】:

我正在通过使用 Minikube 和创建 Drupal 站点来学习如何使用 Kubernetes。

我能够minikube service 我的drupal 站点并到达“设置数据库”页面,仅此而已。它一直告诉我我需要插入正确的信息。我检查了我的 MYSQL pod,并且能够将 exec 和 MySQL 输入到我的数据库中。

我不确定我错过了什么? MYSQL pod 是否未连接到我的 Drupal pod?

这是我的 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

【问题讨论】:

  • 它需要什么样的信息?
  • 你得到了什么确切的错误?您是否为此设置使用特定教程?你看过这篇文章 - medium.com/containerum/… 吗?您可以像文章中的示例那样将 drupal 服务更改为 LoadBalancer 吗?您是否尝试过使用 MinikubeIP:NodePort 访问应用程序?此外,要将后端与前端连接,您必须添加额外的标签来连接它们 - 阅读更多:kubernetes.io/docs/tasks/access-application-cluster/…

标签: kubernetes drupal drupal-8 minikube


【解决方案1】:

您需要使用容器的 IP 地址或可能是 pod 来连接容器,但是在容器中获取数据库有什么意义,而不是在主机上安装 mysql 我已经完成了,查看指南

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

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2015-07-14
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2011-09-06
    相关资源
    最近更新 更多