У меня есть простая настройка микросервиса, работающая в кластере мини-кубов.Он вдохновлен этим примером. Моя установка включает в себя простой router
микросервис, который содержит веб-сервер golang.Теперь я хочу проверить балансировку нагрузки при наличии более одного модуля.Но, похоже, балансировка нагрузки отсутствует.
Файл kubernetes для микросервисов выглядит следующим образом:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: router
labels:
app: router
tier: router
spec:
replicas: 2
strategy: {}
template:
metadata:
labels:
app: router
tier: router
spec:
containers:
- image: {myregistry}/router
name: router
resources: {}
ports:
- name: target-port
containerPort: 8082
env:
- name: PORT
value: "8082"
status: {}
---
apiVersion: v1
kind: Service
metadata:
name: router
labels:
app: router
tier: router
spec:
type: LoadBalancer
selector:
app: router
tier: router
ports:
- port: 8082
name: http
targetPort: target-port
Конфигурация skaffold выглядит следующим образом:
apiVersion: skaffold/v1beta2
kind: Config
build:
artifacts:
- image: {myregistry}/router
context: src/router/bin
tagPolicy:
gitCommit: {}
local:
push: false
deploy:
kubectl:
manifests:
- ./kubernetes/**.yaml
Kubernetes правильно развертывает две капсулы.Вывод kubectl get pods
выглядит следующим образом:
NAME READY STATUS RESTARTS AGE
router-7f75f6f9df-c8mgp 1/1 Running 0 14m
router-7f75f6f9df-k248m 1/1 Running 0 14m
Из вывода журнала skaffold dev
я вижу, что каждый запрос направляется в модуль router-7f75f6f9df-c8mgp
.Даже в разных браузерах все запросы заканчиваются на одном и том же модуле.
Когда я удаляю этот модуль, у микросервиса маршрутизатора даже происходит небольшое время простоя, даже если работает другой модуль.
В чем может быть проблема этого поведения?