เดเตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด.:
เดฒเตเดเดจเด เดถเตเดเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ (เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเด เดเดธเตเดคเดฟเดฏเตเดฏเตเดเตเดเตเด เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเตพ) เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเตเด เดเดเตเดเตพ เดจเดฟเดเตเดเดณเต เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฐเดพเดซเดฟเดเต เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเต
Istio เดเดชเดฏเตเดเดฟเดเตเดเต, เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดคเดฟเดฏ เดเดดเดฟเดตเตเดเตพ เดฆเตเดถเตเดฏเดฎเดพเดเตเด:
- เดกเตเดจเดพเดฎเดฟเดเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดฑเตเดเตเดเดฟเดเดเต: เดเดพเดจเดฑเดฟ เดฑเตเตพเดเดเตเดเตเดเตพ, เด/เดฌเดฟ เดเตเดธเตเดฑเตเดฑเดฟเดเดเต;
- เดฒเตเดกเต เดฌเดพเดฒเตปเดธเดฟเดเต: เดฒเดณเดฟเดคเดตเตเด เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเตเด, เดนเดพเดทเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเตเด;
- เดตเตเดดเตเดเดฏเตเดเตเดเต เดถเตเดทเด เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ: เดเดพเดฒเดนเดฐเดฃเดชเตเดชเตเดเตฝ, เดตเตเดฃเตเดเตเด เดถเตเดฐเดฎเดฟเดเตเดเตฝ, เดธเตผเดเตเดฏเตเดเตเดเต เดฌเตเดฐเตเดเตเดเดฑเตเดเตพ;
- เดชเดฟเดดเดตเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเต: เดเดพเดฒเดคเดพเดฎเดธเด, เดเดชเตเดเตเดทเดฟเดเตเด เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดฎเตเดคเดฒเดพเดฏเดต.
เดฒเตเดเดจเด เดคเตเดเดฐเตเดฎเตเดชเตเตพ, เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เด เดเดดเดฟเดตเตเดเตพ เดเดฟเดคเตเดฐเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดชเตเดคเดฟเดฏ เดเดถเดฏเดเตเดเตพ เดตเดดเดฟเดฏเดฟเตฝ เด
เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เด
เดคเตเดคเดฐเดฎเตเดฐเต เดเดถเดฏเด เดเดฆเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด DestinationRules
(เด
เดคเดพเดฏเดคเต เดเตเดฐเดพเดซเดฟเดเต/เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดจเดฟเดฏเดฎเดเตเดเตพ - เดเดเดฆเตเดถเด. เดตเดฟเดตเตผเดคเตเดคเดจเด.), เด
เดคเดฟเตปเตเดฑเต เดธเดนเดพเดฏเดคเตเดคเตเดเต เดเดเตเดเตพ 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 เดคเดฒเดเตเดเตเดเตเดเต. เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดฑเตเตพเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟเดฏเดคเต.
เดฒเดเตเดทเตเดฏ เดจเดฟเดฏเดฎเดเตเดเตพ
เด เดคเดฟเดจเตเดถเตเดทเด เดตเตเตผเดเตเดตเตฝ เดธเตเดตเดจเด เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เด เดฏเดเตเดเต, เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดฑเตเตพเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต, เด เดธเตเดตเดจเดคเตเดคเดฟเตปเตเดฑเต เดเดฆเดพเดนเดฐเดฃเดเตเดเตพเดเตเดเดพเดฏเดฟ เดจเดฟเดถเตเดเดฏเดฟเดเตเดเดฟเดเตเดเตเดณเตเดณ เดเตเดฐเดพเดซเดฟเดเตเดเดฟเดจเต เดฌเดพเดงเดเดฎเดพเดเตเดจเตเดจ เดจเดฏเดเตเดเตพ เดจเดฎเตเดเตเดเต เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด:
เดเดธเตเดคเดฟเดฏเต เดตเดฟเดญเดตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฐเดพเดซเดฟเดเต เดฎเดพเดจเตเดเตเดฎเตเตปเตเดฑเต
เด เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด: เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดเตเดฐเดพเดซเดฟเดเตเดเดฟเตฝ เดเดธเตเดคเดฟเดฏเต เดเดฑเดตเดฟเดเดเตเดเดณเตเดเต เดธเตเดตเดพเดงเตเดจเด เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป เดเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดฐเตเดคเดฟเดฏเดฟเตฝ เดเดตเดฟเดเต เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดเตเดเดพเตฝ, เดธเดฟเดเตผเดกเดฟเดฏเดฟเตฝ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตปเดเตเดฐเตเดธเต เดเตเดฑเตเดฑเตโเดตเตเดฏเดฟเดฒเต เดฆเตเดคเดจเดพเดฃเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เด เดฏเดฏเตโเดเตเดเตเดฃเตเด เดเดพเดฐเตเดฏเด เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเดคเต.
เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดฑเตเดณเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดนเดพเดทเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพเดเตเดเต เดฒเตเดกเต เดฌเดพเดฒเตปเดธเดฟเดเดเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด เด
เดคเต เดธเตเดตเดจ เดธเดเดญเดตเด เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดเต เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดคเต เดจเตเดเดพเตป เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต (
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
เด
เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด: เดคเดฒเดเตเดเตเดเตเดเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฎเตเดฒเตเดฏเดเตเดเตพ เดเตเตผเดเตเดเดพเดจเตเด เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดจเตเดฐเดฟเดเตเดเต เดซเดฒเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเดจเตเด, เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด
เดชเตเดคเตเดตเต, เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดฑเตเตพเดธเดฟเดจเต เดฒเตเดกเต เดฌเดพเดฒเตปเดธเดฟเดเดเต เดฎเตเดเดฒเดฏเดฟเตฝ เดเตเดเตเดคเตฝ เดเดดเดฟเดตเตเดเดณเตเดฃเตเดเต - เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพเดเตเดเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด
เดตเตเตผเดเตเดตเตฝ เดธเตผเดตเตเดธเต เดเตเดเตเดคเตฝ เดชเด เดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตปเตเดฑเต "เดชเดเตเด เดชเดคเดฟเดชเตเดชเตเด" เด เดจเตเดฌเดจเตเดง เดเตเดฐเดพเดซเดฟเดเต เดฆเดฟเดถเดพ เดจเดฟเดฏเดฎเดตเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเด:
$ 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-เดฒเตเดเต เดเดเตเดเตพ เดเดคเต เดจเตเดเตเด, เด
เดตเดฟเดเต เดจเดฟเดฏเดฎเดเตเดเตพ 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
เดเตเดฐเดพเดซเดพเดจเดฏเดฟเดฒเต เดซเดฒเดเตเดเตพ เดจเตเดเตเดเดพเด, เด
เดตเดฟเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดฌเดเตเดเดณเตเดณเตเดณ เดชเดคเดฟเดชเตเดชเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด (buggy
) ~60% เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพเดเตเดเต เดชเดฐเดพเดเดฏเด เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เด เดชเดฐเดพเดเดฏเดเตเดเดณเตเดจเตเดจเตเด เด
เดจเตเดคเดฟเดฎ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเต เดฌเดพเดงเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เด
เดตเตผ เดเดฐเต เดฑเตบ เดเตเดฏเตเดฏเตเดจเตเดจ เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเต เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจเต.
sa-logic เดธเตเดตเดจเดคเตเดคเดฟเตปเตเดฑเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดคเดฟเดชเตเดชเตเดเดณเตเดเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดชเตเดฐเดคเดฟเดเดฐเดฃเดเตเดเตพ
เดเดเตเดเดณเตเดเต เดธเตเดตเดจเดเตเดเดณเตเดเต เดฆเตเดคเดจเตเดฎเดพเตผเดเตเดเต เดตเตเตผเดเตเดตเตฝ เดธเตผเดตเตเดธเต เดเดเตเดเดจเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดเตเดเตพ เดเดฆเตเดฏเด เดเดตเดฟเดเต เดเดฃเตเดเต: เดเดชเตเดชเตเตพ 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
), เดเดคเต เดเดฐเต เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดฒเตเดเตเดเต เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเตปเตเดฑเต เดเดฐเต เดเดชเดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เด
เดฏเดฏเตเดเตเดเตเดจเตเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เดถเดคเดฎเดพเดจเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต.
เดฎเตเดฎเตเดชเดคเตเดคเต เดตเดฟเตผเดเตเดเตเดตเตฝ เดธเตผเดตเตเดธเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เด
เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด 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
เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเต VirtualService เดเด:
$ kubectl delete deployment sa-logic-buggy
deployment.extensions โsa-logic-buggyโ deleted
$ kubectl delete virtualservice sa-logic
virtualservice.networking.istio.io โsa-logicโ deleted
เดธเตผเดเตเดฏเตเดเตเดเต เดฌเตเดฐเตเดเตเดเดฑเตเด เดฌเตพเดเตเดเตเดนเตเดกเต เดชเดพเดฑเตเดฑเตเดฃเตเดเดณเตเด
เดธเตเดตเดฏเด เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดจเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดฎเตเดเตเดฐเต เดธเตผเดตเตเดธเต เดเตผเดเตเดเดฟเดเตเดเตเดเดฑเดฟเดฒเต เดฐเดฃเตเดเต เดชเตเดฐเดงเดพเดจ เดชเดพเดฑเตเดฑเตเดฃเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เดเดเตเดเตพ เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเต (เดธเตเดตเดฏเด เดธเตเดเดชเตเดชเตเดเตเดคเตเดคเตฝ) เดธเตเดตเดจเดเตเดเดณเต.
เดธเตผเดเตเดฏเตเดเตเดเต เดฌเตเดฐเตเดเตเดเตผ ("เดธเตผเดเตเดฏเตเดเตเดเต เดฌเตเดฐเตเดเตเดเตผ") เด
เดจเดพเดฐเตเดเตเดฏเดเดฐเดฎเตเดจเตเดจเต เดเดฐเตเดคเตเดจเตเดจ เดเดฐเต เดธเตเดตเดจเดคเตเดคเดฟเตปเตเดฑเต เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเดฒเตเดเตเดเต เดตเดฐเตเดจเตเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดเตเดฒเดฏเตปเตเดฑเต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เด เดธเตเดตเดจเดคเตเดคเดฟเตปเตเดฑเต เดเดฐเตเดเตเดฏเดเดฐเดฎเดพเดฏ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดฎเตเดชเตเตพ เด
เดคเต เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเดพเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต (เดเดคเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดชเตเดฐเดคเดฟเดเดฐเดฃเดเตเดเดณเตเดเต เดถเดคเดฎเดพเดจเด เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต). (เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด: เดชเดพเดฑเตเดฑเตเดฃเดฟเตปเตเดฑเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด เดเดฃเตเดเตเดคเตเดคเดพเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,
เดฌเตพเดเตเดเตเดนเตเดกเต ("เดตเดฟเดญเดเดจเด") เดฎเตเดดเตเดตเตป เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเตเดฏเตเด เดฌเดพเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดจ เดชเดฐเดพเดเดฏเดเตเดเดณเต เดเดฑเตเดฑเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเตผเดตเตเดธเต เดฌเดฟ เดคเดเดฐเดพเดฑเดฟเดฒเดพเดฏเดฟ, เดฎเดฑเตเดฑเตเดฐเต เดธเตเดตเดจเด (เดธเตผเดตเตเดธเต เดฌเดฟเดฏเตเดเต เดเตเดฒเดฏเตปเตเดฑเต) เดธเตผเดตเตเดธเต เดฌเดฟ-เดฒเตเดเตเดเต เดเดฐเต เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเตเดจเตเดจเต, เดเดคเต เด
เดคเดฟเตปเตเดฑเต เดคเตเดฐเตเดกเต เดชเตเตพ เดคเตเตผเดจเตเดจเตเดชเตเดเตเดเดฏเตเด เดฎเดฑเตเดฑเต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพเดเตเดเต เดธเตเดตเดจเด เดจเตฝเดเดพเดคเดฟเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต (เด
เดตเตผ เดธเตผเดตเตเดธเต เดฌเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณเดคเดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเตเดฒเตเด). (เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด: เดชเดพเดฑเตเดฑเตเดฃเดฟเตปเตเดฑเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด เดเดฃเตเดเตเดคเตเดคเดพเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,
เด เดชเดพเดฑเตเดฑเตเดฃเตเดเดณเตเดเต เดจเดเดชเตเดชเดพเดเตเดเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดเดพเตป เดเดดเดฟเดตเดพเดเตเดเตเด, เดเดพเดฐเดฃเด เด
เดต เดเดฃเตเดเตเดคเตเดคเดพเตป เดเดณเตเดชเตเดชเดฎเดพเดฃเต
เดตเดฟเดตเตผเดคเตเดคเดเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟ.เดเดธเต
เดเดเตเดเดณเตเดเต เดฌเตเดฒเตเดเดฟเดฒเตเด เดตเดพเดฏเดฟเดเตเดเตเด:
- "เดเดธเตเดฑเตเดฑเดฟเดฏเต เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเตเดเตเดฐเตเดธเตผเดตเตเดธเตเดเดณเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเตเด":
เดญเดพเดเด 1 (เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเตเดทเดคเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฎเตเดเด) ,เดญเดพเดเด 3 (เดเดงเดฟเดเดพเดฐเดฟเดเดคเดฏเตเด เด เดเดเตเดเดพเดฐเดตเตเด) ; - ยซ
เดเดพเดฒเดเด - เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเดณเตเดณ เดฒเตเดฑเตเดฑเตเดตเตเดฏเตเดฑเตเดฑเต เดธเตผเดตเตเดธเต เดฎเตเดทเต "; - ยซ
เดเดจเตเดคเดพเดฃเต เดเดฐเต เดธเตผเดตเตเดธเต เดฎเตเดทเต, เดเดจเตเดคเตเดเตเดฃเตเดเต เดเดจเดฟเดเตเดเต เดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต [เดฎเตเดเตเดฐเต เดธเตผเดตเตเดธเตเดเดณเตเดณเตเดณ เดเดฐเต เดเตเดฒเตเดกเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต]? ".
เด เดตเดฒเดเดฌเด: www.habr.com