gpt4 book ai didi

kubernetes - 使用NEG时删除Pod会导致错误

转载 作者:行者123 更新时间:2023-12-02 12:36:13 24 4
gpt4 key购买 nike

对于本示例,我将在具有2个副本的部署中运行“echoheaders” Nginx。当我删除1个广告连播时,有时会收到约40秒的缓慢响应和错误。

我们正在Kubernetes中运行我们的API网关,并且需要能够允许Kubernetes调度程序处理合适的Pod。

我们最近想引入 session 亲缘关系,为此,我们想迁移到新的 Shiny NEG:网络端点组:
https://cloud.google.com/load-balancing/docs/negs/

使用NEG时,我们在故障转移期间会遇到问题。没有NEG,我们很好。

deployment.yaml


apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: echoheaders
labels:
app: echoheaders
spec:
replicas: 2
selector:
matchLabels:
app: echoheaders
template:
metadata:
labels:
app: echoheaders
spec:
containers:
- image: brndnmtthws/nginx-echo-headers
imagePullPolicy: Always
name: echoheaders
readinessProbe:
httpGet:
path: /
port: 8080
lifecycle:
preStop:
exec:
# Hack: wait for kube-proxy to remove endpoint before exiting, and
# gracefully shut down
command: ["bash", "-c", "sleep 10; nginx -s quit; sleep 40"]
restartPolicy: Always
terminationGracePeriodSeconds: 60

service.yaml
apiVersion: v1kind: Servicemetadata:  name: echoheaders  labels:    app: echoheaders  annotations:    cloud.google.com/neg: '{"ingress": true}'spec:  ports:  - port: 80    protocol: TCP    targetPort: 8080  selector:    app: echoheaders

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.global-static-ip-name: echoheaders-staging
name: echoheaders-staging
spec:
backend:
serviceName: echoheaders
servicePort: 80

删除广告连播时,出现错误,如下图所示
$ httping -G -K 35.190.69.21
( https://i.imgur.com/u14MvHN.png)

这是使用NEG时的新行为。禁用NEG会产生旧的故障转移行为。

有什么方法可以在 pods 删除过程中使用Google LB,Ingress,NEG和Kubernetes而不会出现错误?

最佳答案

在GCP负载平衡器中,只有在随后的两个后端均未满足响应超时或发生有影响的错误(似乎更合理)之后,才会为502请求GET请求。

可能发生的情况可能是一个过渡时期,其中Pod即将终止并已收到其SIGTERM,但负载平衡器仍认为Pod运行正常,并已发送请求。由于这段时间太短,因此无法完成请求并关闭连接。

机器中适当的服务停止[1]使接收到SIGTERM后,您的服务将继续满足飞行中的请求,但拒绝新的连接。这可以解决您的问题,但请记住,不能保证零停机时间。

[1] https://landing.google.com/sre/sre-book/chapters/load-balancing-datacenter/#robust_approach_lame_duck

关于kubernetes - 使用NEG时删除Pod会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com