我有一些 proxysql ( https://proxysql.com/ ) 实例(在 Kubernetes 中运行)。但是,我不想在配置文件 (proxysql.cnf) 中硬编码 db 凭据。我希望我可以使用 ENV 变量,但我无法让它工作。什么是在proxysql实例中包含秘密而不在纯文本文件中硬编码密码的正确方法?
我正在考虑将配置文件作为一个秘密包含在内,并将其安装在 Kubernetes 中(似乎过度杀死或错误)或envsubstr在启动脚本或 init 容器中运行。
想法?
我有一些 proxysql ( https://proxysql.com/ ) 实例(在 Kubernetes 中运行)。但是,我不想在配置文件 (proxysql.cnf) 中硬编码 db 凭据。我希望我可以使用 ENV 变量,但我无法让它工作。什么是在proxysql实例中包含秘密而不在纯文本文件中硬编码密码的正确方法?
我正在考虑将配置文件作为一个秘密包含在内,并将其安装在 Kubernetes 中(似乎过度杀死或错误)或envsubstr在启动脚本或 init 容器中运行。
想法?
我最终做的是运行一个带有初始化脚本作为配置映射的边车:
#!/bin/sh
echo "Check if mysqld is running..."
while ! nc -z 127.0.0.1 6032; do
sleep 0.1
done
echo "mysql is running!"
echo "Loading Runtime Data..."
echo "INSERT INTO mysql_users(username,password,default_hostgroup) VALUES ('$USERNAME','$PASSWORD',1);" | mysql -u $PROXYSQL_USER -p$PROXYSQL_PASSWORD -h 127.0.0.1 -P6032
echo "LOAD MYSQL USERS TO RUNTIME;" | mysql -u $PROXYSQL_USER -p$PROXYSQL_PASSWORD -h 127.0.0.1 -P6032
echo "Runtime Data loaded."
while true; do sleep 300; done;
似乎工作得很好。