āĻŦāĻŋāĻāĻĻā§āĻ°āĻ. āĻ
āĻ¨ā§āĻŦāĻžāĻĻ:
āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻā§āĻāĻŋ āĻ¯ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ (āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻāĻŦāĻ āĻāĻ¸ā§āĻāĻŋāĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
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 āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĨ¤ DestinationRules āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤āĨ¤
āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ
āĻĒāĻ°ā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻāĻžāĻā§āĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯āĻž āĻāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻŦā§:
Istio āĻ¸āĻŽā§āĻĒāĻĻ āĻ¸āĻā§āĻā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯: āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ° āĻāĻĒāĻ° Istio āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻŦ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻāĻž āĻ¸āĻšāĻāĨ¤ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻ¸āĻŋāĻāĻ°āĻĄāĻŋ-āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻā§āĻāĻāĻ¯āĻŧā§āĻ¤ā§ āĻĻā§āĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšā§āĻ¯āĻžāĻļāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ (
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 āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻŦ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĒāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ 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
).
āĻ¸āĻž-āĻ˛āĻāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻĢāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻĻā§āĻā§āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻĻā§āĻ¤āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ: āĻāĻāĻ¨ sa-web-app
āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§ sa-logic
, āĻāĻāĻŋ āĻ¸āĻžāĻāĻĄāĻāĻžāĻ° āĻāĻ¨āĻāĻ¯āĻŧ-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¯āĻž - āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ - āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋāĻā§ 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
āĻāĻŦāĻ Grafana āĻā§āĻ°āĻžāĻĢā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ°ā§ āĻ¸āĻĢāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻĄāĻŧā§āĻā§:
āĻāĻžāĻāĻŽāĻāĻāĻ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻā§āĻˇā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ¸āĻĢāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ā§ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§ (āĻ
āĻĨāĻŦāĻž āĻŦāĻ°āĻ, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ
āĻāĻļā§, āĻāĻžāĻ°āĻŖ āĻāĻ¤ā§ āĻāĻ° āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻž āĻšāĻŦā§ āĻ¨āĻž - āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻŦāĻžāĻĻāĨ¤), āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž 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 āĻĨā§āĻā§ āĻ¨āĻž āĻšāĻ¯āĻŧ)āĨ¤ (āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻāĻŽāĻŋ āĻāĻ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻžāĻĻ āĻĻā§āĻŦ āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¸āĻšāĻā§ˇ
āĻ āĻ¨ā§āĻŦāĻžāĻĻāĻ āĻĨā§āĻā§ PS
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- "āĻāĻ¸āĻāĻŋāĻ āĻ¸āĻš āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨":
āĻ āĻāĻļ 1 (āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻā§āĻŽāĻŋāĻāĻž) ,āĻĒāĻžāĻ°ā§āĻ 3 (āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨) ; - ÂĢ
āĻ¨āĻžāĻ˛ā§ - Kubernetes āĻāĻ¨ā§āĻ¯ āĻšāĻžāĻ˛āĻāĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻžāĻ˛ "; - ÂĢ
āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻžāĻ˛ āĻāĻŋ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻŽāĻžāĻ° āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ [āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯]? Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com