尽管这篇文章讨论了Spring Boot应用程序,但所讨论的概念适用于任何微服务应用程序。
您想知道如何在Kubernetes上部署微服务吗?Kubernetes是运行微服务应用程序最流行的选择?
让我们开始:
什么是Kubernetes?
Kubernetes允许我们在公共、私有或混合云基础设施中部署容器化微服务应用程序。Kubernetes是一个开源容器编排平台。Kubernetes的一些重要特征是:
- 自动展开和回滚
- 服务发现
- 自愈
- 水平缩放
什么是容器?
容器是将代码及其所有依赖项打包在一个标准单元中的可执行文件。因此,容器化应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。Kubernetes上支持的一些容器运行时是Docker、containerd和CRI-O。
在本文中,我将使用Docker作为容器运行时。您可以在官方文档中查看有关安装Docker的说明。
为微服务创建容器
假设已安装Docker,下一步是构建容器映像。为此,我们将使用 Dockerfile
。
Docker文件是一个文本文件,包含为Docker容器设置环境的说明。Docker可以通过读取Docker文件中的说明自动生成图像。
例如,product catalog microservice的 Dockerfile
是:
FROM openjdk:11-jre-slim RUN mkdir /app WORKDIR /app ADD ./build/libs/product-catalog-svc-0.0.1.jar /app/app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]
FROM RUN WORKDIR ADD EXPOSE ENTRYPOINT
要从Dockerfile构建容器映像,我们需要遵循以下步骤。
1. 创建Spring Boot jar
要构建SpringBoot jar,请从根目录product catalog svc运行命令 gradlew clean build
。此命令将所有类和依赖项打包到一个jar中。这是由Spring Boot的Gradle插件实现的,该插件定义为:
plugins { id 'org.springframework.boot' version '2.5.3' }
要进行验证,请从根目录product catalog svc运行命令 java-jar build/libs/product-catalog-svc-0.0.1.jar
。这将在端口8080上启动产品目录microservice。您可以在Postman中测试API。
2. 创建Docker镜像
要创建docker镜像,请运行命令 docker build-tproduct-catalog:1.0.0 from product-catalog-svc
目录中的1.0.0。此命令创建标记为1.0.0的Docker image产品目录。您可以通过运行命令 docker image ls
来验证映像是否已成功创建。这显示了如下输出:
REPOSITORY TAG IMAGE ID CREATED SIZE product-catalog 1.0.0 1b3edac07100 9 minutes ago 261MB
或者,如果要验证映像是否可以成功运行,请运行命令 docker run-p 8080:8080 product catalog:1.0.0
。您应该看到一个SpringBoot应用程序正在启动。如果您愿意,您可以通过连接到 localhost:8080
通过Postman进行测试。
3. 将Docker容器发布到Docker Hub
容器注册表(如Docker Hub)允许您与其他人共享容器镜像。首先,您需要在Do