实现原理: 通过一个service选择标签版本号实现蓝绿不同版本的切换并结合ingress暴露服务。
一、1.0版(蓝)
blue.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: web-1.0
spec:
replicas: 3
#selector:
# matchLabels:
# run: web-1.0
template:
metadata:
labels:
name: web
version: "1.0"
spec:
containers:
- name: web-1.0
image: 192.168.20.17/www/www:1.0
imagePullPolicy: IfNotPresent
name: http
ports:
- containerPort: 80
二、2.0版(绿)
green.yaml
apiVersion: apps/v1beta1 kind: Deployment metadata: name: web-2.0 spec: replicas: 3 template: metadata: labels: name: web version: "2.0" spec: containers: - name: web image: 192.168.20.17/www/www:2.0 imagePullPolicy: IfNotPresent name: http ports: - containerPort: 80
三、service配置(标签选择器)
service.yaml
apiVersion: v1 kind: Service metadata: name: web namespace: default spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: name: web version: "2.0"
四、rahcer为服务配置代理
