Я создал очень простое приложение для весенней загрузки только с одной службой REST. Это приложение преобразуется в образ докера (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-запросы перенаправляются только на один модуль.
while true ; do curl http://localhost:40002/docker-java-app/test ;done
Я не понимаю, где именно я делаю это неправильно. Любая помощь будет оценена по достоинству. Спасибо.