183 lines
3.1 KiB
Markdown
183 lines
3.1 KiB
Markdown
|
**Gateway配置**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: Gateway
|
|||
|
metadata:
|
|||
|
name: bookinfo-gateway
|
|||
|
spec:
|
|||
|
selector:
|
|||
|
istio: ingressgateway # 使用默认的istio ingress gateway
|
|||
|
servers:
|
|||
|
- port:
|
|||
|
number: 80
|
|||
|
name: http
|
|||
|
protocol: HTTP
|
|||
|
hosts:
|
|||
|
- "bookinfo.kubeasy.com" # 发布域名
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**配置VirtualService**
|
|||
|
|
|||
|
```
|
|||
|
---
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: bookinfo
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- "*"
|
|||
|
gateways:
|
|||
|
- bookinfo-gateway
|
|||
|
http:
|
|||
|
- match:
|
|||
|
- uri:
|
|||
|
exact: /productpage
|
|||
|
- uri:
|
|||
|
prefix: /static
|
|||
|
- uri:
|
|||
|
exact: /login
|
|||
|
- uri:
|
|||
|
exact: /logout
|
|||
|
- uri:
|
|||
|
prefix: /api/v1/products
|
|||
|
route:
|
|||
|
- destination:
|
|||
|
host: productpage
|
|||
|
port:
|
|||
|
number: 9080
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim reviews-dr.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: DestinationRule
|
|||
|
metadata:
|
|||
|
name: reviews
|
|||
|
spec:
|
|||
|
host: reviews
|
|||
|
subsets:
|
|||
|
- name: v1
|
|||
|
labels:
|
|||
|
version: v1 # subset v1指向具有version=v1的Pod
|
|||
|
- name: v2
|
|||
|
labels:
|
|||
|
version: v2 # subset v2指向具有version=v2的Pod
|
|||
|
- name: v3
|
|||
|
labels:
|
|||
|
version: v3 # subset v3指向具有version=v3的Pod
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim reviews-v1-all.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: reviews
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- reviews
|
|||
|
http:
|
|||
|
- route:
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v1 # 将流量指向v1
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim reviews-20v2-80v1.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: reviews
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- reviews
|
|||
|
http:
|
|||
|
- route:
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v1 # 将80%流量指向v1
|
|||
|
weight: 80 # 只需要配置一个weight参数即可
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v2 # 将20%流量指向v2
|
|||
|
weight: 20
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim reviews-v2-all.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: reviews
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- reviews
|
|||
|
http:
|
|||
|
- route:
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v2 # 指向v2
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**cat reviews-jasonv3.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: reviews
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- reviews
|
|||
|
http:
|
|||
|
- match:
|
|||
|
- headers: # 匹配请求头
|
|||
|
end-user: # 匹配请求头的key为end-user
|
|||
|
exact: jason # value为jason
|
|||
|
route:
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v3 # 匹配到end-user=jason路由至v3版本
|
|||
|
- route:
|
|||
|
- destination:
|
|||
|
host: reviews
|
|||
|
subset: v2 # 其余的路由至v2版本
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim details-delay.yaml**
|
|||
|
|
|||
|
```
|
|||
|
apiVersion: networking.istio.io/v1alpha3
|
|||
|
kind: VirtualService
|
|||
|
metadata:
|
|||
|
name: details
|
|||
|
spec:
|
|||
|
hosts:
|
|||
|
- details
|
|||
|
http:
|
|||
|
- fault: # 添加一个错误
|
|||
|
delay: # 添加类型为delay的故障
|
|||
|
percentage: # 故障注入的百分比
|
|||
|
value: 100 # 对所有请求注入故障
|
|||
|
fixedDelay: 5s # 注入的延迟时间
|
|||
|
route:
|
|||
|
- destination:
|
|||
|
host: details
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
**vim details-abort.yaml**
|