Kong系列-07-负载均衡

Kong提供了两种负载均衡方案:

  • 基于DNS的负载均衡

当使用基于DNS的负载均衡时,上游服务的注册是在Kong之外完成,而Kong只接收来自DNS服务器的负载均衡域名解析。使用包含主机名(而不是IP地址)URL定义的每个API将自动使用基于DNS的负载均衡。

  • Ring-Balancer环形均衡器

使用环形均衡器时,上游服务的添加和删除将由Kong处理,不需要进行DNS域名解析(当然如果target配置为域名也需要解析域名,但不需要DNS实现负载均衡)。Kong将扮演服务注册中心的角色。使用upstream和target配置服务。

  1. 加权循环算法:默认情况下环形均衡器将使用加权循环的方案。
  2. 散列算法:以none、consumer、IP或者header为输入的散列算法。none就是加权循环算法。

负载均衡应用

  • 蓝绿部署Blue-Green Deployments

Blue-Green Deployments

可以通过通过定义蓝upstream和绿upstream。然后通过更新Kong Service,切换host对应的upstrean来达到蓝绿的快速切换。

  • 金丝雀发布Canary Releases

Canary Releases

直接使用环形均衡器,通过调整target的权重,允许一个平滑和可控的金丝雀环境。

下面验证一下Ring-Balancer环形均衡器。先创建两个echo服务,为了验证负载均衡,两个echo服务的名称定为echo-v1和echo-v2,其port分别为8080和8081。

vi echo-v1-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: echo-v1
  name: echo-v1
spec:
  ports:
  - port: 8080
    name: http
    protocol: TCP
    targetPort: 8080
  selector:
    app: echo-v1
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: echo-v1
  name: echo-v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo-v1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: echo-v1
    spec:
      containers:
      - image: e2eteam/echoserver:2.2
        name: echo-v1
        ports:
        - containerPort: 8080
        env:
          - name: NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
          - name: POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          - name: POD_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
        resources: {}

vi echo-v2-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: echo-v2
  name: echo-v2
spec:
  ports:
  - port: 8081
    name: http
    protocol: TCP
    targetPort: 8080
  selector:
    app: echo-v2
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: echo-v2
  name: echo-v2
spec:
  re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值