K8s 部署 Kafka + Java Web 应用

部署 Kafka

参考在 K8s 下部署 Kafka 集群

如果机器内存不大,可适当将 Zookeeper 内存调小。

部署 Java Web 应用

该应用实现的功能,访问 http://localhost:30080/send/{要发送的消息} ,会向 K8s 里的 Kafka 发送一条消息,然后进行消费并获取返回值。

项目打包

Maven 中将项目打成可执行 jar 包:
打包

在项目的 target 文件夹下可以找到生成的 jar 包:
target

创建 Dockerfile 文件

创建如下的文件,用于镜像构建,KafkaDemo.dockerfile:

# 基础镜像,如果本地仓库没有,会从远程仓库拉取
FROM markupglasgow/11-jdk-alpine-mvn

# 容器中创建目录
RUN mkdir -p /usr/local/kafka

# 编译后的 jar 包 copy 到容器中创建的目录内
COPY KafkaDemo-0.0.1-SNAPSHOT.jar /usr/local/kafka/KafkaDemo.jar

# 指定容器启动时要执行的命令
ENTRYPOINT ["java","-jar","/usr/local/kafka/KafkaDemo.jar"]

构建镜像

docker build -f KafkaDemo.dockerfile -t kafka:0.0.1 .

可以使用 docker images 命令查看刚刚构建的镜像,由于我们只在本地使用,不用将镜像推送到 Docker Hub 或私有镜像仓库内。

部署应用

创建命名空间:kubectl create namespace kafka-demo

应用服务:kubectl apply -f kafka-demo-svc.yaml -n kafka-demo

应用部署:kubectl apply -f kafka-demo-deployment.yaml -n kafka-demo

参考

在 K8s 下部署 Kafka 集群

利用 Kubernetes (K8S) 部署 JAVA 项目

posted @ 2021-10-31 17:26  ageovb  阅读(329)  评论(0编辑  收藏  举报