Kubernetes env-файл - PullRequest
       7

Kubernetes env-файл

0 голосов
/ 13 марта 2020

env.example

MYSQL_PASSWORD=password
MYSQL_DATABASE=db
MYSQL_ROOT_PASSWORD=password
MYSQL_USER=user

Я создал секрет

kubectl create secret generic prod-secrets --from-file=env.example

Указанный секрет в mysql файле yaml

spec:
      containers:
      - name: mysql-container
        image: mysql:dev
        imagePullPolicy: "IfNotPresent"
        envFrom:
          - secretRef:
             name: prod-secrets
        ports:
        - containerPort: 3306
         # container (pod) path
        volumeMounts:
          - name: mysql-persistent-storage
            mountPath: /data/db

Pod переходит в CrashLoopBackOff

Это из kubectl describe pod

Переменные окружения из:

prod-secrets Secret Необязательно: false

Среда:

Что не так с этой настройкой?

Секретный вывод:

kubectl describe secret prod-secrets
Name:         prod-secrets
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
env.example:  96 bytes

РЕДАКТИРОВАТЬ

После попытки предложения от ответа, pod still сбой

mysql-container-ffdc44fc6-w9qqm     0/1     Error     1          23s
mysql-container-ffdc44fc6-w9qqm     0/1     CrashLoopBackOff   1          34s
mysql-container-ffdc44fc6-w9qqm     1/1     Running            2          34s
mysql-container-ffdc44fc6-w9qqm     0/1     Error              2          44s
mysql-container-ffdc44fc6-w9qqm     0/1     CrashLoopBackOff   2          56s
mysql-container-ffdc44fc6-w9qqm     1/1     Running            3          72s
mysql-container-ffdc44fc6-w9qqm     0/1     Error              3          82s

Секрет отображается правильно

kubectl describe secret prod-secrets
Name:         prod-secrets
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
MYSQL_DATABASE:       7 bytes
MYSQL_PASSWORD:       8 bytes
MYSQL_ROOT_PASSWORD:  8 bytes
MYSQL_USER:           4 bytes

Я использую только кластер из 1 узла (1 главный узел), может ли это вызвать эту проблему?

Найдено и выдано:

указано root как DB_USER в файле env, как только я изменил все это начало работать

1 Ответ

2 голосов
/ 13 марта 2020

Создать секрет, используя опцию - из-env-файла

kubectl create secret prod-secrets \
       --from-env-file=env.example
...