6.3.3 创建示例服务

下载本书所使用的示例代码后,切换到目录traffic-policy/circuitbreaking下可以查看所有相关的代码文件。

启动service1示例应用,这个应用将会作为本任务的后端服务。

图6-5 异常检测原理

表6-8 异常检测的设置

运行以下命令:


kubectl create namespace cb
kubectl label namespace cb istio-injection=enabled
kubectl apply -n cb -f app.yaml

创建一个目标规则,针对service1服务设置熔断器,具体参见代码文件destimationrule.yaml:


kubectl apply -n cb -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: service1
spec:
  host: service1
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 1
      http:
        http1MaxPendingRequests: 1
        maxRequestsPerConnection: 1
    outlierDetection:
      consecutiveErrors: 1
      interval: 1s
      baseEjectionTime: 3m
      maxEjectionPercent: 100
EOF