เจจเฉเจ เจเจฐเฉเฅค เจ
เจจเฉเจตเจพเจฆ:
เจ
เจธเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจตเฉ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจเจฆเฉ เจนเจพเจ เจเจฟ เจฒเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจคเฉเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ (เจเฉเจฌเจฐเจจเฉเจเจธ เจ
เจคเฉ เจเจธเจเฉเจ เจฒเจ เจฎเฉเจจเฉเจซเฉเจธเจ) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ
เจเฉเจฐเฉเจซเจฟเจ เจชเฉเจฐเจฌเฉฐเจงเจจ
Istio เจฆเฉ เจจเจพเจฒ, เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจจเจตเฉเจเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฒเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจ:
- เจกเจพเจเจจเจพเจฎเจฟเจ เจฌเฉเจจเจคเฉ เจฐเฉเจเจฟเฉฐเจ: เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจ, A/B เจเฉเจธเจเจฟเฉฐเจ;
- เจฒเฉเจก เจธเฉฐเจคเฉเจฒเจจ: เจธเจงเจพเจฐเจจ เจ เจคเฉ เจเจเจธเจพเจฐ, เจนเฉเจธเจผ 'เจคเฉ เจเจงเจพเจฐเจฟเจค;
- เจกเจฟเฉฑเจเจฃ เจคเฉเจ เจฌเจพเจ เจฆ เจฐเจฟเจเจตเจฐเฉ: เจธเจฎเจพเจ เจธเจฎเจพเจชเจค, เจฎเฉเฉ เจเฉเจธเจผเจฟเจธเจผเจพเจ, เจธเจฐเจเจ เจคเฉเฉเจจ เจตเจพเจฒเฉ;
- เจจเฉเจเจธ เจชเจพเจเจฃเจพ: เจฆเฉเจฐเฉ, เจฌเฉเจจเจคเฉเจเจ เจเฉฑเจกเฉเจเจ, เจเจฆเจฟเฅค
เจเจฟเจตเฉเจ เจเจฟ เจฒเฉเจ เจเจพเจฐเฉ เจนเฉ, เจเจนเจจเจพเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ เจเฉเจฃเฉ เจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฆเจฐเจธเจพเจเจ เจเจพเจตเฉเจเจพ เจ
เจคเฉ เจฐเจธเจคเฉ เจตเจฟเฉฑเจ เจจเจตเฉเจ เจธเฉฐเจเจฒเจชเจพเจ เจจเฉเฉฐ เจชเฉเจธเจผ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจชเจนเจฟเจฒเจพ เจ
เจเจฟเจนเจพ เจธเฉฐเจเจฒเจช เจนเฉเจตเฉเจเจพ DestinationRules
(เจ
เจฐเจฅเจพเจค เจเฉเจฐเฉเจซเจฟเจ/เจฌเฉเจจเจคเฉ เจฆเฉ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฌเจพเจฐเฉ เจจเจฟเจฏเจฎ - เจฒเจเจญเจ เจ
เจจเฉเจตเจพเจฆเฅค), เจเจฟเจธ เจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ เจ
เจธเฉเจ A/B เจเฉเจธเจเจฟเฉฐเจ เจจเฉเฉฐ เจธเจฐเจเจฐเจฎ เจเจฐเจฆเฉ เจนเจพเจเฅค
A/B เจเฉเจธเจเจฟเฉฐเจ: เจ เจญเจฟเจเจธ เจตเจฟเฉฑเจ เจฎเฉฐเจเจผเจฟเจฒ เจจเจฟเจฏเจฎ
A/B เจเฉเจธเจเจฟเฉฐเจ เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจเจฟเฉฑเจฅเฉ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจฆเฉ เจธเฉฐเจธเจเจฐเจฃ เจนเฉเฉฐเจฆเฉ เจนเจจ (เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจน เจฆเฉเจฐเจฟเจธเจผเจเฉเจเจค เจคเฉเจฐ 'เจคเฉ เจตเฉฑเจเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ) เจ เจคเฉ เจ เจธเฉเจ 100% เจฏเจเฉเจจเฉ เจจเจนเฉเจ เจนเจพเจ เจเจฟ เจเจฟเจนเฉเจพ เจเจชเจญเฉเจเจคเจพ เจ เจจเฉเจญเจต เจจเฉเฉฐ เจธเฉเจงเจพเจฐเฉเจเจพเฅค เจเจธ เจฒเจ, เจ เจธเฉเจ เจฆเฉเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจเฉฑเจเฉ เจธเจฎเฉเจ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจฎเฉเจเฉเจฐเจฟเจเจธ เจเจเฉฑเจ เฉ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจซเจฐเฉฐเจเจเจเจก เจฆเฉ เจฆเฉเจเฉ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจ เจฒเจ, A/B เจเฉเจธเจเจฟเฉฐเจ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉ, เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจเจฒเจพเจ:
$ kubectl apply -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions/sa-frontend-green created
เจนเจฐเฉ เจธเฉฐเจธเจเจฐเจฃ เจฒเจ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจฎเฉเจจเฉเจซเฉเจธเจ เจฆเฉ เจฅเจพเจตเจพเจ 'เจคเฉ เจตเฉฑเจเจฐเจพ เจนเฉ:
- เจเจฟเฉฑเจคเจฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเฉเจ 'เจคเฉ เจ
เจงเจพเจฐเจค เจนเฉ -
istio-green
, - เจซเจฒเฉเจเจ เจฆเจพ เจเฉฑเจ เจฒเฉเจฌเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ
version: green
.
เจเจฟเจเจเจเจฟ เจฆเฉเจตเจพเจ เจคเฉเจจเจพเจคเฉเจเจ เจฆเจพ เจเฉฑเจ เจฒเฉเจฌเจฒ เจนเฉ app: sa-frontend
,เจตเจฐเจเฉเจ
เจฒ เจธเฉเจตเจพ เจฆเฉเจเจฐเจพ เจฐเฉเจ เจเฉเจคเฉเจเจ เจฌเฉเจจเจคเฉเจเจ sa-external-services
เจธเฉเจตเจพ เจฒเจ sa-frontend
, เจเจธ เจฆเฉเจเจ เจธเจพเจฐเฉเจเจ เจฎเฉเจเจฟเจเจ 'เจคเฉ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ เจ
เจคเฉ เจฒเฉเจก เจฆเฉเจเจฐเจพ เจตเฉฐเจกเจฟเจ เจเจพเจตเฉเจเจพ
เจฌเฉเจจเจคเฉ เจเฉเจคเฉเจเจ เจซเจพเจเจฒเจพเจ เจจเจนเฉเจ เจฎเจฟเจฒเฉเจเจ
เจเจน เจซเจพเจเจฒเจพเจ เจจเจนเฉเจ เจฎเจฟเจฒเฉเจเจ เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจตเจฟเฉฑเจ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจจเจพเจฎ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจ เจเจน เจฏเจเฉเจจเฉ เจเจฐเฉเจ:
$ curl --silent http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
/static/css/main.c7071b22.css
/static/js/main.059f8e9c.js
$ curl --silent http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
/static/css/main.f87cd8c9.css
/static/js/main.f7659dbb.js
เจเจธ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ index.html
, เจธเจฅเจฟเจฐ เจซเจพเจเจฒเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเฉ เจนเฉเจ, เจฒเฉเจก เจฌเฉเจฒเฉเจเจธเจฐ เจฆเฉเจเจฐเจพ เจเจนเจจเจพเจ เจชเฉเจกเจพเจ เจจเฉเฉฐ เจญเฉเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเจฟเจนเจจเจพเจ เจฆเจพ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจธเฉฐเจธเจเจฐเจฃ เจนเฉ, เจเจฟเฉฑเจฅเฉ เจธเจชเฉฑเจธเจผเจ เจเจพเจฐเจจเจพเจ เจเจฐเจเฉ, เจ
เจเจฟเจนเฉเจเจ เจซเจพเจเจฒเจพเจ เจฎเฉเจเฉเจฆ เจจเจนเฉเจ เจนเจจเฅค เจเจธ เจฒเจ, เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจชเจพเจฌเฉฐเจฆเฉ เจฒเจเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ: "เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเจพ เจเจนเฉ เจธเฉฐเจธเจเจฐเจฃ เจเจฟเจธเจจเฉ index.html เจฆเฉ เจธเฉเจตเจพ เจเฉเจคเฉ เจนเฉ, เจจเฉเฉฐ เจ
เจเจฒเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจธเฉเจตเจพ เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ".
เจ เจธเฉเจ เจฒเจเจพเจคเจพเจฐ เจนเฉเจธเจผ-เจ เจงเจพเจฐเจฟเจค เจฒเฉเจก เจธเฉฐเจคเฉเจฒเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจฅเฉ เจชเจนเฉเฉฐเจเจพเจเจเฉ (เจเจเจธเจพเจฐ เจนเฉเจธเจผ เจฒเฉเจกเจฌเฉเจฒเฉเจเจธเจฟเฉฐเจ). เจเจธ เจเฉเจธ เจตเจฟเจ เจเจธเฉ เจเจฒเจพเจเฉฐเจ เจฆเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจเจธเฉ เจฌเฉเจเจเจเจก เจฎเฉเจเฉ 'เจคเฉ เจญเฉเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจฒเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ - เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ HTTP เจธเจฟเจฐเจฒเฉเจเฅค Destination Rules เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจเฅค
เจฎเฉฐเจเจผเจฟเจฒ เจฆเฉ เจจเจฟเจฏเจฎ
เจฌเจพเจ เจฆ เจตเจฐเจเฉเจ เจฒ เจธเฉเจตเจพ เจจเฉ เจฒเฉเฉเฉเจเจฆเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจฌเฉเจจเจคเฉ เจญเฉเจเฉ เจนเฉ, DestinationRules เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจ เจธเฉเจ เจ เจเจฟเจนเฉเจเจ เจจเฉเจคเฉเจเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเฉ เจเจธ เจธเฉเจตเจพ เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฒเจ เจจเจฟเจฏเจค เจเฉเจฐเฉเจซเจฟเจ 'เจคเฉ เจฒเจพเจเฉ เจเฉเจคเฉเจเจ เจเจพเจฃเจเฉเจเจ:
Istio เจธเจฐเฉเจคเจพเจ เจจเจพเจฒ เจเฉเจฐเฉเจซเจฟเจ เจชเฉเจฐเจฌเฉฐเจงเจจ
เจเจฟเฉฑเจชเจฃเฉ: เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจฐเฉเจซเจฟเจ 'เจคเฉ Istio เจธเจฐเฉเจคเจพเจ เจฆเฉ เจชเฉเจฐเจญเจพเจต เจจเฉเฉฐ เจเฉฑเจฅเฉ เจเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจชเฉเจธเจผ เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจเฉ เจธเจฎเจเจฃเจพ เจเจธเจพเจจ เจนเฉเฅค เจธเจเฉเจ เจนเฉเจฃ เจฒเจ, เจเจน เจซเฉเจธเจฒเจพ เจเจฟ เจเจฟเจธ เจเจฆเจพเจนเจฐเจจ 'เจคเฉ เจฌเฉเจจเจคเฉ เจญเฉเจเจฃเฉ เจนเฉ, CRD เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจฟเจค เจเฉฐเจเฉเจฐเฉเจธ เจเฉเจเจตเฉ เจตเจฟเฉฑเจ เจฐเจพเจเจฆเฉเจค เจฆเฉเจเจฐเจพ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจฎเฉฐเจเจผเจฟเจฒ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจจเจพเจฒ, เจ
เจธเฉเจ เจเจเจธเจพเจฐ เจนเฉเจธเจผเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจฒเฉเจก เจฌเฉเจฒเฉเจเจธเจฟเฉฐเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจเจนเฉ เจธเฉเจตเจพ เจเจฆเจพเจนเจฐเจจ เจเจธเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเจตเจพเจฌ เจฆเฉเจตเฉเฅค เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจธเจนเจพเจเจ เจนเฉ (
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: sa-frontend
spec:
host: sa-frontend
trafficPolicy:
loadBalancer:
consistentHash:
httpHeaderName: version # 1
1 - HTTP เจธเจฟเจฐเจฒเฉเจ เจฆเฉ เจธเจฎเฉฑเจเจฐเฉ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจนเฉเจธเจผ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ version
.
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉ:
$ kubectl apply -f resource-manifests/istio/ab-testing/destinationrule-sa-frontend.yaml
destinationrule.networking.istio.io/sa-frontend created
เจนเฉเจฃ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจเจฒเจพเจ เจ
เจคเฉ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจ เจเจฟ เจเจฆเฉเจ เจคเฉเจธเฉเจ เจธเจฟเจฐเจฒเฉเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเฉ เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจนเฉ เจซเจพเจเจฒเจพเจ เจฎเจฟเจฒเจฆเฉเจเจ เจนเจจ version
:
$ curl --silent -H "version: yogo" http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
เจเจฟเฉฑเจชเจฃเฉ: เจธเจฟเจฐเจฒเฉเจ เจตเจฟเฉฑเจ เจตเฉฑเจ-เจตเฉฑเจ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจ
เจคเฉ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ เจเฉเจธเจ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉ
เจเจฎ เจคเฉเจฐ 'เจคเฉ, DestinationRules เจตเจฟเฉฑเจ เจฒเฉเจก เจธเฉฐเจคเฉเจฒเจจ เจฆเฉ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจตเจงเฉเจฐเฉ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจนเจจ - เจตเจฟเฉฑเจ เจตเฉเจฐเจตเจฟเจเจ เจฒเจ เจเจพเจเจ เจเจฐเฉ
เจตเจฐเจเฉเจ เจฒ เจธเจฐเจตเจฟเจธ เจฆเจพ เจนเฉเจฐ เจ เจงเจฟเจเจจ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพ เจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ "เจนเจฐเฉ เจธเฉฐเจธเจเจฐเจฃ" เจ เจคเฉ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเฉเจฐเฉเจซเจฟเจ เจฆเจฟเจธเจผเจพ เจจเจฟเจฏเจฎ เจจเฉเฉฐ เจฎเจฟเจเจพ เจฆเฉเจเจ:
$ kubectl delete -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions โsa-frontend-greenโ deleted
$ kubectl delete -f resource-manifests/istio/ab-testing/destinationrule-sa-frontend.yaml
destinationrule.networking.istio.io โsa-frontendโ deleted
เจฎเจฟเจฐเจฐเจฟเฉฐเจ: เจ เจญเจฟเจเจธ เจตเจฟเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจธเฉเจตเจพเจตเจพเจ
เจชเจฐเจเจพเจตเจพเจ ("เจฐเฉฑเจเจฃเจพ") เจเจพเจ เจฎเจฟเจฐเจฐเจฟเฉฐเจ ("เจธเจผเฉเจธเจผเฉ") เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟเฉฑเจฅเฉ เจ เจธเฉเจ เจ เฉฐเจคเจฎ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉ เจฆเฉ เจเจพเจเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ: เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจเฉฑเจ เจฆเฉเจเฉ เจธเจฅเจฟเจคเฉ เจฒเจ ("เจฎเจฟเจฐเจฐ") เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจกเฉเจชเจฒเฉเจเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟเฉฑเจฅเฉ เจฒเฉเฉเฉเจเจฆเฉ เจฌเจฆเจฒเจพเจ เจเฉเจคเฉ เจเจ เจนเจจ, เจ เจคเฉ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจฆเฉเจเจฆเฉ เจนเจพเจเฅค เจธเจงเจพเจฐเจจ เจฐเฉเจช เจตเจฟเฉฑเจ, เจเจน เจเจฆเฉเจ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฆเฉเจ เจคเฉเจนเจพเจกเจพ เจธเจนเจฟเจเจฐเจฎเฉ เจธเจญ เจคเฉเจ เจจเจพเจเจผเฉเจ เจฎเฉเฉฑเจฆเจพ เจเฉเจฃเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉฐเจฆเจเฉ เจฆเฉ เจเฉฐเจจเฉ เจตเฉฑเจกเฉ เจขเฉเจฐ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฟเฉฑเจเจฃ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉเจ เจตเฉ เจ เจธเจฒ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจธเจฎเฉเจเจฟเจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค
เจเจธ เจฆเฉเจฐเจฟเจธเจผ เจจเฉเฉฐ เจเจพเจฐเจตเจพเจ เจตเจฟเฉฑเจ เจชเจฐเจเจฃ เจฒเจ, เจเจ เจฌเฉฑเจเจพเจ เจฆเฉ เจจเจพเจฒ SA-Logic เจฆเฉ เจเฉฑเจ เจฆเฉเจเฉ เจเจฆเจพเจนเจฐเจฃ เจฌเจฃเจพเจเจ (buggy
) เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจเจฒเจพ เจเฉ:
$ kubectl apply -f resource-manifests/kube/shadowing/sa-logic-service-buggy.yaml
deployment.extensions/sa-logic-buggy created
เจ
เจคเฉ เจนเฉเจฃ เจเจ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจเจฎเจพเจเจก เจเจฒเจพเจ เจเจฟ เจธเจพเจฐเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจจเจพเจฒ app=sa-logic
เจเจนเจจเจพเจ เจเฉเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจจเจพเจฒ เจฒเฉเจฌเจฒ เจตเฉ เจนเจจ:
$ kubectl get pods -l app=sa-logic --show-labels
NAME READY LABELS
sa-logic-568498cb4d-2sjwj 2/2 app=sa-logic,version=v1
sa-logic-568498cb4d-p4f8c 2/2 app=sa-logic,version=v1
sa-logic-buggy-76dff55847-2fl66 2/2 app=sa-logic,version=v2
sa-logic-buggy-76dff55847-kx8zz 2/2 app=sa-logic,version=v2
เจธเฉเจตเจพ sa-logic
เจเฉฑเจ เจฒเฉเจฌเจฒ เจจเจพเจฒ เจชเฉเจกเจพเจ เจจเฉเฉฐ เจจเจฟเจธเจผเจพเจจเจพ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ app=sa-logic
, เจเจธ เจฒเจ เจธเจพเจฐเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจธเจพเจฐเฉเจเจ เจธเจฅเจฟเจคเฉเจเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเฉเจเจ เจเจพเจฃเจเฉเจเจ:
... เจชเจฐ เจ
เจธเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ v1 เจฎเฉเจเจฟเจเจ 'เจคเฉ เจญเฉเจเจฟเจ เจเจพเจตเฉ เจ
เจคเฉ v2 เจฎเฉเจเจฟเจเจ 'เจคเฉ เจชเฉเจฐเจคเฉเจฌเจฟเฉฐเจฌ เจเฉเจคเจพ เจเจพเจตเฉ:
เจ
เจธเฉเจ DestinationRule เจฆเฉ เจจเจพเจฒ เจฎเจฟเจฒ เจเฉ VirtualService เจฐเจพเจนเฉเจ เจเจธ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจพเจเจเฉ, เจเจฟเฉฑเจฅเฉ เจจเจฟเจฏเจฎ เจเจฟเจธเฉ เจเจพเจธ เจธเจฌเจธเฉเฉฑเจ เจฒเจ เจตเจฐเจเฉเจ
เจฒ เจธเจฐเจตเจฟเจธ เจฆเฉ เจธเจฌเจธเฉเฉฑเจ เจ
เจคเฉ เจฐเฉเจเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจเฉเฅค
เจฎเฉฐเจเจผเจฟเจฒ เจจเจฟเจฏเจฎเจพเจ เจตเจฟเฉฑเจ เจเจช เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจเจพ
เจธเจฌเจธเฉเฉฑเจ (เจธเจฌเจธเฉเฉฑเจ) เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ (
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: sa-logic
spec:
host: sa-logic # 1
subsets:
- name: v1 # 2
labels:
version: v1 # 3
- name: v2
labels:
version: v2
- เจฎเฉเจเจผเจฌเจพเจจ (
host
) เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจน เจจเจฟเจฏเจฎ เจธเจฟเจฐเจซเจผ เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ 'เจคเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฆเฉเจ เจฐเฉเจ เจธเฉเจตเจพ เจตเฉฑเจฒ เจเจพเจเจฆเจพ เจนเฉsa-logic
; - เจธเจฟเจฐเจฒเฉเจ (
name
) เจเจช-เจธเฉเฉฑเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจธเจฌเจธเฉเฉฑเจ เจฎเฉเจเจฟเจเจ 'เจคเฉ เจฐเฉเจ เจเจฐเจจ เจตเฉเจฒเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ; - เจฒเฉเจฌเจฒ (
label
) เจเฉเฉฐเจเฉ-เจฎเฉเฉฑเจฒ เจฆเฉ เจเฉเฉเจฟเจเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจเฉ เจธเจฌเจธเฉเฉฑเจ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฌเจฃเจจ เจฒเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเจพ เจฎเฉเจฒ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉ:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created
เจนเฉเจฃ เจเจฆเฉเจ เจธเจฌเจธเฉเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเจจ, เจ เจธเฉเจ เจ เฉฑเจเฉ เจตเจง เจธเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจธเจพ-เจคเจฐเจ เจฆเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจฒเจ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ เจตเจฐเจเฉเจ เจฒ เจธเจฐเจตเจฟเจธ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจคเจพเจ เจเฉ เจเจน:
- เจเฉฑเจ เจธเจฌเจธเฉเฉฑเจ เจฒเจ เจฐเฉเจ เจเฉเจคเจพ เจเจฟเจ
v1
, - เจเฉฑเจ เจธเจฌเจธเฉเฉฑเจ เจฒเจ เจชเฉเจฐเจคเฉเจฌเจฟเฉฐเจฌเจฟเจค เจเฉเจคเจพ เจเจฟเจ
v2
.
เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเจพ เจฎเฉเจจเฉเจซเฉเจธเจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจคเฉเจนเจพเจกเฉเจเจ เจฏเฉเจเจจเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ (
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: sa-logic
spec:
hosts:
- sa-logic
http:
- route:
- destination:
host: sa-logic
subset: v1
mirror:
host: sa-logic
subset: v2
เจเฉฑเจฅเฉ เจเจฟเจธเฉ เจตเจฟเจเจเจฟเจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจเจธ เจฒเจ เจเจ เจเจธเจจเฉเฉฐ เจ เจฎเจฒ เจตเจฟเฉฑเจ เจตเฉเจเฉเจ:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-shadowing-vs.yaml
virtualservice.networking.istio.io/sa-logic created
เจเจ เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจเฉ เจฒเฉเจก เจจเฉเฉฐ เจเฉเฉเฉเจ:
$ while true; do curl -v http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; done
เจเจ Grafana เจตเจฟเฉฑเจ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจตเฉเจเฉเจ, เจเจฟเฉฑเจฅเฉ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจฌเฉฑเจ เจตเจพเจฒเจพ เจธเฉฐเจธเจเจฐเจฃ (buggy
) ~60% เจฌเฉเจจเจคเฉเจเจ เจฒเจ เจ
เจธเจซเจฒเจคเจพ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ, เจชเจฐ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉเจ เจตเฉ เจ
เจธเจซเจฒเจคเจพ เจ
เฉฐเจคเจฎ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเฉ เจนเฉ เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจฒ เจฐเจนเฉ เจธเฉเจตเจพ เจฆเฉเจเจฐเจพ เจเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจธเจพ-เจคเจฐเจ เจธเฉเจตเจพ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจธเจซเจฒ เจเจตเจพเจฌ
เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจฆเฉเจเจฟเจ เจเจฟ เจเจฟเจตเฉเจ เจธเจพเจกเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจฆเฉเจคเจพเจ 'เจคเฉ เจตเจฐเจเฉเจ
เจฒ เจธเจฐเจตเจฟเจธ เจจเฉเฉฐ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ: เจเจฆเฉเจ sa-web-app
เจจเฉเฉฐ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉ sa-logic
, เจเจน เจธเจพเจเจกเจเจพเจฐ เจฆเฉเจค เจฆเฉเจเจฐเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเฉ - VirtualService เจฆเฉเจเจฐเจพ - เจฌเฉเจจเจคเฉ เจจเฉเฉฐ v1 เจธเจฌเจธเฉเฉฑเจ เจฒเจ เจฐเฉเจ เจเจฐเจจ เจ
เจคเฉ เจธเฉเจตเจพ เจฆเฉ v2 เจธเจฌเจธเฉเฉฑเจ เจฒเจ เจฌเฉเจจเจคเฉ เจจเฉเฉฐ เจชเฉเจฐเจคเฉเจฌเจฟเฉฐเจฌเจค เจเจฐเจจ เจฒเจ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค sa-logic
.
เจฎเฉเจจเฉเฉฐ เจชเจคเจพ เจนเฉ, เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเฉเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจตเจฐเจเฉเจ เจฒ เจธเฉเจตเจพเจตเจพเจ เจธเจงเจพเจฐเจจ เจนเจจเฅค เจ เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเจน เจเจนเจฟ เจเฉ เจเจธเจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจพเจเจเฉ เจเจฟ เจเจน เจธเฉฑเจเจฎเฉเฉฑเจ เจฎเจนเจพเจจ เจตเฉ เจนเจจเฅค
เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจเจธ
เจเฉเจจเจฐเฉ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจเฉฑเจ เจเฉเจเฉ เจเจฟเจฃเจคเฉ เจตเจฟเฉฑเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเฉฑเจ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจฐเฉเจฒ เจเจเจ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจนเฉเฅค เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจเจฟ เจฐเฉเจฒเฉเจเจผ เจตเจฟเฉฑเจ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจจเจนเฉเจ เจนเฉ เจ เจคเฉ เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจนเฉ, เจเจธเจฆเฉ (เจฐเจฟเจฒเฉเจเจผ เจฆเฉ) เจเฉเจฃเจตเฉฑเจคเจพ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจญเจฐเฉเจธเจพ เจฐเฉฑเจเจฆเฉ เจนเฉเจ, เจเจธเจจเฉเฉฐ เจฆเฉเจเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเฉเฅคะพเจตเฉฑเจกเฉ เจฆเจฐเจธเจผเจ.
เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจธเจฌเจธเฉเฉฑเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจเจพเจฐเฉ เจฐเฉฑเจเจพเจเจเฉ buggy
ั sa-logic
.
เจเจ เจฎเจพเจฎเฉเจฒเฉ เจเฉฑเจฒเจพเจ 'เจคเฉ เจธเจฎเจพเจ เจฌเจฐเจฌเจพเจฆ เจจเจพ เจเจฐเฉเจ เจ
เจคเฉ เจคเฉเจฐเฉฐเจค 20% เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจฌเฉฑเจ เจตเจพเจฒเฉ เจธเฉฐเจธเจเจฐเจฃ 'เจคเฉ เจญเฉเจเฉเจ (เจเจน เจธเจพเจกเฉ เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจพ), เจ
เจคเฉ เจฌเจพเจเฉ 80% เจจเฉเฉฐ เจเจฎ เจธเฉเจตเจพ เจฒเจ เจญเฉเจเฉเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจตเจฐเจเฉเจ
เจฒ เจธเจฐเจตเจฟเจธ (
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: sa-logic
spec:
hosts:
- sa-logic
http:
- route:
- destination:
host: sa-logic
subset: v1
weight: 80 # 1
- destination:
host: sa-logic
subset: v2
weight: 20 # 1
1 เจญเจพเจฐ เจนเฉ (weight
), เจเฉ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจชเฉเจฐเจคเฉเจธเจผเจคเจคเจพ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจเฉ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจเจพเจ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฆเฉ เจเจช เจธเจฎเฉเจน เจจเฉเฉฐ เจจเจฟเจฐเจฆเฉเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจฒเจ เจชเจฟเจเจฒเฉ VirtualService เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจจเฉเฉฐ เจ
เฉฑเจชเจกเฉเจ เจเจฐเฉเจ sa-logic
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ:
$ kubectl apply -f resource-manifests/istio/canary/sa-logic-subsets-canary-vs.yaml
virtualservice.networking.istio.io/sa-logic configured
... เจ เจคเฉ เจ เจธเฉเจ เจคเฉเจฐเฉฐเจค เจฆเฉเจเจพเจเจเฉ เจเจฟ เจเฉเจ เจฌเฉเจจเจคเฉเจเจ เจ เจธเจซเจฒเจคเจพเจตเจพเจ เจตเฉฑเจฒ เจฒเฉ เจเจพเจเจฆเฉเจเจ เจนเจจ:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}'
--silent -w "Time: %{time_total}s t Status: %{http_code}n"
-o /dev/null; sleep .1; done
Time: 0.153075s Status: 200
Time: 0.137581s Status: 200
Time: 0.139345s Status: 200
Time: 30.291806s Status: 500
เจตเจฐเจเฉเจ เจฒ เจธเฉเจตเจพเจตเจพเจ เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจเจธ เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจ: เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจฎเฉเฉฑเจฆเจฟเจเจ เจฆเฉ เจธเฉฐเจญเจพเจตเฉ เจชเฉเจฐเจญเจพเจต เจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจ เจงเจพเจฐ เจฆเฉ 20% เจคเฉฑเจ เจธเฉเจฎเจค เจเจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉเฅค เจธเจผเจพเจจเจฆเจพเจฐ! เจนเฉเจฃ, เจนเจฐ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ เจเจฆเฉเจ เจ เจธเฉเจ เจเจชเจฃเฉ เจเฉเจก เจฌเจพเจฐเฉ เจฏเจเฉเจจเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ (เจฆเฉเจเฉ เจธเจผเจฌเจฆเจพเจ เจตเจฟเฉฑเจ - เจนเจฎเฉเจธเจผเจพ...), เจ เจธเฉเจ เจฎเจฟเจฐเจฐเจฟเฉฐเจ เจ เจคเฉ เจเฉเจจเจฐเฉ เจฐเฉเจฒเจเจเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจธเจฎเจพเจ เจธเจฎเจพเจชเจค เจ เจคเฉ เจฎเฉเฉ เจเฉเจธเจผเจฟเจธเจผเจพเจ
เจชเจฐ เจฌเฉฑเจ เจนเจฎเฉเจธเจผเจพ เจเฉเจก เจตเจฟเฉฑเจ เจเจคเจฎ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจคเฉเจ เจธเฉเจเฉ เจตเจฟเฉฑเจ "
เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจ เจ
เจธเฉเจ เจเจธเฉ เจธเจฎเฉฑเจธเจฟเจ เจตเจพเจฒเฉ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจพเจฐเฉ เจฐเฉฑเจเจพเจเจเฉ sa-logic
(buggy
), เจ
เจคเฉ เจ
เจธเฉเจ เจฌเฉเจคเจฐเจคเฉเจฌเฉ เจ
เจธเจซเจฒเจคเจพเจตเจพเจ เจฆเฉ เจจเจพเจฒ เจจเฉเจเจตเจฐเจ เจฆเฉ เจญเจฐเฉเจธเฉเจฏเฉเจเจคเจพ เจฆเฉ เจจเจเจฒ เจเจฐเจพเจเจเฉเฅค
เจฌเฉฑเจเจพเจ เจตเจพเจฒเฉ เจธเจพเจกเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจเจตเจพเจฌ เจฆเฉเจฃ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจฎเจพเจ เจฒเฉฑเจเจฃ เจฆเฉ 1/3 เจธเฉฐเจญเจพเจตเจจเจพ, เจ เฉฐเจฆเจฐเฉเจจเฉ เจธเจฐเจตเจฐ เจเจฒเจคเฉ เจจเจพเจฒ เจเจคเจฎ เจนเฉเจฃ เจฆเฉ 1/3 เจธเฉฐเจญเจพเจตเจจเจพ, เจ เจคเฉ เจชเฉเจ เจจเฉเฉฐ เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจตเจพเจชเจธ เจเจฐเจจ เจฆเฉ 1/3 เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉเฅค
เจ เจเจฟเจนเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเฉ เจชเฉเจฐเจญเจพเจต เจจเฉเฉฐ เจเจเจพเจเจฃ เจ เจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจเฉเจตเจจ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจฃ เจฒเจ, เจ เจธเฉเจ เจเจน เจเจฐ เจธเจเจฆเฉ เจนเจพเจ:
- เจเฉฑเจ เจธเจฎเจพเจ เจธเจฎเจพเจชเจค เจเฉเฉเฉ เจเฉเจเจฐ เจธเฉเจตเจพ เจจเฉเฉฐ เจเจตเจพเจฌ เจฆเฉเจฃ เจตเจฟเฉฑเจ 8 เจธเจเจฟเฉฐเจเจพเจ เจคเฉเจ เจตเฉฑเจง เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉ,
- เจเฉเจเจฐ เจฌเฉเจจเจคเฉ เจ เจธเจซเจฒ เจนเฉ เจเจพเจเจฆเฉ เจนเฉ เจคเจพเจ เจฆเฉเจฌเจพเจฐเจพ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเฅค
เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเจฐเฉเจค เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ (
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: sa-logic
spec:
hosts:
- sa-logic
http:
- route:
- destination:
host: sa-logic
subset: v1
weight: 50
- destination:
host: sa-logic
subset: v2
weight: 50
timeout: 8s # 1
retries:
attempts: 3 # 2
perTryTimeout: 3s # 3
- เจฌเฉเจจเจคเฉ เจฒเจ เจธเจฎเจพเจ เจธเจฎเจพเจชเจค 8 เจธเจเจฟเฉฐเจ เจฒเจ เจธเฉเฉฑเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ;
- เจฌเฉเจจเจคเฉเจเจ เจฆเฉ 3 เจตเจพเจฐ เจฎเฉเฉ เจเฉเจธเจผเจฟเจธเจผ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ;
- เจ เจคเฉ เจนเจฐเฉเจ เจเฉเจธเจผเจฟเจธเจผ เจจเฉเฉฐ เจ เจธเจซเจฒ เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเฉเจเจฐ เจเจตเจพเจฌ เจฆเจพ เจธเจฎเจพเจ 3 เจธเจเจฟเฉฐเจเจพเจ เจคเฉเจ เจตเฉฑเจง เจนเฉเฅค
เจเจน เจเฉฑเจ เจ เจจเฉเจเฉเจฒเจคเจพ เจนเฉ เจเจฟเจเจเจเจฟ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ 8 เจธเจเจฟเฉฐเจเจพเจ เจคเฉเจ เจตเฉฑเจง เจเจกเฉเจ เจจเจนเฉเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉ เจ เจคเฉ เจ เจธเฉเจ เจ เจธเจซเจฒ เจนเฉเจฃ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจคเจฟเฉฐเจจ เจจเจตเฉเจเจ เจเฉเจธเจผเจฟเจธเจผเจพเจ เจเจฐเจพเจเจเฉ, เจเฉฑเจ เจธเจซเจฒ เจเจตเจพเจฌ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจจเฉเฉฐ เจตเจงเจพเจเจเจฆเฉ เจนเฉเจ.
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจ เฉฑเจชเจกเฉเจ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉ:
$ kubectl apply -f resource-manifests/istio/retries/sa-logic-retries-timeouts-vs.yaml
virtualservice.networking.istio.io/sa-logic configured
เจ เจคเฉ เจเฉเจฐเจพเจซเจพเจจเจพ เจเฉเจฐเจพเจซเจพเจ เจตเจฟเฉฑเจ เจเจพเจเจ เจเจฐเฉ เจเจฟ เจธเจซเจฒ เจเจตเจพเจฌเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเฉฑเจชเจฐ เจตเฉฑเจง เจเจ เจนเฉ:
เจธเจฎเจพเจ เจธเจฎเจพเจชเจคเฉ เจ
เจคเฉ เจฎเฉเฉ เจเฉเจธเจผเจฟเจธเจผเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจคเฉเจ เจฌเจพเจ
เจฆ เจธเจซเจฒ เจเจตเจพเจฌ เจ
เฉฐเจเฉเจฟเจเจ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ
เจ
เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจเจพเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ (เจเจพเจ เจเจธ เจฆเฉ เจฌเจเจพเจ, เจฒเฉเจ เจฆเฉ เจ
เจเจฒเฉ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ, เจเจฟเจเจเจเจฟ เจเจธ เจตเจฟเฉฑเจ เจเฉเจ เจนเฉเจฐ เจตเจฟเจนเจพเจฐเจ เจชเฉเจฐเจฏเฉเจ เจจเจนเฉเจ เจนเฉเจฃเจเฉ - เจฒเจเจญเจ เจ
เจจเฉเจตเจพเจฆเฅค), เจฎเจฟเจเจพเจ sa-logic-buggy
เจ
เจคเฉ เจนเฉเจ เจฒเจฟเจเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจเจฒเจพ เจเฉ เจตเจฐเจเฉเจ
เจฒ เจธเจฐเจตเจฟเจธ:
$ kubectl delete deployment sa-logic-buggy
deployment.extensions โsa-logic-buggyโ deleted
$ kubectl delete virtualservice sa-logic
virtualservice.networking.istio.io โsa-logicโ deleted
เจธเจฐเจเจ เจฌเฉเจฐเฉเจเจฐ เจ เจคเฉ เจฌเจฒเจเจนเฉเฉฑเจก เจชเฉเจเจฐเจจ
เจ เจธเฉเจ เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธ เจเจฐเจเฉเจเฉเจเจเจฐ เจตเจฟเฉฑเจ เจฆเฉ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจชเฉเจเจฐเจจเจพเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐ เจฐเจนเฉ เจนเจพเจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจตเฉ-เจฐเจฟเจเจตเจฐเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเจจ (เจธเจตเฉ-เจเจฒเจพเจ) เจธเฉเจตเจพเจตเจพเจ.
เจธเจฐเจเจ เจฌเจฐเฉเจเจฐ ("เจธเจฐเจเจ เจคเฉเฉเจจ เจตเจพเจฒเจพ") เจเจฟเจธเฉ เจธเฉเจตเจพ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจคเฉ เจเจเจฃ เจตเจพเจฒเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจเจคเจฎ เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟเจธเจจเฉเฉฐ เจเฉเจฐ-เจธเจฟเจนเจคเจฎเฉฐเจฆ เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจฌเจนเจพเจฒ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจเจฆเฉเจ เจเจฟ เจเจฒเจพเจเฉฐเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจเจธ เจธเฉเจตเจพ เจฆเฉ เจธเจฟเจนเจคเจฎเฉฐเจฆ เจฎเฉเจเจฟเจเจ 'เจคเฉ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ (เจเฉ เจธเจซเจฒ เจเจตเจพเจฌเจพเจ เจฆเฉ เจชเฉเจฐเจคเฉเจธเจผเจคเจคเจพ เจจเฉเฉฐ เจตเจงเจพเจเจเจฆเจพ เจนเฉ)เฅค (เจจเฉเจ: เจชเฉเจเจฐเจจ เจฆเจพ เจตเจงเฉเจฐเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเฉเจฐเจตเจพ เจชเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ,
เจฌเจฒเจเจนเฉเจก ("เจตเจฟเจญเจพเจ") เจธเฉเจตเจพ เจ
เจธเจซเจฒเจคเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจฐเฉ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจจ เจคเฉเจ เจ
เจฒเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเฉเจตเจพ B เจเฉเฉฑเจ เจเจ เจนเฉ เจ
เจคเฉ เจเฉเจ เจนเฉเจฐ เจธเฉเจตเจพ (เจธเจฐเจตเจฟเจธ เจฌเฉ เจฆเจพ เจเจฒเจพเจเฉฐเจ) เจธเฉเจตเจพ B เจจเฉเฉฐ เจฌเฉเจจเจคเฉ เจเจฐเจฆเฉ เจนเฉ, เจเจฟเจธ เจจเจพเจฒ เจเจน เจเจชเจฃเฉ เจฅเฉเจฐเฉเจก เจชเฉเจฒ เจจเฉเฉฐ เจเจคเจฎ เจเจฐ เจฆเจฟเฉฐเจฆเฉ เจนเฉ เจ
เจคเฉ เจนเฉเจฐ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจธเฉเจตเจพ เจเจฐเจจ เจตเจฟเฉฑเจ เจ
เจธเจฎเจฐเฉฑเจฅ เจนเฉเฉฐเจฆเฉ เจนเฉ (เจญเจพเจตเฉเจ เจเจน เจธเฉเจตเจพ B เจคเฉเจ เจจเจพ เจนเฉเจฃ)เฅค (เจจเฉเจ: เจชเฉเจเจฐเจจ เจฆเจพ เจตเจงเฉเจฐเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเฉเจฐเจตเจพ เจชเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ,
เจฎเฉเจ เจเจนเจจเจพเจ เจชเฉเจเจฐเจจเจพเจ เจฆเฉ เจฒเจพเจเฉเจเจฐเจจ เจตเฉเจฐเจตเจฟเจเจ เจจเฉเฉฐ เจเฉฑเจก เจฆเฉเจตเจพเจเจเจพ เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเฉฑเจญเจฃเจพ เจเจธเจพเจจ เจนเฉ
เจ เจจเฉเจตเจพเจฆเจ เจคเฉเจ เจชเฉ.เจเจธ
เจธเจพเจกเฉ เจฌเจฒเฉเจ 'เจคเฉ เจตเฉ เจชเฉเฉเจนเฉ:
- "เจเจธเจเฉเจ เจจเจพเจฒ เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ 'เจคเฉ เจตเจพเจชเจธ เจเจพเจ":
เจญเจพเจ 1 (เจฎเฉเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเจพเจฃ เจชเจเจพเจฃ) ,เจญเจพเจ 3 (เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจ เจคเฉ เจ เจงเจฟเจเจพเจฐ) ; - ยซ
เจเฉฐเจกเจฟเจเจ - เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจนเจฒเจเจพ เจธเฉเจตเจพ เจเจพเจฒ "; - ยซ
เจเฉฑเจ เจธเฉเจตเจพ เจเจพเจฒ เจเฉ เจนเฉ เจ เจคเฉ เจฎเฉเจจเฉเฉฐ [เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธเจฟเจเจผ เจฆเฉ เจจเจพเจฒ เจเจฒเจพเจเจก เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ] เจเจธเจฆเฉ เจเจฟเจเจ เจฒเฉเฉ เจนเฉ? ".
เจธเจฐเฉเจค: www.habr.com