描述
部署RegistryHub资源后,返回registryhub.ecns.easystack.cn/xxx created
,但是在导出的命名空间一直没有服务端对应的ServiceEntry资源。
解决方案
- 通过查看RegistryHub资源描述,如果出现错误,在
status.phase
状态会置为failed
,同时在status.conditions
中会标注出错误原因,比如下面的错误是zookeeper地址设置错误,通过修改为正确地址后,再重新部署一下资源即可:
kubectl get registryhub registryhub-sample -oyaml
apiVersion: ecns.easystack.cn/v1alpha1
kind: RegistryHub
metadata:
name: registryhub-sample
namespace: default
spec:
address: zookeeper1.default:2181
generate_to: default
type: zookeeper
status:
address: zookeeper1.default:2181
conditions:
- failed_reason: 'lookup zookeeper1.default on 10.43.0.10:53: no such host'
record_time: "2024-02-04T02:53:25Z"
generate_to: default
phase: failed
serviceentries: {}
type: zookeeper
- 查看RegistryHub资源描述,
status.phase
显示为success
,但仍然没有生成服务端对应的ServiceEntry资源,status.serviceentryies
只有几条ServiceEntry
记录:
status:
address: zookeeper.default:2181
generate_to: default
phase: success
serviceentries:
aeraki-org-apache-dubbo-samples-api-greetingservice-1-0-0-default: "2024-02-04T03:04:20Z"
type: zookeeper
可从以下两个方面排查:
是不是刚部署registryhub资源:如果是,可以继续等待几分钟,同时关注
status.serviceentryies
列表是否在持续增加,如果在增加,说明还在同步,稍后客户端再重试即可。注册中心是否有服务端信息:如果registryhub的
status.serviceentryies
没有增加了,也没有看到服务端对于的ServiceEntry资源,可以排查注册中心是否存在服务端信息。