安装 istio
https://istio.io/docs/setup/getting-started/#download
DestinationRule
在某些时候,你希望将应用更新为新版本。 也许你想分割两个版本之间的流量。你需要创建一个DestinationRule来定义是哪些版本,
在Istio中称为subset。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: details
spec:
host: details
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
设置服务熔断
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: details
spec:
host: details
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
http2MaxRequests: 1000
maxRequestsPerConnection: 10
outlierDetection:
consecutiveErrors: 7
interval: 5m
baseEjectionTime: 15m
maxEjectionPercent: 100
熔断设置说明:
1.TCP 和HTTP 连接池大小被设置为100和10;
2.允许出错7次;
3.每5分做一次请求计数;
4.可以从负载均衡池中移除100% 的Pod;
5.发生故障的Pod 最少在被移除15分钟后才能再次加入负载均衡池
Gateway
我们需要为服务网格启用HTTP/HTTPS流量。 为此,我们需要创建一个网关。 Gateway描述了在边缘运行的负载均衡,
用于接收传入或传出的HTTP/TCP连接
VirtualService
VirtualService实际上将Kubernetes服务连接到Istio网关。