เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เช…เชจเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒเชพเชˆเช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ Istio+Kiali เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช† เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เชฒเซ‡เช–เซ‹

  1. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #1 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช—เชฟเชŸเชฒเซ‡เชฌ เชธเซ€เช†เชˆ
  2. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #2 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช†เชฐเซเช—เซ‹ เชฐเซ‹เชฒเช†เช‰เชŸเซเชธ
  3. (เช† เชฒเซ‡เช–)
  4. เชœเซ‡เชจเช•เชฟเชจเซเชธ-เชเช•เซเชธ เช‡เชธเซเชŸเชฟเช“ เชซเซเชฒเซ‡เช—เชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ

เช•เซ‡เชจเซ‡เชฐเซ€ เชœเชฎเชพเชตเชŸ

เช…เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เชตเชพเช‚เชšเชถเซ‹ เชชเซเชฐเชฅเชฎ เชญเชพเช—, เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚ เชธเชฎเชœเชพเชตเซเชฏเซเช‚ เช•เซ‡ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเซเชธ เชถเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‹ เช…เชฎเชฒ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡ เชฌเชคเชพเชตเซเชฏเซเช‚.

เช‡เชธเซเชŸเชฟเช“

เช…เชจเซ‡ เช…เชฎเซ‡ เชงเชพเชฐเซ€เช เช›เซ€เช เช•เซ‡ เช† เชฒเซ‡เช– เชตเชพเช‚เชšเซ€เชจเซ‡ เชคเชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชœเชพเชฃเซ‹ เช›เซ‹ เช•เซ‡ Istio เชถเซเช‚ เช›เซ‡. เชœเซ‹ เชจเชนเชฟเช‚, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚.

เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชฎเชพเชŸเซ‡เชจเซ€ เช…เชฐเชœเซ€

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชฆเชฐเซ‡เช• เชชเซ‹เชกเชฎเชพเช‚ เชฌเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชนเซ‹เชฏ เช›เซ‡: เช…เชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช…เชจเซ‡ เช‡เชธเซเชŸเชฟเช“-เชชเซเชฐเซ‹เช•เซเชธเซ€.

เช…เชฎเซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก-เชเชจเชœเซ€เชจเซเช•เซเชธ เช…เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชชเชพเชฏเชฅเซ‹เชจ เชชเซ‹เชกเซเชธ เชธเชพเชฅเซ‡ เชเช• เชธเชฐเชณ เชŸเซ‡เชธเซเชŸ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚. nginx เชชเซ‹เชก เชฆเชฐเซ‡เช• เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชชเซ‹เชก เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡. เชตเชฟเช—เชคเซ‹ เชจเซ€เชšเซ‡เชจเชพ เชฏเชพเชฎเชฒเซเชธเชฎเชพเช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡:

เชชเชฐเซ€เช•เซเชทเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชพเชคเซ‡ เชšเชฒเชพเชตเชตเซ€

เชœเซ‹ เชคเชฎเซ‡ เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‡ เช…เชจเซเชธเชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹ เช…เชจเซ‡ เช† เชชเชฐเซ€เช•เซเชทเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชœเชพเชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชœเซเช“ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฐเซ€เชกเชฎเซ€.

เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชœเชฎเชพเชตเชŸ

เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชชเซเชฐเชฅเชฎ เชœเชฎเชพเชตเชŸ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชชเซ‹เชกเซเชธเชฎเชพเช‚ เชซเช•เซเชค 2 เช•เชจเซเชŸเซ‡เชจเชฐ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, Istio sidecar เชนเชฎเชฃเชพเช‚ เชœ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ€ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ Istio Gateway Loadbalancer เชชเชฃ เชœเซ‹เชˆเช เช›เซ€เช istio-system:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชŸเซเชฐเชพเชซเชฟเช• เชœเชจเชฐเซ‡เชถเชจ

เช…เชฎเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเชพ IP เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ เชœเซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชชเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡ เช…เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชชเซ‹เชกเซเชธ เชชเชฐ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done

เช…เชฎเซ‡ เชชเชฃ เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚ frontend.istio-test เช…เชฎเชพเชฐเซ€ เชฏเชœเชฎเชพเชจเซ‹ เชซเชพเช‡เชฒเชฎเชพเช‚.

เช•เชฟเชฏเชพเชฒเซ€ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชถ เชœเซเช“

เช…เชฎเซ‡ เชŸเซเชฐเซ‡เชธเชฟเช‚เช—, เช—เซเชฐเชพเชซเชจเชพ, เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เช…เชจเซ‡ เช•เชฟเชฏเชพเชฒเซ€ (เชตเชฟเช—เชคเซ‹ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡ เชœเซเช“) เชธเชพเชฅเซ‡ เชŸเซ‡เชธเซเชŸ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เช…เชจเซ‡ เช‡เชธเซเชŸเชฟเช“ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฐเซ€เชกเชฎเซ€). เชคเซ‡เชฅเซ€ เช†เชชเชฃเซ‡ เช† เชฆเซเชตเชพเชฐเชพ Kiali เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

istioctl dashboard kiali # admin:admin

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช•เชฟเชฏเชพเชฒเซ€ เชฎเซ‡เชถ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชคเชฎเชพเชจ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‡ เช›เซ‡

เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช, 100% เชŸเซเชฐเชพเชซเชฟเช• เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชธเซ‡เชตเชพ เชชเชฐ เชœเชพเชฏ เช›เซ‡, เชชเช›เซ€ เชฒเซ‡เชฌเชฒ v1 เชธเชพเชฅเซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชชเซ‹เชกเซเชธ เชชเชฐ เชœเชพเชฏ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เชเช• เชธเชฐเชณ nginx เชชเซเชฐเซ‹เช•เซเชธเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชœเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชธเซ‡เชตเชพ เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชคเซ‡เชฎเชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชชเซ‹เชกเซเชธ เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชฒเซ‡เชฌเชฒ v1 เชธเชพเชฅเซ‡.

Kiali Istio เชธเชพเชฅเซ‡ เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฌเซ‹เช•เซเชธเชตเชพเชณเซ€ เชฎเซ‡เชถ เชฐเซ‡เชจเซเชกเชฐเชฟเช‚เช— เชธเซ‹เชฒเซเชฏเซเชถเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡. เชฎเชพเชคเซเชฐ เชฎเชนเชพเชจ.

เช•เซ‡เชจเซ‡เชฐเซ€ เชœเชฎเชพเชตเชŸ

เช…เชฎเชพเชฐเชพ เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเซ‡ k8s เชœเชฎเชพเชตเชŸ เช›เซ‡, เชเช• v1 เชฎเชพเชŸเซ‡ เช…เชจเซ‡ เชเช• v2 เชฎเชพเชŸเซ‡. เชนเชตเซ‡ เช…เชฎเชพเชฐเซ‡ เช‡เชธเซเชŸเชฟเชฏเซ‹เชจเซ‡ เช…เชฎเซเช• เชšเซ‹เช•เซเช•เชธ เชŸเช•เชพ เชตเชฟเชจเช‚เชคเซ€เช“ v2 เชชเชฐ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพ เช•เชนเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชชเช—เชฒเซเช‚ 1: 10%

เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชซเช•เซเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชธเชฐเซเชตเชฟเชธเชจเชพ เชตเชœเชจเชจเซ‡ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ istio.yaml:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
  - match:
    - {}
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 90
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 10

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช…เชฎเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ 10% เชตเชฟเชจเช‚เชคเซ€เช“ v2 เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

เชชเช—เชฒเซเช‚ 2: 50%

เช…เชจเซ‡ เชนเชตเซ‡ เชคเซ‡ เชซเช•เซเชค เชคเซ‡เชจเซ‡ 50% เชธเซเชงเซ€ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
...
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 50
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 50

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชชเช—เชฒเซเช‚ 3: 100%

เชนเชตเซ‡ เช•เซ‡เชจเซ‡เชฐเซ€ เชœเชฎเชพเชตเชŸเชจเซ‡ เชชเซ‚เชฐเซเชฃ เช—เชฃเซ€ เชถเช•เชพเชฏ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ v2 เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช•เซ‡เชจเซ‡เชฐเซ€เชจเซเช‚ เชœเชพเชคเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹

เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเซ‡ เชนเชตเซ‡ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“เชฎเชพเช‚เชฅเซ€ 2% v10 เชฌเซ‡เช•เชเชจเซเชก เชชเชฐ เชฎเซ‹เช•เชฒเซ€เช เช›เซ€เช. เชœเซ‹ เช†เชชเชฃเซ‡ เช†เชชเชฃเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฎเซเชœเชฌ เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ v2 เชจเซเช‚ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚?

เช…เชฎเซ‡ HTTP เชนเซ‡เชกเชฐเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡ เชตเชฟเชถเซ‡เชท เชฎเซ‡เชšเชฟเช‚เช— เชจเชฟเชฏเชฎ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
  - match:
    - headers:
        canary:
          exact: "canary-tester"
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 100
  - match:
    - {}
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 90
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 10

เชนเชตเซ‡ curl เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช†เชชเชฃเซ‡ เชนเซ‡เชกเชฐ เชฎเซ‹เช•เชฒเซ€เชจเซ‡ v2 เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชนเซ‡เชกเชฐ เชตเช—เชฐเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชนเชœเซ เชชเชฃ 1/10 เชฐเซ‡เชถเชฟเชฏเซ‹ เชฆเซเชตเชพเชฐเชพ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชฌเซ‡ เช†เชถเซเชฐเชฟเชค เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ เช•เซ‡เชจเซ‡เชฐเซ€

เชนเชตเซ‡ เช…เชฎเซ‡ เชตเชฟเช•เชฒเซเชช เชชเชฐ เชตเชฟเชšเชพเชฐ เช•เชฐเซ€เชถเซเช‚ เชœเซเชฏเชพเช‚ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชซเซเชฐเชจเซเชŸ เชเชจเซเชก เช…เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ เชธเช‚เชธเซเช•เชฐเชฃ v2 เช›เซ‡. เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ 10% เชŸเซเชฐเชพเชซเชฟเช• v2 เชชเชฐ เชœเชตเซ‹ เชœเซ‹เชˆเช:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก v1 เช…เชจเซ‡ v2 เชฌเช‚เชจเซ‡ เชซเซ‹เชฐเชตเชฐเซเชก เชŸเซเชฐเชพเชซเชฟเช• 1/10 เช…เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก v1 เช…เชจเซ‡ v2 เชจเชพ เช—เซเชฃเซ‹เชคเซเชคเชฐเชฎเชพเช‚.

เชœเซ‹ เช†เชชเชฃเซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก-v2 เชฅเซ€ เชฎเชพเชคเซเชฐ เชฌเซ‡เช•เชเชจเซเชก-v2 เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช• เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ v1 เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เชจเชฅเซ€? เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชฎเชพเชŸเซ‡ 1/10 เชฐเซ‡เชถเชฟเชฏเซ‹ เชธเซ‡เชŸ เช•เชฐเซ€เชถเซเช‚, เชœเซ‡ เชตเชพเชŸเชพเช˜เชพเชŸเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก-v2 เชชเชฐ เช•เซ‡เชŸเชฒเซ‹ เชŸเซเชฐเชพเชซเชฟเช• เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช•เชฐเซ‡ เช›เซ‡. sourceLabels :

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
...
  - match:
    - sourceLabels:
        app: frontend
        version: v2
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 100

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเชจเซ‡ เชœเซ‡ เชœเซ‹เชˆเช เช›เซ‡ เชคเซ‡ เชฎเชณเซ‡ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ #3 เชฎเชพเช‚ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ: เช‡เชธเซเชŸเชฟเช“

เชฎเซ‡เชจเซเชฏเซเช…เชฒ เช•เซ‡เชจเซ‡เชฐเซ€ เช…เชญเชฟเช—เชฎเชฅเซ€ เชคเชซเชพเชตเชคเซ‹

ะ’ เชชเซเชฐเชฅเชฎ เชญเชพเช— เช…เชฎเซ‡ เชฌเซ‡ k8s เชœเชฎเชพเชตเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช•เซ‡เชจเซ‡เชฐเซ€ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เช•เชฐเซเชฏเซเช‚. เชคเซเชฏเชพเช‚ เช…เชฎเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฌเชฆเชฒเซ€เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‹ เช—เซเชฃเซ‹เชคเซเชคเชฐ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซเชฏเซ‹. เช† เช…เชญเชฟเช—เชฎ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชพเช‚ เช—เช‚เชญเซ€เชฐ เช–เชพเชฎเซ€เช“ เช›เซ‡.

Istio เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‹ เช—เซเชฃเซ‹เชคเซเชคเชฐ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเซ‡ HPAs (เชนเซ‹เชฐเชฟเชเซ‹เชจเซเชŸเชฒ เชชเซ‹เชก เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฐเซเชธ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชจเซ‡ เช•เซ‡เชจเซ‡เชฐเซ€ เชœเชฎเชพเชตเชŸเชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เช…เชจเซเชธเชพเชฐ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชชเชฐเชฟเชฃเชพเชฎ

Istio เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชฟเชฏเชพเชฒเซ€ เชธเชพเชฅเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช–เซ‚เชฌ เชœ เชถเช•เซเชคเชฟเชถเชพเชณเซ€ เชธเช‚เชฏเซ‹เชœเชจ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชฎเชพเชฐเซ€ เชฐเซเชšเชฟเช“เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช†เช—เชณ เชธเซเชชเชฟเชจเซ‡เช•เชฐเชจเซ‡ เช“เชŸเซ‹เชฎเซ‡เชถเชจ เช…เชจเซ‡ เช•เซ‡เชจเซ‡เชฐเซ€ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชฎเชพเชŸเซ‡ Istio เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชจเซเช‚ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹