ARTIFACTORY:如何配置ARTIFACTORY通过TLS使用helm charts与PostgreSQL连接
概述:
这个例子将演示如何从Artifactory连接到启用TLS的PostgreSQL数据库
先决条件:
- Kubernetes 1.14 +
- 人工启用并安装Artifactory图表
- Kubectl已经安装并设置为使用集群
- 执掌v3安装
- 使用的数据库证书
如何配置?
当我们使用artifactory请确保使用下面的命令将JFrog掌舵存储库添加到掌舵客户端Helm repo添加jfrog https://charts.jfrog.io注意:由于Artifactory是基于Java的,而Metadata服务是用Golang编写的,因此需要两种格式的证书
Helm回购更新
为了使服务器证书对Java可用,将其转换为Java格式:Openssl x509 -in服务器。cert-out server.crt.der -outform der
另外,将客户端密钥转换为DER格式openssl pkcs8 -topk8 -outform DER -in ca.key -out ca.keypk8 -nocrypt
步骤1:
将证书转换为所需格式后,让我们构造Artifactory连接到PostgreSQL数据库所需的Kubernetes秘密Kubectl创建秘密通用工件-cloud-sql-certs——from-file=ca.key。pk8——从文件= ca。关键——从文件= ca。cert--from-file=server.crt.der --from-file=server.cert
步骤2:
现在,我们来构造这些值。安装Artifactory。
下数据库节中可用的值。在Yaml中,我们可以使用数据库类型、url、用户名/密码,如下所示postgresql:
启用:假
数据库:
类型:postgresql
司机:org.postgresql.Driver
url: jdbc: postgresql: / / postgres.com: 5432 / artifactory ? &sslmode = verify-ca&sslrootcert = / tmp / db-certs / server.crt.der&sslcert = / tmp / db-certs / ca.cert&sslkey = / tmp / db-certs / ca.key.pk8
用户名:“artifactory”
密码:“密码”
注意:由于我们使用的是外部数据库,因此在本例中禁用了绑定了helm图表的默认PostgreSQL。
上述部分将使用基于java的连接字符串,并且需要使用带有“。der”扩展名的sslrootcert,并且sslkey应该带有“”。Pk8”扩展,使用上面提到的转换示例。
步骤3:
下一步,我们还需要基于“golang”格式构造数据库url连接字符串,以便元数据服务连接到数据库。
要实现这一点,我们需要手动更新定制的系统。使用值上的参数。Yaml文件,注意应该是。certsslkey应该是。关键格式。
例子:artifactory:
replicaCount: 1
systemYaml: |
路由器:
serviceRegistry:
不安全:假
共享:
日志:
consoleLog:
启用:假
extraJavaOpts: >
-Dartifactory.access.client.max.connections = 50
数据库:
类型:“postgresql”
司机:“org.postgresql.Driver”
url: jdbc: postgresql: / / postgres.com: 5432 / artifactory ? &sslmode = verify-ca&sslrootcert = / tmp / db-certs / server.crt.der&sslcert = / tmp / db-certs / ca.cert&sslkey = / tmp / db-certs / ca.key.pk8
用户名:“artifactory”
密码:“密码”
artifactory:
数据库:
maxOpenConnections: 80
tomcat:
maintenanceConnector:
端口:8091
连接器:
maxThreads: 200
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
前端:
会话:
timeMinutes:“30”
访问:
数据库:
maxOpenConnections: 80
tomcat:
连接器:
maxThreads: 50
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
主持人:
启用:假
数据库:
maxOpenConnections: 10
idgenerator:
maxOpenConnections: 2
tomcat:
连接器:
maxThreads: 50
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
元数据:
数据库:
maxOpenConnections: 80
类型:postgresql
Url: "go:user='artifactory' password='password' dbname=artifactory host=postgres.com port=5432 sslmode=verify-ca sslrootcert=/tmp/db-certs/server. "cert sslcert = / tmp / db-certs / ca。certsslkey=/tmp/db-certs/ca.key"
jfconnect:
启用:假
步骤4:
在上面的示例中,我们使用了自定义路径来保存pod中的证书,这可以通过在值中使用customVolumes和customvolumounts来实现。yaml文件。
此外,通过配置证书文件,应该为其分配600权限preStartCommand在人工部分下
最终值。Yaml文件如下所示postgresql:
启用:假
数据库:
类型:postgresql
司机:org.postgresql.Driver
url: jdbc: postgresql: / / postgres.com: 5432 / artifactory ? &sslmode = verify-ca&sslrootcert = / tmp / db-certs / server.crt.der&sslcert = / tmp / db-certs / ca.cert&sslkey = / tmp / db-certs / ca.key.pk8
用户名:“artifactory”
密码:“密码”
databaseUpgradeReady:真
unifiedUpgradeAllowed:真
主持人:
启用:假
artifactory:
replicaCount: 1
systemYaml: |
路由器:
serviceRegistry:
不安全:假
共享:
日志:
consoleLog:
启用:假
extraJavaOpts: >
-Dartifactory.access.client.max.connections = 50
数据库:
类型:“postgresql”
司机:“org.postgresql.Driver”
url: jdbc: postgresql: / / postgres.com: 5432 / artifactory ? &sslmode = verify-ca&sslrootcert = / tmp / db-certs / server.crt.der&sslcert = / tmp / db-certs / ca.cert&sslkey = / tmp / db-certs / ca.key.pk8
用户名:“artifactory”
密码:“密码”
artifactory:
数据库:
maxOpenConnections: 80
tomcat:
maintenanceConnector:
端口:8091
连接器:
maxThreads: 200
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
前端:
会话:
timeMinutes:“30”
访问:
数据库:
maxOpenConnections: 80
tomcat:
连接器:
maxThreads: 50
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
主持人:
启用:假
数据库:
maxOpenConnections: 10
idgenerator:
maxOpenConnections: 2
tomcat:
连接器:
maxThreads: 50
sendReasonPhrase:假
extraConfig: acceptCount = " 100 "
元数据:
数据库:
maxOpenConnections: 80
类型:postgresql
Url: "go:user='artifactory' password='password' dbname=artifactory host=postgres.com port=5432 sslmode=verify-ca sslrootcert=/tmp/db-certs/server. "cert sslcert = / tmp / db-certs / ca。certsslkey=/tmp/db-certs/ca.key"
jfconnect:
启用:假
preStartCommand: "chmod -R 600 /tmp/db-certs/* && ls -ltr /tmp/db-certs/db-certs"
customCertificates:
启用:真
certificateSecretName: artifactory-cloud-sql-certs
customVolumes: |
—名称:artifactory-cloud-sql-cert
秘密:
secretName: artifactory-cloud-sql-certs
customVolumeMounts: |
—名称:artifactory-cloud-sql-cert
mountPath: / tmp / db-certs
masterKeySecretName: masterkey-secret
joinKeySecretName: joinkey-secret
nginx:
启用:真
步骤5:
最后,执行Artifactory的安装头盔升级——安装artifactory jfrog/artifactory -f values.yaml