Kubernetes环境下如何配置Traefik粘性会话
配置迁移方案
你只需要给已有的myapp Service添加对应Traefik注解即可完成粘性会话配置的迁移,不需要修改现有Ingress规则。
步骤1:修改Service配置
在你的myapp Service的metadata.annotations字段中新增以下3条配置:
traefik.ingress.kubernetes.io/service.sticky.cookie: "true" traefik.ingress.kubernetes.io/service.sticky.cookie.name: "StickyCookieMyApp" traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true"
完整Service示例
apiVersion: v1 kind: Service metadata: name: myapp annotations: # 粘性会话配置 traefik.ingress.kubernetes.io/service.sticky.cookie: "true" traefik.ingress.kubernetes.io/service.sticky.cookie.name: "StickyCookieMyApp" traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true" spec: selector: app: myapp # 替换为你实际的Pod匹配标签 ports: - port: 8080 targetPort: 8080 # 替换为你实际的容器服务端口
可选方案:使用Traefik自定义资源配置
如果你使用Traefik原生的TraefikService和IngressRoute CRD管理路由,也可以直接在TraefikService中配置粘性会话:
apiVersion: traefik.containo.us/v1alpha1 kind: TraefikService metadata: name: myapp-sticky-service spec: weighted: services: - name: myapp port: 8080 sticky: cookie: name: StickyCookieMyApp secure: true
配置完成后在IngressRoute的后端规则中引用该TraefikService即可生效。
内容的提问来源于stack exchange,提问作者Flavio Oliva
相关产品推荐
相关产品推荐

