默认就是轮循,如果要其它hash或是最少请求,那就需要作更多的设置了。
https://www.getambassador.io/reference/core/load-balancer/#source-ip
默认是用的Kubernetes services这个resolver,如果要使用高级的LB功能,就需要使用
the Kubernetes Endpoint Resolver or Consul Resolver。
针对mapping的配置如下:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
spec:
replicas: 3
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: harbor.xxx.cn/base/middleware/nginx:1.13-alpine
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: KubernetesEndpointResolver
name: my_endpoint
---
apiVersion: ambassador/v1
kind: Mapping
name: ngnix_mapping
prefix: /
service: nginx-service:80
resolver: my_endpoint
load_balancer:
policy: round_robin
# source_ip: true
spec:
ports:
- name: nginx
port: 80
targetPort: 80
protocol: TCP
selector:
name: nginx