首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >例如,在金丝雀部署期间,Nginx +入口用于粘性会话。

例如,在金丝雀部署期间,Nginx +入口用于粘性会话。
EN

Stack Overflow用户
提问于 2022-11-11 18:16:13
回答 1查看 22关注 0票数 0

我正在向kubernetes吊舱部署2个服务,它只是回显一个版本号;echo-v1和echo-v2

在echo-v2被认为是金丝雀部署的情况下,我可以演示粘性会话,因为金丝雀重量从0重新配置到100,使用金丝雀和金丝雀重量注释。

使用了两个入口:带有会话cookie注释的回显-v1的第一条路由。第二条路由到带有金丝雀真、金丝雀重量和会话cookie注释的echo-v2。

第二个入口,我可以申请,而不影响那些会话开始于第一个入口和新的会议遵循金丝雀加权,如预期。

不过,我后来了解到,这些注释都是针对nginx社区的,不会使用nginx。

如何使用nginx +的入口(Es)实现相同的目标?

EN

回答 1

Stack Overflow用户

发布于 2022-11-18 10:41:32

这是为我使用Nginx社区和Nginx +的入口配置。

Nginx社区:

(咖啡-v1服务)

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/affinity: "cookie"
  name: ingress-coffee
spec:
  rules:
    - http:
        paths:
          - path: /coffee
            pathType: Exact
            backend:
              service:
                name: coffee-v1
                port:
                  number: 80

(咖啡-v2‘金丝雀’服务)

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-weight: "100"
  name: ingress-coffee-canary
spec:
  rules:
    - http:
        paths:
          - path: /coffee
            pathType: Exact
            backend:
              service:
                name: coffee-v2
                port:
                  number: 80

Nginx +:

(咖啡-v1和咖啡-v2类型为“虚拟服务器”而不是“入口”)

代码语言:javascript
复制
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: cafe
spec:
  host: cloudbees-training.group.net
  tls:
    secret:  cloudbees-trn.aks.group.net-tls
  upstreams:
    - name: coffee-v1
      service: coffee-v1-svc
      port: 80
      sessionCookie:
        enable: true
        name: srv_id_v1
        path: /coffee
        expires: 2h
    - name: coffee-v2
      service: coffee-v2-svc
      port: 80
      sessionCookie:
        enable: true
        name: srv_id_v2
        path: /coffee
        expires: 2h
  routes:
    - path: /coffee
      matches:
        - conditions:
            - cookie: srv_id_v1
              value: ~*
          action:
            pass: coffee-v1
        - conditions:
            - cookie: srv_id_v2
              value: ~*
          action:
            pass: coffee-v2
# 3 options to handle new session below:
#
# 1) All new sessions to v1:
#      action:
#        pass: coffee-v1
#
# 2) All new sessions to v2:
#      action:
#        pass: coffee-v2
#
# 3) Split new sessions by weight
#    Note: 0,100 / 100,0 weightings causes sessions 
#    to drop for the 0 weighted service:
#      splits:
#        - weight: 50
#          action:
#            pass: coffee-v1
#        - weight: 50
#          action:
#            pass: coffee-v2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74406622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档