我有一个在 minikube 集群中运行的简单微服务设置。它受到这个例子的启发。
我的设置包括一个简单的router
微服务,其中包含一个 golang 网络服务器。我现在要测试的是当有多个 Pod 时的负载平衡。但似乎没有任何负载平衡。
微服务的 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 正确部署了两个 pod。的输出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
pod。即使使用不同的浏览器,所有请求最终都会出现在完全相同的 pod 中。
当我删除这个 pod 时,即使有另一个 pod 正在运行,路由器微服务也会有轻微的停机时间。
这种行为可能是什么问题?