register-server注册中心无法注册


#1
  • Choerodon平台版本:0.15.0

  • 运行环境(如localhost或k8s):k8s

  • 遇到问题时的前置条件:

  • 问题描述:


    如:在Choerodon组织的租户设置中的客户端修改会报错,导致修改不成功。

  • 修改的数据:

* 报错信息(请尽量使用代码块的形式展现):
Network:

* 原因分析:
> 提出您分析问题的过程,以便我们能更准确的找到问题所在

* 疑问:
> 提出您对于遇到和解决该问题时的疑问

#2

你好,如果是使用springboot 模版创建的项目,需要修改如下文件。

chart/service-name/templates/_helpers.tpl 文件中添加:

{{- define "service.microservice.labels" -}}
choerodon.io/service: {{ .Chart.Name | quote }}
choerodon.io/metrics-port: {{ .Values.config.managementPort | quote }}
{{- end -}}

{{- define "service.labels.standard" -}}
choerodon.io/release: {{ .Release.Name | quote }}
choerodon.io/application: {{ .Chart.Name | quote }}
choerodon.io/version: {{ .Chart.Version | quote }}
{{- end -}}

chart/service-name/templates/deployment.yaml 文件中添加:

  template:
    metadata:
      labels:
{{ include "service.labels.standard" . | indent 8 }}
{{ include "service.microservice.labels" . | indent 8 }}

最后在chart/service-name/values.yaml 里指定:

config:
  port: 8080
  managementPort: 8080

#3

最后在 chart/service-name/values.yaml 里指定:

config:
  port: 8080
  managementPort: 8080

你好,这个管理端口必须要有吗?可以跟服务端口一样吗?


#4

我刚刚检查了一下我这边的有几个没有加:
1:_helpers.tpl 的:
choerodon.io/application: {{ .Chart.Name | quote }}
2:values.yaml的:
config:
port: 8080
managementPort: 8080

这两个没有加,别的都是有的。


#5

我是用的 你们平台的 go-register-server 部署的注册中心,是不需要修改啥的吧?
是只修改我自己项目的吗?


#6

两个端口和服务保持一致就可以了。

如果用平台的注册中心需要保证 环境变量中。REGISTER_SERVICE_NAMESPACE包含你的服务所在的k8s namespace 名称


#7

都按你的改了,还是注册不了。。。


#8

1、确保k8s node 之间网络是互通的。
2、确保注册中心有监听 服务所在的namespace
3、确保服务的pod 上带有 这三个label

choerodon.io/service        (Microservice name)
choerodon.io/version        (version)
choerodon.io/metrics-port   (metrics-port)

可以kubectl describe 查看下正在运行的pod


#9

root@mwcx-server-245:/home/code/config-server# kubectl describe pod/config-server-5b96594f97-xsdnq -n mwcx-dev
Name: config-server-5b96594f97-xsdnq
Namespace: mwcx-dev
Priority: 0
PriorityClassName:
Node: mwcx-server-250/192.168.10.250
Start Time: Mon, 15 Apr 2019 18:02:51 +0800
Labels: xxxx.cn/application=config-server
xxxxx.cn/metrics-port=8011
xxxx.cn/release=config-server
xxxx.cn/service=config-server
xxxx.cn/version=0.1.2
pod-template-hash=5b96594f97
Annotations: xxxxx.cn/metrics-group:
xxxxx.cn/metrics-path: /actuator/prometheus
Status: Running
IP: 100.115.73.220
Controlled By: ReplicaSet/config-server-5b96594f97
Containers:
config-server:
Container ID: docker://6d92e6aa6728abc42cd49889bc9400b1a9c74e39ee8490fd0955344de608332a
Image: xxxxx.xxxx.cn/demo/mwcx-config:0.1.2
Image ID: docker-pullable://xxxxx.xxxx.cn/demo/mwcx-config@sha256:1202835c112ebc5e3acb9437cee7959ad148bd10b74fd9d9d47bf0adfdc173ce
Port: 8010/TCP
Host Port: 0/TCP
State: Running
Started: Mon, 15 Apr 2019 18:02:53 +0800
Ready: True
Restart Count: 0
Limits:
memory: 2Gi
Requests:
memory: 1Gi
Readiness: exec [/bin/sh -c curl -s localhost:8011/actuator/health] delay=60s timeout=10s period=10s #success=1 #failure=3
Environment:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://register-server.mwcx-dev:8000/eureka/
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-t7ddf (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-t7ddf:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-t7ddf
Optional: false
QoS Class: Burstable
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message


Normal Scheduled 86s default-scheduler Successfully assigned mwcx-dev/config-server-5b96594f97-xsdnq to mwcx-server-250
Normal Pulling 85s kubelet, mwcx-server-250 pulling image “harbor.uinar.cn/demo/mwcx-config:0.1.2
Normal Pulled 85s kubelet, mwcx-server-250 Successfully pulled image “harbor.uinar.cn/demo/mwcx-config:0.1.2
Normal Created 85s kubelet, mwcx-server-250 Created container
Normal Started 84s kubelet, mwcx-server-250 Started container


#10

pod,可以启动成功就是注册不上~~~
麻烦帮忙看看咯!!


#11

labels必须有

choerodon.io/service        (Microservice name)
choerodon.io/version        (version)
choerodon.io/metrics-port   (metrics-port)

你们的为什么是

xxxxx.cn/metrics-port=8011
xxxx.cn/service=config-server
xxxx.cn/version=0.1.2

???


#12

这个我改了域名,是不能改的吗


#13

不能改的,必须是这几个字段,这是choerodon service的标志,这样才能被发现


#14

好吧。我试下


#15

改成choerodon.in 就可以了。。。