如何将 php.ini 添加到 kubernetes yaml 中的配置映射
How to add php.ini to a configmap in kubernetes yaml
您好,我是 kubernetes 的新手。我目前无法尝试使用来自 dockerhub 的 docker 图像,如果它是 php-fpm 图像。我希望能够在 configmap 中自定义 php.ini 我将如何去做。 dockerhub 上的图像是
crunchgeek/php-fpm 和 php.ini 的说明说有一个环境变量 "PHP_INI_PATH=/path/to/php.ini
将在 php-fpm 管理器启动期间包括指定的 php.ini 配置。如果您想包含多个 .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
然后你可以render this configmap into your workload as a volume,看起来像这样:
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
。
如果你想挂载 PHP.ini 的配置文件(从文件创建一个 configmap)到你的 pod 可以执行以下操作取决于你是否使用 helm。
使用 helm 时,您需要创建一个配置映射 YAML 文件,并将所需的配置文件(php.ini 在您的场景中)放在专用文件夹下,(例如 conf 文件夹)在您的 helm Chart 位置的根目录中,然后从该文件创建一个配置映射并根据您的需要将其安装到部署中。
如果您不使用 helm,您可以直接使用 kubectl 命令从文件创建配置映射(取自此参考 config map from file command):
从没有 helm 的文件创建配置映射:
kubectl create configmap phpini-configmap --from-file=configure-pod-container/configmap/php.ini
config map YAML 在使用 helm 时看起来类似于:
apiVersion: v1
kind: ConfigMap
metadata:
name: phpini-configmap
data:
php.ini: |-
{{ .Files.Get "conf/php.ini" | indent 4 }}
pod 然后应该使用此配置映射并将其安装到正确的路径
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
您好,我是 kubernetes 的新手。我目前无法尝试使用来自 dockerhub 的 docker 图像,如果它是 php-fpm 图像。我希望能够在 configmap 中自定义 php.ini 我将如何去做。 dockerhub 上的图像是 crunchgeek/php-fpm 和 php.ini 的说明说有一个环境变量 "PHP_INI_PATH=/path/to/php.ini 将在 php-fpm 管理器启动期间包括指定的 php.ini 配置。如果您想包含多个 .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
然后你可以render this configmap into your workload as a volume,看起来像这样:
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
。
如果你想挂载 PHP.ini 的配置文件(从文件创建一个 configmap)到你的 pod 可以执行以下操作取决于你是否使用 helm。
使用 helm 时,您需要创建一个配置映射 YAML 文件,并将所需的配置文件(php.ini 在您的场景中)放在专用文件夹下,(例如 conf 文件夹)在您的 helm Chart 位置的根目录中,然后从该文件创建一个配置映射并根据您的需要将其安装到部署中。
如果您不使用 helm,您可以直接使用 kubectl 命令从文件创建配置映射(取自此参考 config map from file command):
从没有 helm 的文件创建配置映射:
kubectl create configmap phpini-configmap --from-file=configure-pod-container/configmap/php.ini
config map YAML 在使用 helm 时看起来类似于:
apiVersion: v1
kind: ConfigMap
metadata:
name: phpini-configmap
data:
php.ini: |-
{{ .Files.Get "conf/php.ini" | indent 4 }}
pod 然后应该使用此配置映射并将其安装到正确的路径
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