ARTIFACTORY:如何将ARTIFACTORY迁移到Kubernetes集群

Vignesh Surendrababu
2023-01-22 11:06

在本文中,我们将描述使用基于helm的安装将运行在虚拟机上的Artifactory实例迁移到kubernetes集群的步骤。因为人工工厂有能力执行完整的系统导出和导入,当需要执行迁移时,建议使用新数据库安装新的Artifactory服务器。

在此迁移过程中,让旧Artifactory和新Artifactory服务器具有相同的版本是很重要的。

用例1:使用S3/Azure blob存储或GCP桶作为文件存储时的迁移步骤

步骤1:

首先,需要在kubernetes集群上安装一个新的Artifactory服务器,可以按照快速入门指南。由于我们将在本例中使用完整系统导出/导入过程,因此我们将使用PostgreSQL作为绑定在helm图表上的数据库

步骤2:

当使用外部存储桶存储校验和时,我们需要配置新的Artifactory实例,并在binarstore .xml中使用相同的提供程序类型。

在这种情况下,例如,当使用s3作为旧服务器上的桶时,我们可以在新服务器上使用相同的s3桶,或者通过执行从旧s3桶到新s3桶的s3复制来备份s3桶的内容。如欲了解更多详情,请参阅外部文档AWS。如果希望在新安装时使用相同的桶,建议备份s3数据。

步骤3:

为了在binarystore上配置和使用s3配置,有两个选项可供选择。

选项1:直接在values.yaml中编辑。databaseUpgradeReady:真
unifiedUpgradeAllowed:真
postgresql:
启用:真
postgresqlPassword:密码
artifactory:
replicaCount: 1
masterKeySecretName: my-masterkey-secret
joinKeySecretName: my-joinkey-secret
许可:
秘密:artifactory-cluster-license
dataKey: art.lic
copyOnEveryStartup:
#绝对路径
-来源:/artifactory_bootstrap/ binarstore .xml
#相对于ARTIFACTORY_HOME/
目标:等/ artifactory /
持久性:
binarystoreXml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<配置version = " 2 " >
<链>


> < /供应商
< / >链

真正< testConnection > < / testConnection >
< bucketName > bucketName < / bucketName >
<路径> artifactory / filestore > < /路径
<地区> ap-southeast-2 > < /地区
<端点> s3.ap东南- 2. amazonaws.com < /端点>
300年< signatureExpirySeconds > < / signatureExpirySeconds >
假< / usePresigning < usePresigning > >
真正< useInstanceCredentials > < / useInstanceCredentials >
50 < maxConnections > < / maxConnections >
> < /供应商
< / config >
启用:真
类型:aws-s3-v3
nginx:
启用:真

选项2:创建您自己的secret并将其传递给helm install命令。

#准备你的自定义秘密文件(custom- binarstore .yaml):秘密
apiVersion: v1
元数据:
名称:custom-binarystore
标签:
应用:artifactory
图:artifactory
stringData:
binarystoreXml: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<配置version = " 2 " >
<链>


> < /供应商
< / >链

真正< testConnection > < / testConnection >
< bucketName > bucketName < / bucketName >
<路径> artifactory / filestore > < /路径
<地区> ap-southeast-2 > < /地区
<端点> s3.ap东南- 2. amazonaws.com < /端点>
300年< signatureExpirySeconds > < / signatureExpirySeconds >
假< / usePresigning < usePresigning > >
真正< useInstanceCredentials > < / useInstanceCredentials >
50 < maxConnections > < / maxConnections >
> < /供应商
< / config >

使用自定义密钥时的下一步是,从文件创建一个密钥。

/custom- binarstore .yaml

然后,将秘密传递给您的helm安装命令。

$ helm upgrade -install artifactory -namespace artifactory -set artifactory.persistence。customBinarystoreXmlSecret = custom-binarystore jfrog / artifactory

除了在helm命令中传递“customBinarystoreXmlSecret”之外,还可以在值文件上直接使用,如下所示databaseUpgradeReady:真
unifiedUpgradeAllowed:真
postgresql:
启用:真
postgresqlPassword:密码
artifactory:
replicaCount: 1
masterKeySecretName: my-masterkey-secret
joinKeySecretName: my-joinkey-secret
许可:
秘密:artifactory-cluster-license
dataKey: art.lic
copyOnEveryStartup:
#绝对路径
-来源:/artifactory_bootstrap/ binarstore .xml
#相对于ARTIFACTORY_HOME/
目标:等/ artifactory /
持久性:
启用:真
customBinarystoreXmlSecret: custom-binarystore
nginx:
启用:真

步骤4:

安装了新服务器后,禁用垃圾收集从旧实例和新实例中

步骤5:

将服务器从网络中断开以阻止旧服务器上的新请求

步骤6:

执行一个全系统导出通过启用“排除内容”选项从旧服务器删除

第七步:

在新服务器上,由于s3桶配置已经到位,使用步骤5中导出的数据执行完整的系统导入(不要选择Exclude Content选项)。

注意:在执行完整的系统导出和导入,确保Artifactory仅在新旧服务器上使用一个节点运行。

第八步:

将DNS切换到新服务器。

步骤9:

通过上传一些文件来执行一些验证,并确保它反映在新服务器上使用的s3桶上。此外,现有的文件下载不应该引起任何问题。

注意:在本例中,当使用Azure blob存储或GCP存储时,我们关注的是使用s3存储桶,因此过程仍然是相同的,在安装新Artifactory时,我们需要更新binarstore .xml以使用正确的提供程序类型。

关于迁移的其他用例将很快在本文中更新,请继续关注!