【发布时间】:2021-03-03 15:38:11
【问题描述】:
我创建了一个非常简单的 Spring Boot 应用程序,只有一个 REST 服务。此应用程序被转换为 docker 镜像(“springdockerimage:1”)并部署在 Kubernetes 集群中,具有 3 个副本。我的“部署”定义内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: springapp
labels:
app: distributiondemo
spec:
selector:
matchLabels:
app: distributiondemo
replicas: 3
template:
metadata:
labels:
app: distributiondemo
spec:
containers:
- name: spring-container
image: springdockerimage:1
我为上述部署创建了如下服务:
apiVersion: v1
kind: Service
metadata:
name: springservice
labels:
app: distributiondemo
spec:
selector:
app: distributiondemo
ports:
- port: 8080
protocol: TCP
targetPort: 8080
name: spring-port
nodePort: 32000
type: NodePort
在部署上述两个 YAML(部署和服务)文件后,我注意到一切都已按预期部署,即创建了 3 个副本,并且我的服务也有 3 个端点。下面的截图是相同的证明:
由于我使用 minikube 进行本地测试,因此我将端口转发并以 kubectl port-forward deployment.apps/springapp 40002:8080 访问应用程序。
但我注意到的一件事是我所有的 HTTP 请求都被重定向到一个 pod。
while true ; do curl http://localhost:40002/docker-java-app/test ;done
我没有找到我做错的地方。任何帮助,将不胜感激。谢谢。
【问题讨论】:
标签: kubernetes load-balancing minikube kubernetes-pod kube-proxy