Mysql контейнер не запускается в Kubernetes - PullRequest
2 голосов
/ 28 мая 2020

Я использовал этот образ для запуска моего приложения в docker-compose. Однако, когда я запускаю то же самое в кластере Kubernetes, я получаю сообщение об ошибке

[ERROR] Could not open file '/opt/bitnami/mysql/logs/mysqld.log' for error logging: Permission denied

Вот мой файл развертывания

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.21.0 ()
  creationTimestamp: null
  labels:
    io.kompose.service: common-db
  name: common-db
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: common-db
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.21.0 ()
      creationTimestamp: null
      labels:
        io.kompose.service: common-db
    spec:
      containers:
      - env:
        - name: ALLOW_EMPTY_PASSWORD
          value: "yes"
        - name: MYSQL_DATABASE
          value: "common-development"
        - name: MYSQL_REPLICATION_MODE
          value: "master"
        - name: MYSQL_REPLICATION_PASSWORD
          value: "repl_password"
        - name: MYSQL_REPLICATION_USER
          value: "repl_user"
        image: bitnami/mysql:5.7
        imagePullPolicy: ""
        name: common-db
        ports:
        - containerPort: 3306
        securityContext:
          runAsUser: 0
        resources:
          requests:
            memory: 512Mi
            cpu: 500m
          limits:
            memory: 512Mi
            cpu: 500m
        volumeMounts:
          - name: common-db-initdb
            mountPath: /opt/bitnami/mysql/conf/my_custom.cnf
      volumes:
        - name: common-db-initdb
          configMap:
            name: common-db-config
      serviceAccountName: ""

status: {}

На карте конфигурации есть данные config my.cnf. Любые указания на то, где я могу ошибиться? Особенно если это же изображение работает в docker-compose?

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Попробуйте изменить права доступа к файлу, используя init container, как в официальной диаграмме управления битнами, они также обновляют права доступа к файлам и управляют контекстом безопасности.

диаграмма управления: https://github.com/bitnami/charts/blob/master/bitnami/mysql/templates/master-statefulset.yaml

ОБНОВЛЕНИЕ :

 initContainers:
      - command:
        - /bin/bash
        - -ec
        - |
          chown -R 1001:1001 /bitnami/mysql
        image: docker.io/bitnami/minideb:buster
        imagePullPolicy: Always
        name: volume-permissions
        resources: {}
        securityContext:
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /bitnami/mysql
          name: data
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        fsGroup: 1001
        runAsUser: 1001
      serviceAccount: mysql
1 голос
/ 28 мая 2020

Возможно, вам потребуется использовать подпуть. Чтобы узнать подробности о подпутье, нажмите здесь

volumeMounts:
  - name: common-db-initd
    mountPath: /opt/bitnami/mysql/conf/my_custom.cnf
    subPath: my_custom.cnf

Также вы можете легко установить битнами mysql с помощью helm chart .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...