簡體   English   中英

如何將 php.ini 添加到 kubernetes yaml 中的配置映射

[英]How to add php.ini to a configmap in kubernetes yaml

您好,我是 kubernetes 的新手。 我目前正試圖使用來自 dockerhub 的 docker 圖像,如果它是 php-fpm 圖像。 我希望能夠在 configmap 中自定義 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 示例,非常感謝。

首先,您需要定義代表您的php.ini的 ConfigMap,如下所示:

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 中,我們還包含指向卷下文件/etc/config/php.iniPHP_INI_PATH環境變量。

如果您想將 PHP.ini 的配置文件(從文件創建配置映射)掛載到您的 pod,可以執行以下操作,具體取決於您是否使用 helm。

使用 helm 時,您需要創建一個配置 map YAML 文件,並將所需的配置文件(您的場景中的 php.ini)放在 helm Chart 位置根目錄下的專用文件夾(例如conf文件夾)下,然后創建一個配置來自該文件的 map 並根據您的需要將其安裝到部署中。

如果您不使用 helm,您可以直接使用 kubectl 命令從文件中創建配置 map( 從文件命令中獲取此參考配置 map ):

從沒有 helm 的文件創建配置 map:

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

使用 helm 時配置 map YAML 看起來類似於:

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

然后 pod 應該使用此配置 map 並將其安裝到正確的路徑

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM