2

我有一些 proxysql ( https://proxysql.com/ ) 实例(在 Kubernetes 中运行)。但是,我不想在配置文件 (proxysql.cnf) 中硬编码 db 凭据。我希望我可以使用 ENV 变量,但我无法让它工作。什么是在proxysql实例中包含秘密而不在纯文本文件中硬编码密码的正确方法?

我正在考虑将配置文件作为一个秘密包含在内,并将其安装在 Kubernetes 中(似乎过度杀死或错误)或envsubstr在启动脚本或 init 容器中运行。

想法?

4

1 回答 1

0

我最终做的是运行一个带有初始化脚本作为配置映射的边车:

      #!/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;

似乎工作得很好。

于 2020-04-20T21:44:53.820 回答