ããŒãã 翻蚳ã:
ãŸãããã®èšäºã§ã¯ãªããžããªã®æ§æ (Kubernetes ããã³ Istio ã®ãããã§ã¹ã) ã䜿çšãããŠããããšã«ã泚æããŠãã ããã
亀é管ç
Istio ã§ã¯ã次ã®æ©èœãæäŸããæ°ããæ©èœãã¯ã©ã¹ã¿ãŒã«è¡šç€ºãããŸãã
- åçãªã¯ãšã¹ãã«ãŒãã£ã³ã°: ã«ããªã¢ ããŒã«ã¢ãŠããA/B ãã¹ãã
- è² è·åæ£: ã·ã³ãã«ã§äžè²«æ§ããããããã·ã¥ã«åºã¥ããŠããŸãã
- 転ååŸã®å埩: ã¿ã€ã ã¢ãŠããåè©Šè¡ããµãŒããã ãã¬ãŒã«ãŒã
- ãã©ã«ãã®æ¿å ¥: é 延ããªã¯ãšã¹ãã®ãããããªã©ã
èšäºã®ç¶ããšããŠãéžæããã¢ããªã±ãŒã·ã§ã³ãäŸãšããŠäœ¿çšããŠãããã®æ©èœã説æããéäžã§æ°ããæŠå¿µã玹ä»ããŸãã ãã®ãããªã³ã³ã»ããã®æåã®ãã®ã¯ã DestinationRules
(ã€ãŸãããã©ãã£ãã¯/ãªã¯ãšã¹ãã®åä¿¡è
ã«é¢ããã«ãŒã« - ãããã®ç¿»èš³)ããããå©çšã㊠A/B ãã¹ããæå¹ã«ããŸãã
A/B ãã¹ã: å®éã® DestinationRules
A/B ãã¹ãã¯ãã¢ããªã±ãŒã·ã§ã³ã« 100 ã€ã®ããŒãžã§ã³ããã (éåžžã¯èŠèŠçã«ç°ãªããŸã)ãã©ã¡ãããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãåäžããããã XNUMX% ããããªãå Žåã«äœ¿çšãããŸãã ãããã£ãŠãäž¡æ¹ã®ããŒãžã§ã³ãåæã«å®è¡ããã¡ããªã¯ã¹ãåéããŸãã
A/B ãã¹ãã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«å¿ èŠãªããã³ããšã³ãã® XNUMX çªç®ã®ããŒãžã§ã³ããããã€ããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ kubectl apply -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions/sa-frontend-green created
ç·è²ã®ããŒãžã§ã³ã®å±éãããã§ã¹ãã¯ã次㮠XNUMX ã€ã®å Žæã§ç°ãªããŸãã
- ç»åã¯å¥ã®ã¿ã°ã«åºã¥ããŠããŸã -
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 ã䜿çšããŠå®è£ ãããŸãã
å®å ã«ãŒã«
åŸã« ä»®æ³ãµãŒãã¹ ç®çã®ãµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ããŸãããDestinationRules ã䜿çšããŠããã®ãµãŒãã¹ã®ã€ã³ã¹ã¿ã³ã¹å®ãŠã®ãã©ãã£ãã¯ã«é©çšãããããªã·ãŒãå®çŸ©ã§ããŸãã
Istio ãªãœãŒã¹ã䜿çšãããã©ãã£ãã¯ç®¡ç
泚æ: ããã§ã¯ããããã¯ãŒã¯ ãã©ãã£ãã¯ã«å¯Ÿãã Istio ãªãœãŒã¹ã®åœ±é¿ããããããã瀺ãããŠããŸãã æ£ç¢ºã«èšããšãã©ã®ã€ã³ã¹ã¿ã³ã¹ã«ãªã¯ãšã¹ããéä¿¡ãããã¯ãCRD ã§æ§æããã Ingress Gateway ã® Envoy ã«ãã£ãŠæ±ºå®ãããŸãã
å®å
ã«ãŒã«ã䜿çšãããšãäžè²«ããããã·ã¥ã䜿çšããåããµãŒãã¹ ã€ã³ã¹ã¿ã³ã¹ãåããŠãŒã¶ãŒã«å¿çããããã«è² è·åæ£ãæ§æã§ããŸãã 次ã®æ§æã«ããããããå®çŸã§ããŸã (
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 ã«ã¯è² è·åæ£ã®åéã§ããå€ãã®æ©èœããããŸã - 詳现ã«ã€ããŠã¯ã
VirtualService ã«ã€ããŠããã«åŠç¿ããåã«ã次ã®ã³ãã³ããå®è¡ããŠãã¢ããªã±ãŒã·ã§ã³ã®ãã°ãªãŒã³ ããŒãžã§ã³ããšå¯Ÿå¿ãããã©ãã£ãã¯æ¹åã«ãŒã«ãåé€ããŸãããã
$ 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
ãã©ãŒãªã³ã°: ä»®æ³ãµãŒãã¹ã®å®è·µ
ã·ã£ããŠã€ã³ã° (ãã·ãŒã«ãã) ãŸãã¯ãã©ãŒãªã³ã° (ããã©ãŒãªã³ã°ã) ãšã³ããŠãŒã¶ãŒã«åœ±é¿ãäžããã«æ¬çªç°å¢ã§ã®å€æŽããã¹ããããå Žåã«äœ¿çšãããŸãããããè¡ãã«ã¯ãå¿ èŠãªå€æŽãå ãããã XNUMX çªç®ã®ã€ã³ã¹ã¿ã³ã¹ã«ãªã¯ãšã¹ããè€è£œ (ããã©ãŒãªã³ã°ã) ãããã®çµæã確èªããŸãã ç°¡åã«èšããšãããã¯ãååãæãéèŠãªåé¡ãéžæããå®éã«ã¯èª°ãã¬ãã¥ãŒã§ããªããããªå·šå€§ãªåã®å¡ã®åœ¢ã§ãã«ãªã¯ãšã¹ããäœæãããšãã§ãã
ãã®ã·ããªãªãå®éã«ãã¹ãããããã«ããã°ãå«ã SA-Logic ã® XNUMX çªç®ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸããã (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 ã€ã³ã¹ã¿ã³ã¹ã«ãã©ãŒãªã³ã°ããå¿
èŠããããŸãã
ããã¯ãVirtualService ãš 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
ãµãã»ãããå®çŸ©ãããã®ã§ã次ã¯ãsa-logic ãžã®ãªã¯ãšã¹ãã«ã«ãŒã«ãé©çšããããã« VirtualService ãæ§æããŠã次ã®ããã«ããããšãã§ããŸãã
- ãµãã»ããã«ã«ãŒãã£ã³ã°ããã
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-logic ãµãŒãã¹ã®ããŸããŸãªããŒãžã§ã³ã®æåããå¿ç
ããã§ã¯ãVirtualService ããµãŒãã¹ã® Envoy ã«ã©ã®ããã«é©çšãããããåããŠç¢ºèªããŸããã sa-web-app
ã«ãªã¯ãšã¹ããåºããŸã sa-logic
ããµã€ãã«ãŒ Envoy ãçµç±ããŸããããã¯ãVirtualService ãä»ããŠããªã¯ãšã¹ãã v1 ãµãã»ããã«ã«ãŒãã£ã³ã°ãããªã¯ãšã¹ãããµãŒãã¹ã® v2 ãµãã»ããã«ãã©ãŒãªã³ã°ããããã«æ§æãããŠããŸãã sa-logic
.
ä»®æ³ãµãŒãã¹ã¯åçŽã ãšãã§ã«æãããŠãããããããŸããã 次ã®ã»ã¯ã·ã§ã³ã§ã¯ãããããæ¬åœã«çŽ æŽããããã®ã§ããããšãè¿°ã¹ãŠãããã«è©³ãã説æããŸãã
ã«ããªã¢ã®ããŒã«ã¢ãŠã
ã«ããªã¢ ãããã€ã¡ã³ãã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ãå°æ°ã®ãŠãŒã¶ãŒã«ããŒã«ã¢ãŠãããããã»ã¹ã§ãã ããã¯ããªãªãŒã¹ã«åé¡ããªãããšã確èªããããã«äœ¿çšããããã®åŸããã®ïŒãªãªãŒã¹ã®ïŒå質ã«ãã§ã«èªä¿¡ãæã£ãŠãä»ã®ãŠãŒã¶ãŒã«é åžããŸããПãã倧ããªèŽè¡ã
ã«ããªã¢ã®ããŒã«ã¢ãŠããå®èšŒããããã«ããµãã»ããã®äœ¿çšãç¶ç¶ããŸãã buggy
Ñ sa-logic
.
äºçŽ°ãªããšã§æéãç¡é§ã«ãããããã«ãŠãŒã¶ãŒã® 20% ããã°ã®ããããŒãžã§ã³ (ãããã«ããªã¢ ããŒã«ã¢ãŠããè¡šããŸã) ã«éããæ®ãã® 80% ãéåžžã®ãµãŒãã¹ã«éããŸãããã ãããè¡ãã«ã¯ã次㮠VirtualService (
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
VirtualServices ã«ããã«ããªã¢ ããŒã«ã¢ãŠããå¯èœã«ãªããŸãããã®å Žåãåé¡ã®æœåšçãªåœ±é¿ããŠãŒã¶ãŒ ããŒã¹ã® 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 ç§ä»¥äžåŸ ã€å¿ èŠããªãã倱æããå Žåã«å¿çãååŸããããã« XNUMX åã®æ°ããªè©Šè¡ãè¡ããããå¿çãæåããå¯èœæ§ãé«ãŸãããã®æé©åã§ãã
次ã®ã³ãã³ãã䜿çšããŠãæŽæ°ãããæ§æãé©çšããŸãã
$ kubectl apply -f resource-manifests/istio/retries/sa-logic-retries-timeouts-vs.yaml
virtualservice.networking.istio.io/sa-logic configured
ãããŠãæåããå¿çã®æ°ãäžèšã®ããã«å¢å ããŠããããšã Grafana ã°ã©ãã§ç¢ºèªããŸãã
ã¿ã€ã ã¢ãŠããšåè©Šè¡ãè¿œå ããåŸã®æåå¿ççµ±èšã®æ¹å
次ã®ã»ã¯ã·ã§ã³ã«é²ãåã« (ãããããã®èšäºã®æ¬¡ã®éšåã«é²ãã§ãã ããããã®èšäºã§ã¯ãã以äžå®éçãªå®éšã¯è¡ããªãããã§ããããããã®ç¿»èš³ã§ãã)ã æ¶å» 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
ãµãŒããããã¬ãŒã«ãŒãšãã«ã¯ãããã®ãã¿ãŒã³
ããã§ã¯ãèªå·±å埩ãå®çŸãããã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã® XNUMX ã€ã®éèŠãªãã¿ãŒã³ã«ã€ããŠèª¬æããŸãã (èªå·±ä¿®åŸ©) ãµãŒãã¹ã
ãµãŒããããã¬ãŒã«ãŒ (ããµãŒããããã¬ãŒã«ãŒã) ç°åžžãšã¿ãªããããµãŒãã¹ã®ã€ã³ã¹ã¿ã³ã¹ã«éä¿¡ããããªã¯ãšã¹ããçµäºããã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãããã®ãµãŒãã¹ã®æ£åžžãªã€ã³ã¹ã¿ã³ã¹ã«ãªãã€ã¬ã¯ããããéã«ããã埩å
ããããã«äœ¿çšãããŸã (ããã«ãããæåããå¿çã®å²åãå¢å ããŸã)ã (泚: ãã¿ãŒã³ã®ãã詳现ãªèª¬æã¯ãããšãã°ã
éå£ ïŒ"ããŒãã£ã·ã§ã³"ïŒ ãµãŒãã¹é害ãã·ã¹ãã å
šäœã«åœ±é¿ãåãŒããªãããã«éé¢ããŸãã ããšãã°ããµãŒãã¹ B ãå£ããŠãããå¥ã®ãµãŒãã¹ (ãµãŒãã¹ B ã®ã¯ã©ã€ã¢ã³ã) ããµãŒãã¹ B ã«ãªã¯ãšã¹ããè¡ããšããµãŒãã¹ B ã®ã¹ã¬ãã ããŒã«ãæ¯æžããä»ã®ãªã¯ãšã¹ã (ãµãŒãã¹ B ããã®ãã®ã§ãªãå Žåã§ã) ãåŠçã§ããªããªããŸãã (泚: ãã¿ãŒã³ã®ãã詳现ãªèª¬æã¯ãããšãã°ã
ãããã®ãã¿ãŒã³ã®å®è£
ã®è©³çŽ°ã¯ã以äžã§ç°¡åã«èŠã€ããããšãã§ããããçç¥ããŸãã
翻蚳è ããã®è¿œäŒž
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- ãIstio ã§ãã€ã¯ããµãŒãã¹ã«æ»ãã:
ããŒã 1 (äž»ãªæ©èœã®çŽ¹ä») ,ããŒã 3 (èªèšŒãšèªå¯) ; - «
Conduit - Kubernetes çšã®è»œéãµãŒãã¹ ã¡ãã·ã¥ "; - «
ãµãŒãã¹ ã¡ãã·ã¥ãšã¯äœã§ãã? [ãã€ã¯ããµãŒãã¹ãåããã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ã«] ãµãŒãã¹ ã¡ãã·ã¥ãå¿ èŠãªçç±ã¯äœã§ãã? 'ã
åºæïŒ habr.com