카타코더 - Simulating Failures Between Microservices

1 개요[ | ]

카타코더 - Simulating Failures Between Microservices
카타코더 - Increasing Microservices Reliability with Istio
# 코스
카타코더 - Simulating Failures Between Microservices
카타코더 - Handling Timeouts Between Microservices
카타코더 - Handling Failures With Circuit Breakers

2 Bookinfo Application[ | ]

Bookinfo-noistio.svg

master $ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
details-v1-7b5f4fc575-lbq85      2/2       Running   0          1m
productpage-v1-c86d5ddf9-bk78h   2/2       Running   0          1m
ratings-v1-58d59948f5-8lgrw      2/2       Running   0          1m
reviews-v1-6d9787f845-grp6d      2/2       Running   0          1m
reviews-v2-84b4476485-7jbph      2/2       Running   0          1m
reviews-v3-55d6499f7c-fdmtm      2/2       Running   0          1m

3 Injecting an HTTP delay fault[ | ]

samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    fault:
      delay:
        percent: 100
        fixedDelay: 7s
    route:
    - destination:
        host: ratings
        subset: v1
  - route:
    - destination:
        host: ratings
        subset: v1
master $ kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
virtualservice.networking.istio.io/ratings configured
master $ kubectl get virtualservice ratings -o yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"networking.istio.io/v1alpha3","kind":"VirtualService","metadata":{"annotations":{},"name":"ratings","namespace":"default"},"spec":{"hosts":["ratings"],"http":[{"fault":{"delay":{"fixedDelay":"7s","percent":100}},"match":[{"headers":{"end-user":{"exact":"jason"}}}],"route":[{"destination":{"host":"ratings","subset":"v1"}}]},{"route":[{"destination":{"host":"ratings","subset":"v1"}}]}]}}
  creationTimestamp: 2019-06-27T06:54:48Z
  generation: 1
  name: ratings
  namespace: default
  resourceVersion: "1772"
  selfLink: /apis/networking.istio.io/v1alpha3/namespaces/default/virtualservices/ratings
  uid: 74079c78-98a8-11e9-b624-0242ac110013
spec:
  hosts:
  - ratings
  http:
  - fault:
      delay:
        fixedDelay: 7s
        percent: 100
    match:
    - headers:
        end-user:
          exact: jason
    route:
    - destination:
        host: ratings
        subset: v1
  - route:
    - destination:
        host: ratings
        subset: v1

4 Injecting an HTTP abort fault[ | ]

samples/bookinfo/networking/virtual-service-ratings-test-abort.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    fault:
      abort:
        percent: 100
        httpStatus: 500
    route:
    - destination:
        host: ratings
        subset: v1
  - route:
    - destination:
        host: ratings
        subset: v1
master $ kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-abort.yaml
virtualservice.networking.istio.io/ratings configured

5 Tracing Errors[ | ]

  • Jaeger dashboard
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}