这是一个非常基本的Spring Boot应用程序,它将浮点值存储在Redis键/值存储中。要使用HttpIE添加值(应用程序在端口8080上运行):
~ $ http -f post localhost:8080/value/foo?value=10 |
读取一个值:
~ $ http localhost:8080/value/foo |
这个应用包括Spring Actuator端点,这对后面K8s部署很重要:
~ $ http localhost:8080/actuator/health |
如果应用无法访问Redis,status将显示为DOWN。
在docker-compose中运行
构建应用程序jarfile:
mvn clean package
docker-compose.yaml的内容:
version: '3' |
开启两个服务,Web和Redis, Web编译本地的Dockerfile:
FROM openjdk:8-jdk-alpine |
Redis是直接下载redis的alpine镜像,端口在6379
运行命令:
docker-compose build |
只是docker-compose up应该工作,但它不会在所有情况下重建应用程序容器。该应用程序将公开在端口9999上。
需要注意的一点是,keyvalue服务中的前端端口对于组合工作不是必需的; 无论如何,端口将暴露在内部网络上。但转发它意味着您可以使用本地连接redis-cli 来解决问题。
在Kubernetes上运行
kubectl apply -f kubernetes/ |
Kubernetes部署使用Spring Actuator /health端点作为准备探测器,一旦建立与Redis的连接并且状态变为UP(参见上文),该pod将变为就绪状态。
要获取在Minikube上访问的URL:
url=$(minikube service kubebootsvc --url) |
Kubernetes部署创建了pod的2个副本,代码添加了一个自定义标头 X-Pod-IP,其中包含为您的请求提供服务的pod的内部IP(因此您可以看到正在执行的负载平衡):
http $url/value/foo |
本站文章点击标题查看原文Github项目!