α
αααΆαα αααααα:
ααΎαααααααΉαα’αααααΆα’αααααααααΎααΆαααααααα
ααΆαααααααα (αααα αΆααααααΆαα Kubernetes αα·α Istio) ααΈααααΆαα
ααΆααααααααααα ααΆα ααα
ααΆαα½αααΉα Istio αααααααΆαααααΈααα α‘αΎααα αααα»αα αααααααΎααααΈαααααα
- ααααΎαβααΆαβααααΎβααΆααααα: ααΆαααΆααα αα Canary, ααΆαααααΎααααα 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
, - Pods ααΆαααααΆααα½αα
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 αα½ααααααααΎααααΎααΆαααααααααΆαα"α
ααΎαααΉααα αααααΈαααααΆαα½αααΉααααα»αααααααα»ααααααΆαααΌαααααΆαααΎ hash (ααΆααααααΆαα»αααααΆα Hash ααΆααααΆαα)... αααα»αααααΈβααα ααααΎβααΈβα’αα·αα·ααβααΌα ααααΆβααααΌαβααΆαβααααΎβαα βααααα»βααΆααααααβααΌα ααααΆαααααααααααααααααα·αααααΆααααααααΆαα»αααααΌαααΆαααααΎ - α§ααΆα ααα ααααααΆ HTTP α ααΆαα’αα»αααααααααααΎ DestinationRules α
αααααΆαααβααααα
αααααΆααααΈ ααααΆαα·αααα·α ααΆαααααΎααααΎαα ααΆααααααΆαααααααα ααααΆα αααααααΎ 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 - hash ααΉαααααΌαααΆααααααΎααααααα’ααααΎααΆαα·ααΆααααααααΆ 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
ααΆααααα»ααααα αΆααα ααααΆαααααα·αααα·ααααα»αααΆαα’αα»αααα
ααΆαααΆαααααααα ("ααΆαααΆαααΆα") α¬ααΆααααα»ααααα αΆαα ("αααα αα") ααααΎαααα»αααααΈαααααΎαα ααααΆαααααααΆαααααΆααααααΌαααα·αααααααααα·ααααααΆαααααα’αααααααΎααααΆααα α»ααααααα ααΎααααΈααααΎααΌα αααα ααΎααααα½α ("αααα αα") ααααΎαα ααααΈααΈααΈααααααΆαααααΆααααααΌααααα ααααΆαααααΌαααΆαααααΎα‘αΎα α αΎααα·αα·αααααΎααααα·ααΆαα αα·ααΆαα±ααααΆαααα αααααΊααΆαααααααα αααα·αααααα’αααααααΎαααΎααααα αΆααααΆαααααα»α α αΎαααααΎααΆαααααΎαα»αααΆααααα»αααααααααααΆααααααααααααααααααΆαααααΆααααΆααα’αΆα αα·αα·αααααΎαααΆααΆαααα
ααΎααααΈααΆαααααααααΆααΈαααΌααααα
αααα»ααααααααΆα α
αΌαααΎααααααΎαα§ααΆα αααααΈααΈααα 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
RΠRΞΌSΠRΠRΡSΠ sa-logic
αααααααααα
pods ααΆαα½αααααΆααα½αα app=sa-logic
ααΌα
ααααααααΎααΆααα’ααααΉαααααΌαααΆαα
ααα
αΆααααα»αα
ααααααααΈααΆααα’ααα
... ααα»ααααααΎαα
ααααααΎααααΎαα
ααΆαα v1 instances α αΎααααα»ααααα
αΆαααα
v2 instancesα
ααΎαβααΉαβαααααα
βααΆαβααΆβααΆαβααα 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
) αααααααΌααααα key-value ααα instances ααααΌαααααααΌαααα ααΎααααΈααααΆαααΆααααααα½ααααααα»αααα
α’αα»ααααααΆαααααααα ααΆαααααααααααααααΎααΆααααααααΆααΆααααααα
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created
α₯α‘αΌαβαααβαααα»αβααβααααΌαβααΆαβααααα ααΎαβα’αΆα βααααβαα βαα»α αα·αβαααααβαα ααΆαααααααα VirtualService ααΎααααΈβα’αα»ααααβα αααΆααβα ααααβααααΎβαα sa-logic ααΌα ααααβαα½αβααΆα
- ααΆααααααΌααα
ααΆααααααααααα½αα
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 ααααΌαααΆαα’αα»ααααα
ααααααααααααααααΆααααααααααΎαα αααααΆ sa-web-app
ααααΎααααΎαα
sa-logic
ααΆαα
ααΆαααα sidecar Envoy ααα - ααΆαααα VirtualService - ααααΌαααΆαααααααα
ααΆααααααααααΎααααΈαααααΌαααααΎαα
αααα»ααα v1 αα·ααααα»ααααα
αΆααααααΎαα
αααα»ααα v2 ααααααΆαααα sa-logic
.
αααα»αααΉα α’ααααααα ααααΆαα·ααα½α α αΎαααΆααααΆαααααα·αααα·αααΊααΆααααα αα αααα»αααααααααααΆαα ααΎαααΉααααααΈαααΆααααα·ααΆαααΆαα½ααααα·αααΆα’ααα αΆααααααααα
ααΆαα ααααααΆα Canary
Canary Deployment ααΊααΆααααΎαααΆαααααΆαααΆααα ααααΌαααααααααΈαααααααα·ααΈαα½ααα ααΆααα’αααααααΎααααΆαααα½αα ααα½αααΌα α ααΆβααααΌαβααΆαβααααΎβααΎααααΈβααααΎβα±ααβααααΆααβααΆβαα·αβααΆαβαααα αΆβα’αααΈβαα βαααα»αβααΆαβα ααβααααΆα α αΎαβαααααΆααβααΈβαααβαααβααΆαβαααα»αβα α·αααβααΎβαα»αααΆα (ααΆαβα ααβααααΆα) ααααβααΆ αα½α βα αΎαβα ααα αΆαβααΆβαα βα’αααβααααΎβαααααβααααΠΎαααααα·αααααααΆαα
ααΎααααΈαααα αΆαααΈααΆαααΎαααααΎαααΆα Canary ααΎαααΉαααααααααΎααΆαααΆαα½ααααα»ααααα½αα buggy
Ρ sa-logic
.
αα»αααααααααΆααααααααΆααΎααΏαααΌα
ααΆα
α αΎαααααΎααααΆαα 20% ααα’αααααααΎααααΆαααα
ααΆαααααααααααΆαααα α»α (ααΆααΉαααααΆαα±ααααΆαααααΎαααΆα Canary ααααααΎα) α αΎα 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 ααΎαααααΎαααΆα Canary rolloutsα αααα»αααααΈααα ααΎαααΆαααααα½ααααααααΆαααααααΆαα»αααααααα αΆααααααΉα 20% ααα’αααααααΎααααΆααα α’ααα αΆαααααα! α₯α‘αΌαααα αααα»ααααααααααΈααΆααα’αα αα ααααααααΎααα·αααααΆααα’αααΈααΌαααααααΎα (αα·ααΆααααααΆαααα - ααΆαα·α αα ααΆα...) ααΎαα’αΆα ααααΎααΆααααα»α αα·α Canary rollouts α
α’ααααα αα·αααααΆααΆαααααααα
ααα»ααααααα α»ααα·αααααααααα
αααα
αααα»αααΌααααααα αα
αααα»ααααααΈααΈ "
αααααΆααααΆααααα αΆα ααΎαααΉαααααααααΎαααααααα αΆαααα 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
α§ααααααααααααααααΈ αα·αααααΌααααΆαααααΆαα
ααΎααααα»ααα·ααΆαα’αααΈααααΌααααΆααααΈααα αααα»αααααΆααααααααααΈααααΌααααΆαααααααα’αα»ααααΆαα±ααα’ααααααααα ααΆαααΌαααΆαααΎαα‘αΎααα·αααααααα½αα―αα (ααΆαααααΆααΆαααααααα½αα―α) ααααΆααααα
α’ααααααααααααααΈ ("α§ααααααααααααααααΈ") ααααΎααΎααααΈαααα
ααααααΎαααα
αΌααααααα»αα§ααΆα αααααααααΆαααααααααααΌαααΆαα
αΆαααα»αααΆαα·αααα’ α αΎαααααΆαααΆα‘αΎααα·α ααααααααααΎααααα’αα·αα·ααααααΌαααΆααααααΌααααααα
ααΆααααααΈαααααΆααα»αααΆαααα’ααααααΆααααααα (ααααααααΎαααΆαααααααΆαααααΎαααααααααααα)α (α
αααΆαα ααΆααα·αααααΆαααα’α·ααααααααααααααααΌα’αΆα
ααααΌαααΆαααααΎαα§ααΆα αααα
ααααΈαααααα ("ααΆαααΆα") ααααΆα
αααΆααααΆαααααααααΆααααααΈααΆααααααΆαααααααααααααααΆααααΌαα α§ααΆα ααα ααααΆ B ααααΌαααΆαααΌα
α αΎαααααΆαααααααααααα (α’αα·αα·ααααααααααΆαααα B) ααααΎααααΎαα
ααααΆαααα B ααααααααΆαα±ααααΆα’ααααααΆαα αα·ααα·αα’αΆα
αααααααααΆααααΎααααααααααΆααα (αααααΈααΆααΆαα·ααααααααΈααααΆαααα B)α (α
αααΆαα ααΆααα·αααααΆαααα’α·ααααααααααααααααΌα’αΆα
ααααΌαααΆαααααΎαα§ααΆα αααα
αααα»αααΉααα»αα
ααααααααΆααααα’α·αααααΆαα’αα»ααααααααααΌααΆααααα αααααααΆααΆααααα½ααα
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- "αααααααα
ααααΆααααααααΆαααΌα
ααΆαα½α Istio"α
αααααααΈ 1 (ααΆαααααΆαα’αααΈααααααααααΆααα) ,αααααααΈ 3 (ααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆα) ; - Β«
ααααα - ααααΆααααααΆααααααααααΆααααααΆαα Kubernetes Β» - Β«
ααΎα’αααΈαα ααΆααααΆααααΆαα α αΎαα ααα»α’αααΈααΆαααΆαααα»αααααΌαααΆα [αααααΆαααααααα·ααΈαααααΆαα½αααΈααααΌααΊααΈα]? "α
ααααα: www.habr.com