如何在一个正在运行的ARTIFACTORY Kubernetes版本中更改JVM

保罗•潘
2023-01-22 11:06

如果您想更改与artifactory捆绑在一起的JVM(无论是不同的发行版还是版本),您可以通过更改system.yaml中的java主目录来轻松更改artifactory中的java运行时代理。但是,如果您的工件安装了kubernetes,则可以执行以下步骤以最小化停机时间来更改JVM。

步骤

1.下载您想要使用的JDK存档。(例如,adoptopenjdk在https://staging.adoptopenjdk.net/17/archive.html)

2.Cp下载档案到artifactory pod(注意我的pod名称是d-artifactory-0,我们复制到/opt/jfrog/artifactory/var路径,因为它是持久化的。你可以在它下面创建一个目录来存储运行时):kubectl cp OpenJDK.tar.gz d-artifactory-0:/opt/jfrog/artifactory/var
3.在pod中解压缩java运行时。对每个节点重复此步骤。

4.编辑系统。修改javaHome:共享:
javaHome: / opt / jfrog / artifactory / var / jdk-11.0.10 + 9”
您可以通过改变值来做到这一点。Yaml和helm更新版本。或者,如果您只想快速测试JVM更改,则可以直接修改秘密。$ kubectl get secret d-artifactory-systemyaml -o jsonpath="{.data}"

Base64解码它以获得systemYaml内容并更改javaHome

重新编码该值。运行

$ kubectl编辑秘密d-artifactory-systemyaml
替换已编码的字符串。

5.在每个吊舱上执行滚动重启。在启动时,你应该看到:2022-05-16T22:01:49.459Z [shell] [INFO] [] [systemYamlHelper.sh:522] [main] -已解析.artifact .database. database. zip。maxOpenConnections (80) from /opt/jfrog/artifactory/var/etc/system.yaml
2022-05-16T22:01:49.854Z [shell] [INFO] [] [systemYamlHelper.sh:522] [main] -已解析.access.database。maxOpenConnections (80) from /opt/jfrog/artifactory/var/etc/system.yaml
2022-05-16T22:01:50.149Z [shell] [INFO] [] [systemYamlHelper.sh:522] [main] -已解析。shared。/opt/jfrog/artifactory/var/etc/system.yaml中的javaHome (/opt/jfrog/artifactory/var/jdk-11.0.10+9
2022-05-16T22:01:52.014Z [shell] [INFO] [] [installerCommon.sh:1514] [main] -检查打开的文件和进程限制
2022-05-16T22:01:52.074Z [shell] [INFO] [] [installerCommon.sh:1517] [main] -当前最大打开文件为1048576
如果你想在引导时坚持这个改变,并且你的pod可以访问互联网,你可以在值中使用preStartCommand。Yaml加载额外的Java运行时:artifactory:
preStartCommand: "wget -c - o - | tar -xz -c /opt/jfrog/artifactory/var "