āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻ¤ā§ Istio+Kiali āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž #1: āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸āĻŋāĻāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ #2-āĻ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž: āĻāĻ°ā§āĻā§ āĻ°ā§āĻ˛āĻāĻāĻāĻ¸ - (āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ)
- āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸-āĻāĻā§āĻ¸ āĻāĻ¸ā§āĻāĻŋāĻ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻĒāĻ¨āĻŋ āĻĒāĻĄāĻŧāĻŦā§āĻ¨
āĻāĻ¸āĻ¤āĻŋāĻ
āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒāĻĄāĻŧā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ¸ā§āĻāĻŋāĻ āĻā§ āĻāĻžāĻ¨ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦā§āĻĻāĻ¨
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻĄā§ āĻĻā§āĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§: āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ¸ā§āĻāĻŋāĻ-āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĨ¤
āĻāĻŽāĻ°āĻž āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ-āĻāĻ¨āĻāĻŋāĻ¨ā§āĻā§āĻ¸ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻžāĻāĻĨāĻ¨ āĻĒāĻĄ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ nginx āĻĒāĻĄ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻĄā§ āĻ°āĻŋāĻĄāĻžāĻāĻ°ā§āĻā§āĻ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ¯āĻŧāĻžāĻŽāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§:
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ˛āĻžāĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ¨āĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻĻā§āĻā§āĻ¨
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽāĻžāĻ¤ā§āĻ° 2āĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻ¸ā§āĻāĻŋāĻ āĻ¸āĻžāĻāĻĄāĻāĻžāĻ° āĻ¸āĻŦā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§:
āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§ āĻāĻ¸ā§āĻāĻŋāĻ āĻā§āĻāĻāĻ¯āĻŧā§ āĻ˛ā§āĻĄāĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ istio-system
:
āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻĒā§āĻ°āĻāĻ¨ā§āĻŽ
āĻāĻŽāĻ°āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻāĻĒāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¯āĻž āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĒāĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻŦā§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻŦā§:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
āĻāĻŽāĻ°āĻžāĻ āĻ¯ā§āĻ āĻāĻ°āĻŦ frontend.istio-test
āĻāĻŽāĻžāĻĻā§āĻ° āĻšā§āĻ¸ā§āĻ āĻĢāĻžāĻāĻ˛ā§āĨ¤
āĻāĻŋāĻ¯āĻŧāĻžāĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽā§āĻļ āĻĻā§āĻā§āĻ¨
āĻāĻŽāĻ°āĻž āĻā§āĻ°ā§āĻ¸āĻŋāĻ, āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž, āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻāĻŦāĻ āĻāĻŋāĻ¯āĻŧāĻžāĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ
ā§āĻ¯āĻžāĻĒ āĻāĻŦāĻ āĻāĻ¸ā§āĻāĻŋāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻāĻŋ (āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§ āĻĻā§āĻā§āĻ¨)āĨ¤
istioctl dashboard kiali # admin:admin
āĻāĻŋāĻ¯āĻŧāĻžāĻ˛āĻŋ āĻŽā§āĻļā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻā§ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, 100% āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° v1 āĻ˛ā§āĻŦā§āĻ˛ āĻ¸āĻš āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ¤ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ nginx āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ āĻ¯āĻž āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§, āĻ¯āĻž āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻāĻ°ā§ āĻ˛ā§āĻŦā§āĻ˛ v1 āĻ¸āĻšāĨ¤
Kiali Istio āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻā§āĻ¸āĻ¯ā§āĻā§āĻ¤ āĻŽā§āĻļ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§āĨ¤ āĻļā§āĻ§ā§ āĻŽāĻšāĻžāĻ¨.
āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĻā§āĻāĻŋ k8s āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ v1 āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻāĻŋ v2 āĻāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻ§ā§ āĻāĻ¸ā§āĻāĻŋāĻāĻā§ āĻŦāĻ˛āĻ¤ā§ āĻšāĻŦā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻļāĻ¤āĻžāĻāĻļ āĻ āĻ¨ā§āĻ°ā§āĻ§ v2 āĻ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻ¤ā§āĨ¤
āĻ§āĻžāĻĒ 1: 10%
āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§āĻ° āĻāĻāĻ¨ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°āĻž
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
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻāĻŋ āĻ¯ā§ 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: 100%
āĻāĻāĻ¨ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻŋāĻŦā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ v2 āĻ¤ā§ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ v2 āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° 10% āĻĒāĻžāĻ āĻžāĻāĨ¤ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ 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
āĻāĻāĻ¨ āĻāĻžāĻ°ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻšā§āĻĄāĻžāĻ° āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ v2 āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
āĻšā§āĻĄāĻžāĻ° āĻāĻžāĻĄāĻŧāĻž āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻāĻāĻ¨āĻ 1/10 āĻ āĻ¨ā§āĻĒāĻžāĻ¤ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻŦā§:
āĻĻā§āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻŽāĻ¨ā§ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ v2 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ° 10% v2 āĻ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§:
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻāĻŋ āĻ¯ā§ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ v1 āĻāĻŦāĻ v2 āĻāĻāĻ¯āĻŧāĻ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ 1/10 āĻ āĻ¨ā§āĻĒāĻžāĻ¤ā§ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ v1 āĻāĻŦāĻ v2āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¯āĻĻāĻŋ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ-āĻāĻŋ2 āĻĨā§āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ-āĻāĻŋ2-āĻ¤ā§ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ 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
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻĒāĻžāĻ:
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĨā§āĻā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯
Đ āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻāĻļ āĻāĻŽāĻ°āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĻāĻŋ, āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻĻā§āĻāĻŋ k8s āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ āĻ¨ā§āĻĒāĻžāĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ°ā§āĻ¤āĻ° āĻ āĻĒā§āĻ°ā§āĻŖāĻ¤āĻž āĻāĻā§āĨ¤
Istio āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ āĻ¨ā§āĻĒāĻžāĻ¤ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž HPAs (Horizontal Pod Autoscalers) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
Istio āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋāĻ¯āĻŧāĻžāĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻžāĻ° āĻāĻā§āĻ°āĻšā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒāĻ°ā§āĻ°āĻāĻŋ āĻšāĻ˛ āĻ āĻā§āĻŽā§āĻļāĻ¨ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻŋāĻ¨āĻžāĻāĻžāĻ°āĻā§ āĻāĻ¸ā§āĻāĻŋāĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com