首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes侵入-负载均衡器流量分割

Kubernetes侵入-负载均衡器流量分割
EN

Stack Overflow用户
提问于 2021-01-19 16:20:27
回答 1查看 1.9K关注 0票数 1

我有一个nginx类的kubernetes入口和两个负载平衡器。在GKE v1.17上运行。

样本入口yaml:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    kubernetes.io/ingress.class: "nginx"
    # Enable client certificate authentication
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
    # Create the secret containing the trusted ca certificates
    nginx.ingress.kubernetes.io/auth-tls-secret: "production/client-cert-secret"
    # Specify the verification depth in the client certificates chain
    nginx.ingress.kubernetes.io/auth-tls-verify-depth: "1"
    # Automatically redirect http to https
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    # Use regex in paths
    nginx.ingress.kubernetes.io/use-regex: "true"
    # Allow larger request body
    nginx.ingress.kubernetes.io/proxy-body-size: 30m
    # For notifications we add the proxy headers
    nginx.ingress.kubernetes.io/configuration-snippet: |  
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
spec:
  tls:
    - hosts:
      - my-domain.com
      secretName: my-tls-certificate
  rules:
  - host: my-domain.com
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: load-balancer-1
          servicePort: 443

我想把到达入口的交通分给两个负载平衡器。例如:

load-balancer-1将接收90%的流量

load-balancer-2将接收10%的流量

,我怎么能用库伯奈特的入口做这件事呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 20:08:38

nginx入口控制器支持通过加那利注解进行金丝雀部署。

在某些情况下,您可能希望通过向与生产服务不同的服务发送少量请求来“金丝雀”一组新的更改。金丝雀注释使Ingress规范能够作为请求路由到的替代服务,这取决于所应用的规则。在设置nginx.ingress.kubernetes.io/canary: "true"之后,可以启用以下配置金丝雀的注释:

  • nginx.ingress.kubernetes.io/canary-weight:基于整数的(0-100)随机请求的百分比,应该被路由到金丝雀入侵中指定的服务。权重为0意味着不会根据金丝雀规则向金丝雀入口的服务处发送任何请求。100的权重意味着所有的请求都将发送给大会中指定的替代服务。

注意,当您将入口标记为金丝雀时,除nginx.inress.kubernetes.io/load-balance和nginx.inress.kubernetes.io/上游-散列之外,所有其他非金丝雀注释都将被忽略(从相应的主入口继承)。

已知限制

目前,每个入侵规则最多可以应用一条金丝雀入口。

换句话说,您可以引入一个新的Ingress对象my-ingress-canary,在这里您可以设置注释

  • nginx.ingress.kubernetes.io/canary: "true" (告诉Nginx将此入口标记为“金丝雀”,并通过匹配主机和路径将该入口与主入口关联。
  • nginx.ingress.kubernetes.io/canary-weight: "10" (从10%流量到负载均衡器-2)
代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress-canary
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-weight: "10"
spec:
  rules:
  - host: my-domain.com
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: load-balancer-2
          servicePort: 443
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65795438

复制
相关文章

相似问题

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