使用 Dekorate 项目,您无需手动创建任何 Kubernetes YAML 清单。
首先,您需要包含io.dekorate:kubernetes-spring-starter依赖项。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.7.RELEASE</version> </parent>
<properties> <java.version>11</java.version> </properties>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.dekorate</groupId> <artifactId>kubernetes-spring-starter</artifactId> <version>0.12.2</version> </dependency> <dependency> <groupId>io.dekorate</groupId> <artifactId>kubernetes-annotations</artifactId> <version>0.12.2</version> </dependency> </dependencies>
|
然后您可以使用注释,例如@KubernetesApplication将一些新参数添加到生成的 YAML 清单中或覆盖默认值。
@SpringBootApplication @KubernetesApplication(replicas = 2, envVars = { @Env(name = "propertyEnv", value = "Hello from env!" ), @Env(name = "propertyFromMap", value = "property1", configmap = "sample-configmap" ) }, expose = true, ports = @Port(name = "http", containerPort = 8080), labels = @Label(key = "version", value = "v1") ) @JvmOptions(server = true, xmx = 256, gc = GarbageCollector.SerialGC) public class TipsApp {
public static void main(String[] args) { SpringApplication.run(TipsApp.class, args); }
}
|
之后,你需要在Maven构建命令中把dekorate.build和dekorate.deploy参数设置为true。
mvn clean install -Ddekorate.build = true
mvn clean install -Ddekorate.deploy=true
|
它会自动生成清单,并在Kubernetes上部署Spring Boot应用程序。