前提: K8S集群已经搭建完成,可参考:

K8S集群搭建

部署步骤

1. 编写一个简单的SpringBoot项目,包含一个Controller接口用于测试

  1. @RestController
  2. public class TestController {
  3. @GetMapping("/test")
  4. public String flowLimitTest() {
  5. return "testFlowLimit";
  6. }
  7. }

2. 修改pom文件,添加build标签中的内容

添加maven打包的配置及docker打包的配置

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. <version>${spring.boot.version}</version>
  7. <configuration>
  8. <!-- 指定该Main Class为全局的唯一入口 -->
  9. <mainClass>cn.spectrumrpc.sentinelgateway.MicroServiceMainApplication</mainClass>
  10. </configuration>
  11. <executions>
  12. <execution>
  13. <goals>
  14. <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
  15. </goals>
  16. </execution>
  17. </executions>
  18. </plugin>
  19. <plugin>
  20. <groupId>com.spotify</groupId>
  21. <artifactId>docker-maven-plugin</artifactId>
  22. <version>0.4.14</version>
  23. <configuration>
  24. <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
  25. <!--指定docker镜像的版本号-->
  26. <imageTags>
  27. <!--使用maven项目的版本号-->
  28. <imageTag>${project.version}</imageTag>
  29. </imageTags>
  30. <!-- Dockerfile文件存放的位置 -->
  31. <dockerDirectory>src/docker</dockerDirectory>
  32. <resources>
  33. <resource>
  34. <targetPath>/</targetPath>
  35. <directory>${project.build.directory}</directory>
  36. <include>${project.build.finalName}.jar</include>
  37. </resource>
  38. </resources>
  39. </configuration>
  40. </plugin>
  41. </plugins>
  42. </build>

3. 编写Dockerfile

在src下创建docker文件夹,在docker文件夹下创建Dockerfile文件

  1. FROM java:8
  2. ADD micro-service-1.0-SNAPSHOT.jar /app.jar
  3. EXPOSE 8401
  4. ENTRYPOINT ["java","-jar","/app.jar"]

4. 将项目源码上传到有Docker(且有maven)环境的机器上

切换至项目所在目录,执行如下命令

  1. mvn package docker:build

执行结束之后,通过docker images 命令,查询是否有镜像

查询结果如下
  1. ifan@ifan-PC:~$ docker images;
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. spectrumrpc/micro-service 1.0-SNAPSHOT 24bf256ba49d 28 minutes ago 684MB
  4. spectrumrpc/micro-service latest 24bf256ba49d 28 minutes ago 684MB

5. 将镜像上传至镜像仓库

  1. docker tag 24bf256ba49d registry.cn-hangzhou.aliyuncs.com/spectrumrpc/spectrumrpc:1.0
  2. docker push registry.cn-hangzhou.aliyuncs.com/spectrumrpc/spectrumrpc:1.0

在阿里云的容器镜像服务控制台中,可以查看到对应的版本

image.png

6. 使用Kuboard管理控制台,运行微服务

6.1 创建Namespace

点击创建

image.png

输入对应的名称

image.png

6.2 点击进入NameSpace,选择Deployments

image.png

创建Deployment,填写基本信息

image.png
image.png

创建Docker仓库对应的用户名密码(输入对应的阿里云仓库地址及账户密码)

image.png

然后选择添加,选择刚刚创建的凭证,输入镜像地址

image.png

配置对应的服务端口及容器端口

image.png

6.3 最终,填写完毕之后,点击保存,点击Apply

6.4. 可以看到所分配的端口,以及节点的运行情况

image.png

7. 最后,访问对应的Node Port,查看服务是否可行

测试到有输出,即服务搭建成功,此微服务已经跑在了集群上面

image.png