registry启动失败报错level=fatal msg=”crypto/tls: private key does not match public key”

  其他常见问题
内容纲要

概要描述


本文描述 registry 启动失败,报错 level=fatal msg="crypto/tls: private key does not match public key" 的解决方法。

详细说明


1 问题描述

registry 启动失败,pod 状态为 CrashLoopBackOff

file

kubectl logs tos-registry-tos-hostname -n kube-system

查看pod日志有如下报错:

level=fatal msg="crypto/tls: private key does not match public key"

file

2 解决方案

重装Registry角色
由于Registry页面无法重装,我们需要去数据库里手动删除,再去页面重装

file

2.1 登陆manager数据库

参考各个版本查看Manager后台数据的方法

2.2 进入transwarp-manager库内,修改role表
select * from role where type='TOS_REGISTRY';

file

delete from role where type='TOS_REGISTRY';

file

删除之后,去 manager 的 TOS 角色信息页面上确认这个角色是否已被删除

2.3 重装Registry角色

确认registry的版本号,registry 节点执行

docker images | grep registry

manager 节点备份对应的metainfo.yaml

cp /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/metainfo.yaml /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/metainfo.yaml.init

修改对应的metainfo.yaml

vi /var/lib/transwarp-manager/master/content/meta/services/TOS/[版本]/metainfo.yaml

找到name: TOS_REGISTRY部分,在frontendOperations里添加 "Scaleout" 选项,如下图所示
file

manager 节点重启manager进程

/etc/init.d/transwarp-manager restart

重新登陆Manager页面,tos上添加角色重装registry

file

如果页面上卡住了,可以手动到 registry 节点服务器上

mv /opt/kubernetes/manifests-multi/tos-registry.manifest /tmp

过一分钟,再移动回去
mv /tmp/tos-registry.manifest /opt/kubernetes/manifests-multi/

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。