前提: K8S集群已经搭建完成,可参考:
K8S集群搭建
部署步骤
1. 编写一个简单的SpringBoot项目,包含一个Controller接口用于测试
@RestController
public class TestController {
@GetMapping("/test")
public String flowLimitTest() {
return "testFlowLimit";
}
}
2. 修改pom文件,添加build标签中的内容
添加maven打包的配置及docker打包的配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>cn.spectrumrpc.sentinelgateway.MicroServiceMainApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.14</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--指定docker镜像的版本号-->
<imageTags>
<!--使用maven项目的版本号-->
<imageTag>${project.version}</imageTag>
</imageTags>
<!-- Dockerfile文件存放的位置 -->
<dockerDirectory>src/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
3. 编写Dockerfile
在src下创建docker文件夹,在docker文件夹下创建Dockerfile文件
FROM java:8
ADD micro-service-1.0-SNAPSHOT.jar /app.jar
EXPOSE 8401
ENTRYPOINT ["java","-jar","/app.jar"]
4. 将项目源码上传到有Docker(且有maven)环境的机器上
切换至项目所在目录,执行如下命令
mvn package docker:build
执行结束之后,通过docker images 命令,查询是否有镜像
查询结果如下
ifan@ifan-PC:~$ docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
spectrumrpc/micro-service 1.0-SNAPSHOT 24bf256ba49d 28 minutes ago 684MB
spectrumrpc/micro-service latest 24bf256ba49d 28 minutes ago 684MB
5. 将镜像上传至镜像仓库
docker tag 24bf256ba49d registry.cn-hangzhou.aliyuncs.com/spectrumrpc/spectrumrpc:1.0
docker push registry.cn-hangzhou.aliyuncs.com/spectrumrpc/spectrumrpc:1.0
在阿里云的容器镜像服务控制台中,可以查看到对应的版本
6. 使用Kuboard管理控制台,运行微服务
6.1 创建Namespace
点击创建
输入对应的名称
6.2 点击进入NameSpace,选择Deployments
创建Deployment,填写基本信息

创建Docker仓库对应的用户名密码(输入对应的阿里云仓库地址及账户密码)
然后选择添加,选择刚刚创建的凭证,输入镜像地址
配置对应的服务端口及容器端口
6.3 最终,填写完毕之后,点击保存,点击Apply
6.4. 可以看到所分配的端口,以及节点的运行情况

7. 最后,访问对应的Node Port,查看服务是否可行
测试到有输出,即服务搭建成功,此微服务已经跑在了集群上面
