【发布时间】:2021-10-21 12:19:38
【问题描述】:
假设我有一个映射到具有 2 个容器的 pod 的服务,1 个公开端口 8080,另一个公开端口 8081。该服务公开两个端口。入口使用 nginx-ingress,并具有基于 cookie 的会话亲和性注释。它有2个路径,1个是/映射到8080端口,另一个是/static映射到同一个服务的8081端口。无论路径是/ 还是/static,会话亲和性是否会以这样一种方式工作,即来自同一个客户端的所有请求都将发送到同一个 pod?
以下是完整配置:
入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
spec:
rules:
- host: test.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: test-service
port:
number: 8080
- path: /static
pathType: Prefix
backend:
service:
name: test-service
port:
number: 8081
服务
apiVersion: v1
kind: Service
metadata:
name: test-service
spec:
type: ClusterIP
selector:
app: test-pod
ports:
- name: container1
port: 8080
targetPort: 8080
- name: container2
port: 8081
targetPort: 8081
部署
apiVersion: apps/v1
kind: Deployment
...
spec:
...
template:
metadata:
labels:
app: test-pod
spec:
containers:
- name: container1
image: ...
ports:
- containerPort: 8080
- name: container2
image: ...
ports:
- containerPort: 8081
【问题讨论】:
标签: kubernetes kubernetes-ingress nginx-ingress