部署应用程序的多个版本,同时管理流量和安全,可能会让人感到不知所措。在本指南中,我们将分解一个实际示例,使用Kubernetes Deployments、Istio VirtualServices和mTLS来创建一个健壮且可感知版本的微服务架构。让我们开始吧!
步骤 1:部署多版本应用程序
我们将从部署一个简单应用程序的两个版本开始:Nginx(v1)和Apache(v2)。
Nginx 部署(v1)
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-v1 # 此部署的唯一名称
spec:
replicas: 1 # 运行此应用的 1 个实例 (pod)
selector:
matchLabels:
app: myapp # 将 pods 分组到“myapp”标签下
version: v1 # 将其区分为“v1”
template:
metadata:
tags:
app: myapp # 应用于此部署中的所有 pod
version: v1 # 特定于版本的标签
spec:
containers:
- name: nginx
image: nginx:alpine
# 覆盖默认命令以自定义主页:
command: