Helm安装107.104.6时join.key文件未创建问题咨询
问题描述
- 部署Artifactory Helm Chart时,已按要求配置
artifactory.artifactory.joinKeySecretName指向包含join-key密钥的Secret,etc/security/master.key已正确创建并赋值,但etc/security/join.key始终未自动生成。 - 手动创建
join.key后,Pod启动失败,日志输出如下错误:
… [jfrou] [INFO ] … [join_executor.go:174 … [main … Cluster join : Retry 145: Access Service ping failed, will retry. Error: cluster join: error from service registry on ping: url=http://localhost:8040/access/api/v1/system/ping, status code=404, …
Terminate signal received, attempting a graceful shutdown (272)
Exit status: 143
排查修复步骤
验证Secret配置
确认指定的Secret中密钥名称必须是join-key(严格匹配大小写),且密钥值为原始字符串(无需手动base64编码,Helm会自动处理)。可执行以下命令检查:kubectl get secret <你的join-key-secret名称> -o yaml确保
data.join-key字段是正确的base64编码值。检查Access Service状态
日志中的404错误说明Access Service未正常启动,集群模式下Artifactory依赖Access Service就绪后才能完成集群加入。查看Access Service Pod日志:kubectl logs <access-service-pod名称>排查是否有启动失败、配置错误或资源不足的情况。
修正Helm配置与挂载逻辑
确认artifactory.artifactory.joinKeySecretName配置未被其他嵌套配置覆盖,检查values.yaml中该字段的层级是否正确。同时确保Pod的volume挂载将Secret正确映射到/var/opt/jfrog/artifactory/etc/security/join.key路径,之后重新部署:helm upgrade <你的release名称> jfrog/artifactory -f <自定义values文件>禁止手动创建join.key
不要手动生成join.key文件,Artifactory会自动从指定Secret中读取内容并生成该文件,手动创建会导致文件权限、内容不匹配,引发启动异常。若已手动添加,先删除Pod及对应PVC(持久化存储场景),清理残留文件后重新部署。检查容器内部网络与端口
进入Artifactory容器,测试Access Service端口连通性:kubectl exec -it <artifactory-pod名称> -- bash curl http://localhost:8040/access/api/v1/system/ping确认端口是否正常监听,网络是否通畅。
内容的提问来源于stack exchange,提问作者Mike

