配置映射以连接字符串

时间:2018-12-11 16:13:30

标签: java azure tomcat kubernetes database-connection

我有一个休息api,其中我有azure的数据库以及带有docker + kubernetes的应用程序,很好。

我有10个以上的客户端,每个客户端都拥有一个数据库,我不想为每个客户端都拥有一个docker映像,而只想拥有一个基本映像,其中每个客户端都具有一个连接字符串,建议的解决方案是 setenv.sh 进行连接

setenv.sh

#!/bin/bash

dbuser="xxx@iafox"
dbpassword="mypassword"
dbconnectstring="jdbc:sqlserver://xxx.database.windows.net:1433;database=ts-demo1;user=xxx@iafox;password=mypassword;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
dburl="jdbc:sqlserver://xxx.database.windows.net:1433;database=ts-demo1;"

export CATALINA_OPTS=" ${SYSTEM_PROPS} -Ddbuser='${dbuser}' -Ddbpassword=${dbpassword} -Ddbconnectstring='${dbconnectstring}' -Ddburl='${dburl}'"

server.xml

<Realm className="org.apache.catalina.realm.JDBCRealm" connectionURL="${dbconnectstring}" driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" roleNameCol="role" userCredCol="password" userNameCol="login" userRoleTable="userRole" userTable="v_login"/>

直到一切正常。但是现在我不知道下一步,如果我创建的每个 setenv 都在kubernetes中有一个 configmap ,或者我是否在其中有所有连接字符串。相同的 setenv ...。我希望对此有所帮助

1 个答案:

答案 0 :(得分:1)

您可以根据here中的说明,从一个configMap设置多个环境变量。

但是我建议将密码和带有敏感信息的连接字符串存储在secret中。

您可以reference Kubernetes secrets in a similar way设置容器的环境变量。