Как добавить php .ini в configmap в kubernetes yaml - PullRequest
0 голосов
/ 10 апреля 2020

Здравствуйте, я новичок в kubernetes. В настоящее время я застрял, пытаясь использовать docker изображение из dockerhub, если это изображение php -pm. Я хотел бы иметь возможность настроить php .ini в файле конфигурации, как бы я go сделал это. Образ на dockerhub - crunchgeek / php -fpm , а инструкции для php .ini говорят, что существует переменная окружения "PHP_INI_PATH = / path / to / php .ini будет включать в себя указанные php .ini конфигурация во время запуска php -fpm менеджера. Позволяет использовать подстановочный знак, если вы хотите включить несколько файлов конфигурации .ini. " Как я могу добавить переменную окружения, которая управляет файлом php .ini, в карту конфигурации в kubernetes, пожалуйста, пример yaml очень мне поможет.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

В случае, если вы хотите смонтировать файл конфигурации PHP .ini (создание файла конфигурации из файла) в свой модуль, вы можете выполнить следующее в зависимости от того, используете ли вы helm или нет.

Когда используя helm, вам нужно создать YAML-файл карты конфигурации и поместить нужный файл конфигурации (php .ini в вашем сценарии) в специальную папку (например, папку conf ) в root вашего helm Расположение диаграммы, а затем создайте карту конфигурации из этого файла и подключите ее к развертыванию в соответствии с вашими потребностями.

Если вы не используете helm, вы можете создать карту конфигурации из файла напрямую, используя kubectl команда (взято из этой ссылки карта конфигурации из файла команда ):

создать карту конфигурации из файла без руля:

kubectl create configmap phpini-configmap --from-file=configure-pod-container/configmap/php.ini

карта конфигурации YAML при использовании helm будет выглядеть следующим образом:

apiVersion: v1
kind: ConfigMap
metadata:
  name: phpini-configmap
data:
  php.ini: |-
{{ .Files.Get "conf/php.ini" | indent 4 }}

Модуль должен затем использовать эту карту конфигурации и смонтировать ее по правильному пути

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
  namespace: default
spec:
  containers:
    - name: php-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "cat /etc/config/php.ini" ]
      volumeMounts:
      - name: ini-configmap
        mountPath: /etc/config/php.ini
        subPath: php.ini
      env:
      - name: PHP_INI_PATH
        value: /etc/config/php.ini
  volumes:
    - name: ini-configmap
      configMap:
        name: phpini-configmap
0 голосов
/ 10 апреля 2020

Сначала вам нужно определить ConfigMap, представляющий ваш php.ini, что-то вроде этого:

apiVersion: v1
kind: ConfigMap
metadata:
  name: php-ini-config
  namespace: default
data:
  php.ini: |
    foo=bar
    one=two

Затем вы можете визуализировать этот файл конфигурации в своей рабочей нагрузке как том , который выглядит примерно так:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
  namespace: default
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "cat /etc/config/php.ini" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
      env:
      - name: PHP_INI_PATH
        value: /etc/config/php.ini
  volumes:
    - name: config-volume
      configMap:
        name: php-ini-config

Обратите внимание, что в этом YAML мы также включаем переменную окружения PHP_INI_PATH, указывающую на файл в томе, /etc/config/php.ini.

...