因为部署到k8s中的业务服务都是虚拟Ip,每次更新发布ip都会变化,请问有何方案能够解决此问题。仅仅只能靠缩小更新ip地址的频率吗?有其它方式吗?
目前看只能这样。
一般集群发布有任务失败也正常,任务配置适当的重试策略即可。
我看到配置任务的时候可以指定集群配置,这个配置意思如果我配置了一个机器,那么定时任务就只会调度到这一台机器上是吗?;两种方案:
1: powerjob以jar包方式部署,业务服务以k8s部署,这时候讲k8s服务中的service以nodepod策略映射出去,然后集群配置这一项直接配置这个映射出来的ip和端口。
2: powerjob和业务服务同时都在k8s部署,这时候这个集群配置直接配置一个serviceName 是不是就可以了。
我今天大概部署了单机的试了下,提几个建议麻烦考虑下。
1: 建议任务加上运行一次的按钮,目前的运行按钮,如果我的任务状态是关闭的,点完运行按钮就自动打开了,但是界面显示还是光比。
2:任务界面的执行器地址配置是为了debug方便,并且执行的时候还会与注册上来的地址比对,如果找不到就直接失败了。
3. 目前无法完美适应k8s环境,就算执行器地址刷新间隔再短,面对频繁部署变化的pod的ip地址还是会失败,正常情况如果k8s做了滚动更新,定时任务是不会失败的。建议配合 执行器地址 配置,如果配置了就无条件执行手动配置的,如果没有配置才读取自动注册。这样就能完美适应k8s环境;
3.1: 如果server和执行器都部署在k8s,那直接手动配置为pod的serviceName,这样server只需要无条件执行就把路由交给了k8s。如果server在物理机,执行器在k8s,那么直接手动配置pod的service的nodeport就行了。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
我想把server搞成依赖引入 便于扩展也是想解决这个问题
搞成依赖就可以自己扩展对接注册中心了 这样只要做AB发布就可以解决这个问题
4.3.1 我帮你把 server 打成一个二方包了,你可以试试。
理论上配置下 PowerJob 的 Bean 扫描 + 注入依赖的配置文件是能启动的。
https://central.sonatype.com/artifact/tech.powerjob/powerjob-server/4.3.1
现在这样直接打的包bean扫描不到,麻烦作者在打包插件上加个<classifier>exec</classifier>
,同时打成普通包和指定classifier为exec的包才能被扫描到。完整配置如下:
<!-- SpringBoot maven plugin -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<configuration>
<mainClass>tech.powerjob.server.PowerJobServerApplication</mainClass>
<classifier>exec</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>build-info</goal>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我这边尝试直接引用,但是无法找到其中的bean
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-server-starter</artifactId>
<version>5.0.1-beta</version>
<classifier>exec</classifier>
</dependency>
为啥后续版本又不这样打包了啊
登录 后才可以发表评论