You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
New to Voyager? Please start here.
Blue Green Deployments
Voayger supports Blue Green deployments using weighted loadbalancing for backend pods. Following example illustrates a weighted loadbalance scenario.
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: deployment
app-version: v1
name: deployment-1
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: deployment
app-version: v1
template:
metadata:
labels:
app: deployment
app-version: v1
annotations:
ingress.appscode.com/backend-weight: "90"
spec:
containers:
- env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
image: appscode/test-server:1.1
imagePullPolicy: IfNotPresent
name: server
ports:
- containerPort: 8080
name: http-1
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: deployment
app-version: v2
name: deployment-2
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: deployment
app-version: v2
template:
metadata:
labels:
app: deployment
app-version: v2
annotations:
ingress.appscode.com/backend-weight: "10"
spec:
containers:
- env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
image: appscode/test-server:1.1
imagePullPolicy: IfNotPresent
name: server
ports:
- containerPort: 8080
name: http-1
protocol: TCP
Two different workload with the annotation ingress.appscode.com/backend-weight
and one single service pointing to them
apiVersion: v1
kind: Service
metadata:
name: deployment-svc
namespace: default
spec:
ports:
- name: http-1
port: 80
protocol: TCP
targetPort: 8080
selector:
app: deployment
The following ingress will forward 90% traffic to deployment-1
and 10% to deployment-2
apiVersion: voyager.appscode.com/v1
kind: Ingress
metadata:
name: test-ing
namespace: default
spec:
rules:
- http:
paths:
- backend:
service:
name: deployment-svc
port:
number: 80
path: /testpath
The default weight is 1, and the maximal value is 256. A value of 0 means the server will not participate in load-balancing but will still accept persistent connections.