赞
踩
《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.12环境中验证
在VirtualService中可以对HTTP请求注入模拟的故障,从而实现混沌测试。这是通过在VirtualService中设置HTTPFaultInjection的delay和abort属性实现的。
下面以recommendation微服务为例实现delay和abort混沌测试。需要按照《OpenShift 4 之Istio-Tutorial (6) 服务恢复能力》的“环境准备”部署recommendation v1和recommendation 2,并且删除所有针对recommendation的VirtualService和DestinationRule。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: recommendation
spec:
host: recommendation
subsets:
- labels:
app: recommendation
name: app-recommendation
$ oc apply -f istiofiles/destination-rule-recommendation.yml -n ${ISTIO_APP}
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: recommendation spec: hosts: - recommendation http: - fault: delay: fixedDelay: 7.000s percent: 50 route: - destination: host: recommendation subset: app-recommendation
$ oc apply -f istiofiles/virtual-service-recommendation-delay.yml -n ${ISTIO_APP}
$ INGRESS_GATEWAY=$(oc get route istio-ingressgateway -n ${ISTIO_SYSTEM} -o 'jsonpath={.spec.host}')
$ ./scripts/run.sh $INGRESS_GATEWAY/customer
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: recommendation spec: hosts: - recommendation http: - fault: abort: httpStatus: 503 percentage: value: 100 route: - destination: host: recommendation subset: version-v1 - route: - destination: host: recommendation subset: version-v1 weight: 100
$ oc apply -f istiofiles/virtual-service-recommendation-503.yml -n ${ISTIO_APP}
$ ./scripts/run.sh $INGRESS_GATEWAY/customer
customer => preference => recommendation v1 from '67976848-4l4s7': 13
customer => Error: 503 - preference => Error: 503 - fault filter abort
customer => Error: 503 - preference => Error: 503 - fault filter abort
customer => preference => recommendation v1 from '67976848-4l4s7': 14
customer => preference => recommendation v1 from '67976848-4l4s7': 15
customer => Error: 503 - preference => Error: 503 - fault filter abort
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。