Kubernetes - 如何使用密钥更改 SQL 数据库连接字符串并使用服务主机名
Kubernetes - How to Change SQL DB connection string with secret and use service hostname
我是 Kubernetes 的新手,但我有 运行 docker-compose,它基本上部署了目录 API 和目录数据库。
在使用 docker-compose 时:
我已经使用 docker-compose.override.yaml 将连接字符串从本地覆盖到我们为数据库设置的另一个容器,例如
DatabaseSettings:ConnectionString=Server=catalog,1433;Database=catalogDb;User Id=sa;Password=secretPassw@rd;
从这个意义上说,两个容器都在工作,并且 Catalog API 容器能够毫无问题地连接到 Catalog DB Container。
现在,来到 Kubernetes:
我知道我们在 Kubernetes 中有一个秘密和配置映射,但这些是通过将它们添加到 Kubernetes 中的部署类型定义中来替换单个项目的。
我可能可以将整个连接字符串添加为 Kubernetes 机密并将其用作环境,但我有三个问题:
- 这是正确的方法吗?
- 我应该在 Kubernetes secret 中指定什么服务器名称?
- 在秘密文件中,我们可以像我们为 SQL 容器实例指定的 SQL 密码一样进行字符串插值或污染,但是我们可以在为目录提供连接字符串时引用相同的密码 API 不用再写一遍?
给大家一个参考,下面是我制作的:
Is that a correct approach?
是的,这是正确的方法。
任何可配置的东西要么进入 configmap 要么进入秘密。
Secret 最好存放数据库密码和主机等机密
补充一下:
机密仅采用 base64 编码。
What is the server name should I specify in Kubernetes secret?
如果您的服务 运行 在 Same Kubernetes 上,您应该始终使用 服务名称 作为连接字符串中的服务器名称群集。
以便您的应用程序连接到 Kubernetes 服务并将流量转发到 POD(容器)。不要使用 POD 的 Cluster IP。
Inside a secret file, can we do string interpolation or contamination
like we specific SQL Password for SQL container instance but the same
password can we reference while we provide the Connection string for
Catalog API without writing it the same again?
没有
我是 Kubernetes 的新手,但我有 运行 docker-compose,它基本上部署了目录 API 和目录数据库。
在使用 docker-compose 时:
我已经使用 docker-compose.override.yaml 将连接字符串从本地覆盖到我们为数据库设置的另一个容器,例如
DatabaseSettings:ConnectionString=Server=catalog,1433;Database=catalogDb;User Id=sa;Password=secretPassw@rd;
从这个意义上说,两个容器都在工作,并且 Catalog API 容器能够毫无问题地连接到 Catalog DB Container。
现在,来到 Kubernetes:
我知道我们在 Kubernetes 中有一个秘密和配置映射,但这些是通过将它们添加到 Kubernetes 中的部署类型定义中来替换单个项目的。
我可能可以将整个连接字符串添加为 Kubernetes 机密并将其用作环境,但我有三个问题:
- 这是正确的方法吗?
- 我应该在 Kubernetes secret 中指定什么服务器名称?
- 在秘密文件中,我们可以像我们为 SQL 容器实例指定的 SQL 密码一样进行字符串插值或污染,但是我们可以在为目录提供连接字符串时引用相同的密码 API 不用再写一遍?
给大家一个参考,下面是我制作的:
Is that a correct approach?
是的,这是正确的方法。
任何可配置的东西要么进入 configmap 要么进入秘密。
Secret 最好存放数据库密码和主机等机密
补充一下:
机密仅采用 base64 编码。
What is the server name should I specify in Kubernetes secret?
如果您的服务 运行 在 Same Kubernetes 上,您应该始终使用 服务名称 作为连接字符串中的服务器名称群集。
以便您的应用程序连接到 Kubernetes 服务并将流量转发到 POD(容器)。不要使用 POD 的 Cluster IP。
Inside a secret file, can we do string interpolation or contamination like we specific SQL Password for SQL container instance but the same password can we reference while we provide the Connection string for Catalog API without writing it the same again?
没有