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
- 复制当前的application.yml为application-docker.yml
- 修改当前的application.yml内容为 spring: profiles: active: docker
- 复制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报错问题
- 在bootstrap-backend和bootstrap-provider项目下的src/main/java下新建package: org.apache.dubbo.common.utils
- 在新建的包下创建文件ReflectUtils.java
禁用原logback配置
重命名bootstrap项目下src/main/resources/logback-spring.xml为logback-spring.xml.1
推送分支
建议在tag后添加-k8s后缀,推送完成后登录kubesphere完成后续步骤,登录名为toplion,密码为Tp234567