gradle k8s

迁移指南

本指南适用于原云通、云物等项目

新建分支

此步骤为可选,但是建议这么干

配置调整

升级项目根目录下的gradle配置

buildscript { ext { // 升级dubbo到3.0.2 dubboVersion = '3.0.2' } } plugins { // 升级springboot到2.5.10 id "org.springframework.boot" version "2.5.10" id "io.spring.dependency-management" version "1.0.11.RELEASE" } subprojects { dependencies { // 添加k8s服务发现依赖 implementation ("org.apache.dubbo:dubbo-registry-dns:${dubboVersion}") { exclude group: 'org.apache.dubbo', module: 'dubbo-registry-api' exclude group: 'org.apache.dubbo', module: 'dubbo-common' } implementation "org.apache.dubbo:dubbo-spring-boot-actuator:${dubboVersion}" // 兼容dubbo kryo序列化方式 implementation("org.apache.dubbo:dubbo-serialization-kryo:2.7.15") { exclude group: 'org.apache.dubbo', module: 'dubbo-serialization-api' } } }

调整application.yml

  1. 复制当前的application.yml为application-docker.yml
  2. 修改当前的application.yml内容为 spring: profiles: active: docker
  3. 复制application-docker.yml为application-k8s.yml,并调整内容: # 修改所有环境变量为真实取值,如果使用apollo,此配置调整为apollo中的内容 dubbo: application: # 此名称务必与将要创建的k8s服务名称保持一致,否则服务无法发现 name: pay-provider qosEnable: true qosAcceptForeignIp: true metadataServicePort: 20885 config: ignore-duplicated-interface: true registry: address: dns://${DNS_SERVER:coredns.kube-system}:${DNS_PORT:53}?registry-type=service&duplicate=false&addressSuffix=.toplion.svc.cluster.local. protocol: name: dubbo serialization: kryo consumer: timeout: 10000 # 必须配置,k8s中服务发现需要用到,指向服务提供者的k8s服务名称,多个服务名称用英文逗号分隔 provided-by: ${DUBBO_PROVIDED_BY:pay-provider}

解决3.0.2下kryo报错问题

  1. 在bootstrap-backend和bootstrap-provider项目下的src/main/java下新建package: org.apache.dubbo.common.utils
  2. 在新建的包下创建文件ReflectUtils.java

禁用原logback配置

重命名bootstrap项目下src/main/resources/logback-spring.xml为logback-spring.xml.1

推送分支

建议在tag后添加-k8s后缀,推送完成后登录kubesphere完成后续步骤,登录名为toplion,密码为Tp234567