gpt4 book ai didi

kubernetes - Kubernetes中的公开服务和副本集关系

转载 作者:行者123 更新时间:2023-12-02 11:57:09 26 4
gpt4 key购买 nike

我有一个问题,当有多个Pod副本时,kubernetes如何决定服务Pod。

例如,假设我有一个在k8s集群上运行的Web应用程序,它是多个Pod副本,它们由服务公开。

当客户端发送请求时,它将转到服务和kube-proxy。但是kubernetes会在何时何地决定应为哪个Pod服务请求?

我想知道这个问题的kubernetes内部。我们可以控制吗?我们能否根据客户的要求和自定义条件决定应使用哪个 pods ?

最佳答案

can we decide which pod should serve based on client requests and custom conditions?



由于kube-proxy适用于 L4 负载平衡内容,因此您可以基于 客户端IP 来控制 session 。它不读取客户端请求的 header 。

您可以使用 服务对象中的以下字段 service.spec.sessionAffinityConfig 控制 session

以下命令提供说明 kubectl explain service.spec.sessionAffinityConfig
以下段落和链接提供了详细的答案。

Client-IP based session affinity can be selected by setting service.spec.sessionAffinity to “ClientIP” (the default is “None”), and you can set the max session sticky time by setting the field service.spec.sessionAffinityConfig.clientIP.timeoutSeconds if you have already set service.spec.sessionAffinity to “ClientIP” (the default is “10800”)-service-proxies



服务对象是这样的
kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10000

关于kubernetes - Kubernetes中的公开服务和副本集关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144216/

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