加速云原生的 Java 开发
今天来说说日常在Kubernetes开发Java项目遇到的问题.
当我们新建一个项目的时候, 总是面临需要新建manifest, 平时都是copy+paste+modify. 能否以变成的方式来生成?
开发时的步骤也比较繁琐: docker build, docker push, kubectl apple, kubectl delete pod. 对于一个Java应用来说还多了一步编译. 操作一次还ok, 但是一天十几次总会有想吐的感觉. 这些步骤能否简化成一个命令, 甚至修改了代码自动就完成上面一系列的操作?
实现这些我们需要几个工具: dekorate, Jib, Skaffold. 其中Jib也在上一篇文章使用Jib为Java应用构建镜像中介绍过.
dekorate
Dekorate is a collection of Java compile-time generators and decorators for Kubernetes/OpenShift manifests. Dekorate是Java编译时生成和装饰Kubernetes/OpenShift的manifests的工具
快速开始
1. 通过使用Spring Initializer生成一个项目(Spring Boot 2.2.2), 并加入依赖:
<dependency>
<groupId>io.dekorate</groupId>
<artifactId>kubernetes-spring-starter</artifactId>
<version>0.10.0</version>
</dependency>
2. 加入一个简单的Controller:
/**
* @author Addo.Zhang
* @date 2019/12/22
*/
@RestController
public class DekorateExampleController {
@GetMapping
public String hi() {
return "Hello World";
}
}
3. 执行命令mvn clean install, 然后在target/classes/META-INF/dekorate目录下可以找到kubernetes.json和kubernetes.yml两个文件.
kubernetes.yml的内容:

