最新文章

加速云原生的 Java 开发

加速云原生的 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.jsonkubernetes.yml两个文件.

kubernetes.yml的内容: