α
αααΆαα αααααα:
ααΎααααααΎαα ααααα Kubernetes αααααΎαααΆαααΆαααααααΆα Istio αα·αα§ααΆα ααααααααα·ααΈ microservice ααΆααα·ααΆαα’αΆαααααα ααΎααααΈαααα αΆαααΈαααααααΆααααα Istio α
ααΆαα½αααΉα Istio ααΎαα’αΆα
αααααΆααααΆααααααααααΎαα±αααα
ααΌα
αααααΆααα½ααααα·αα
αΆαααΆα
αα’αα»αααααααααΆααααΌα
ααΆ ααΆαααααΆααΆαα‘αΎααα·α ααΆαα’ααααα ααΆααααααααααααΈ ααΆαααΆαααΆα ααΆααααα½ααα·αα·αααα ααΎαααΈααα ααΎαααΆαααααΎαα
αα
αααααααΆααααα αα·αααΆαααΆααα±ααααααΎααααΆααααααα·ααααααα ααΆαααααΎααααα A/B ααΆααααα»ααααα
αα αα·αααΆαααΎαααααΎαααΆα Canary α
αα
αααα»ααααααΆααααααΈ ααΎαααΉααααααααΆαααΆαα½αααΉααααααΆααα
α»αααααααα
ααΎααααΌααα
ααΆαααααααα’αΆααΈαααααα ααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆα - α αΎααα
αααα»α Istio ααΆαα·αααΆααΈαααΆαααΆαα!
ααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆααα αααα»α Istio
αααα»ααα·ααααααΏααΆαααα»αααΉαααααΌαααΆααααα»ααααα·ααααααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆαα ααΎ Istio α’αΆα αααααα’αααΈααααααΈαααααααα αα αααα·ααααΆ ααΎααααΈααααΎα±αααααααΆαααααΆαααααααΆαααΆααααααΆαααΈαααΆα α αΎαααΎαααΈααααα ααα ααΆααααα»ααααα·ααααααΆααα’ααα?
α ααααΎαααΊααΆααααα Istio ααααΆααααααΌαααΆαααα½ααα»αααααΌαα αααααααααααΆαααΆαααααααΈααααΆααααααααα’ααααα ααααΌααααΈ Envoy α αα ααααααααααΎααΆααααααααΆαααα αα½αααααααΌαααΆααααααααααΆαα αα·αα’αα»ααααΆααα½α α αΎα ααΌα ααααα’αααΈαααα’αααααααΌαααααΎααΊαααααααΌααααααΆααααααααααααααΆααα’αΆααΈαααααα
αα·αααΆβααα’βααΆαα? αααααΎαααΆααααα»α!
ααΆααααααααααΆααααΆαααααΉαααααΌαααΆαα½α Auth0
αααα»αααΆαααΆαααΆαααΈααααααααΆααααΆααααααααααα’ααααααααΆα αα·ααα·αααα·α
αΌαααααΎααααΆαα ααΎαααΉαααααΎ Auth0 αααααΆαααααααΆααααα ααΆααααααααα·α
αΆααααΆααααα»αααΆαααααΎααααΆαα α αΎααααα»αααααΆααααα
αΌαα
α·αααααΆα ααααααΆαααΆααααα αααααΆαααααΌα
ααααΆα’αΆα
ααααΌαααΆαα’αα»ααααα
ααααα’αααΈαααααααααα
ααΎααααΈα
αΆααααααΎα ααΌαα
αΌααα
ααΆαα
αααααΆαααααααααα
αααα»αα―αααΆα resource-manifests/istio/security/auth-policy.yaml
(
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: auth-policy
spec:
targets:
- name: sa-web-app
- name: sa-feedback
origins:
- jwt:
issuer: "https://{YOUR_DOMAIN}/"
jwksUri: "https://{YOUR_DOMAIN}/.well-known/jwks.json"
principalBinding: USE_ORIGIN
ααΆαα½αααΉαααααΆααααααα Pilot (ααΆαα»αααααα½αααααααα αααααααΆααΌαααααΆαααΆααααΈαα
αααα»α Istio - αααα ααα ααααααα ) ααααααα
ααΆααααααααααααααααΎααααΈαααααααααΆααααααΎ αα»αααααααααΌααα½ααααα
ααΆααααααΆααααα sa-web-app
ΠΈ sa-feedback
. αααα»ααααααΆαα½αααααΆααα ααΆαααααααα
ααΆαααααααααα·αααααΌαααΆαα’αα»ααααα
ααααααααΆ Envoys ααα sa-frontend
α’αα»ααααΆαα±ααααΎαα
αΆαα
ααααΈ frontend αααααααΆαααΆααααααααααΆααα ααΎααααΈα’αα»αααααααααΆααα ααΌαααααΎαααΆαααΆααααααααΆα
$ kubectl apply -f resource-manifests/istio/security/auth-policy.yaml
policy.authentication.istio.io βauth-policyβ created
αααααααα αααααα αΎαααααΎααααΎ - α’αααααΉαααΎαααΆααΆαααα αααααααααΆαααΆα 401 ααααΆαααΆαα’αα»ααααΆα. α₯α‘αΌαβαααβααΌαβααααΌαβαα·αβα’αααβααααΎ frontend ααΎααααΈβαααααααααΆααβααΆαα½α Auth0α
ααΆααααααααααΆααααααΎααΆαα½α Auth0
ααΎααααΈαααααααααΆααααααΎααααα’αααααααΎααααΆααα α»αααααα α’αααααααΌααααααΎα API αααα»α Auth0 αααααΉαααααΆαα±ααααααΆαααααααααΆααααααααααΆαα (ααΆααα·αα·ααα ααααααΆααααα’α·α αα·αααΆαααΆαααααα)α ααΎααααΈαααααΎα API ααΌαα αΌααα ααΆαα Auth0 Portal > APIs > αααααΎα API α αΎαααααααααααααααααα
ααααααΆαααααΆαααα
ααΈαααααΊ α’ααααααααα’ααααααααΆαααααααΎαααΉαααααΎαα
αααααααααα
αααα»αααααααΈαα α
αΌαααΎααααααααΆααΌα
αααα
- αααααα·αααα {YOUR_AUDIENCE}
ααααααΆααααα’α·αααααα ααααααααΎαααααΌαααΆαααΆαααΈααΆαααα ααΎαα·ααααα Auth0 αα αααα»αααααα ααΆααααααα·ααΈ - ααααΎαααΎα αααααα·ααΈααΆααααα (αααααΎααααααααααααααααα·αα½αααΆαα½α API) α
αα ααΈαααααΎαααΉααααααα
- αααα {YOUR_DOMAIN}
- ααααααααΆααα’αα·αα·ααα {YOUR_CLIENT_ID}
αααΌααα αααααα·ααΈααΆααααα αα ααΆαα’ααααα URLs α α αααα‘αααααα·ααααααΆαα’αα»ααααΆα (ααΆααααααααΆα URLs αααααΆααααΆαα α αααα‘αααααα·α) ααααααα»ααααααΎααααααΆαα URL αααααΆαα α αα½αααααααΌαααΆαααααΎαααααΆααααΈααΆααααααααααΆααααααΌαααΆααααα ααα αααα»αααααΈααααααΎαααΆααΊα
http://{EXTERNAL_IP}/callback
αα·ααααααΆαα α’αα»ααααΆα URL α αα (α’αα»ααααΆα URLs αααααΆααααΆαα αα) ααααααα
http://{EXTERNAL_IP}/logout
ααααααααα αααααααΆααα»αα
ααΆαααααΎαα αα α»ααααααααΆααααααααΆααα»α
ααααΌααα
ααΆααΆ auth0
ααααΆαα [istio-mastery]
. αα
αααα»αααΆααΆααα αααααΌαααΆααα»αααααΌαααΆαααααΆααααααΌαααΎααααΈαααααΌαα’αααααααΎααααΆαααα
ααΆαα Auth0 αααααΆααααΆααααααααααΆαα αα·αααααΎααααΆαααα·αα·ααααααααΆ JWT αααα»αααααΎαα
ααΆααααααΆααααααααααααα ααααααααααααααΌαααΆαα’αα»ααααααΌα
ααΆαααααα (
analyzeSentence() {
fetch('/sentiment', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${auth.getAccessToken()}` // Access Token
},
body: JSON.stringify({ sentence: this.textField.getValue() })
})
.then(response => response.json())
.then(data => this.setState(data));
}
ααΎααααΈααααΆααααααΌααααααααΆααα»αααΎααααΈααααΎαα·ααααααα’ααααα½ααααα»α Auth0 ααΌαααΎα sa-frontend/src/services/Auth.js
α αΎααααα½αααααααααααΎαααΆααααααααΆαααΎ (
const Config = {
clientID: '{YOUR_CLIENT_ID}',
domain:'{YOUR_DOMAIN}',
audience: '{YOUR_AUDIENCE}',
ingressIP: '{EXTERNAL_IP}' // ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»Π΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
}
αααααα·ααΈαα½α ααΆααα αΎαα αααααΆααααααααααΆαα Docker ααααα’ααααα αααα»αααΆααααααααΆααΆαααααα αα ααααααααΎα αα·αααΆαααααααΆαααΆαααααΆααααααΌααααααΆαααααΎα
$ docker build -f sa-frontend/Dockerfile
-t $DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
sa-frontend
$ docker push $DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
$ kubectl set image deployment/sa-frontend
sa-frontend=$DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
ααΆααααααααααα·ααΈ! α’αααααΉαααααΌαααΆααααααΌααααααα Auth0 αααα’αααααααΌαα αΌα (α¬α α»αααααα) αααααΆααααΈαααα’αααααΉαααααΌαααΆααααααΌααα ααααααααααααΎαααααΆααααααααααΆαααα½α α αΎαααΉαααααΌαααΆαααααΎα‘αΎαα ααααα·αααΎα’αααααΆαααααααΆααααααααΆαααααΆααααααΆαααα αααα»ααααααααααΌαααα’αααααααΆαα½α curl α’αααααΉαααα½αααΆααααααΌα 401 αααααΌαααααΆαααΆαααΆαααααΆααΆααααΎαα·αααααΌαααΆαα’αα»ααααΆαα
ααααα ααα αΆααααααΆαα - α’αα»ααααΆαααααΎα
ααΆαα’αα»ααααΆαααΆαα½α Auth0
ααΆααααααααααΆααα’αα»ααααΆαα±ααααΎααααααΆα’αααααΆααΆα’αααααααΎααααΆαα ααα»ααααααΆαα’αα»ααααΆαααΊαααααΌαα±ααααΉαααΈα’αααΈααααα½αααααΆααα·αααα·α αΌαααααΎααααΆααα Istio αααααα§ααααααααααΆααααΏαααααααααα
ααΆα§ααΆα ααα α αΌαααΎααααααΎααααα»αα’αααααααΎααααΆααααΈα (ααΌαααΎαααααΆααααΆαααΆαααααα)α
- α’αααααααΎααααΆααα (α’αααααααΎααααΆαα) β ααΆαα½αβααΉαβααΆαβα αΌαβααααΎβααβααααΆ SA-WebApp αα·α SA-Frontend;
- α’ααααααααααααα½α (α’ααααααααααααα½α) - ααΆαα½αααΉαααΆαα αΌαααααΎααααΆααααααΆααααΈα
αααα·αααααΆαα’αα»ααααΆα
ααΎααααΈαααααΎααααα»αααΆααααα ααΎαααΉαααααΎαααααααααααααΆαα’αα»ααααΆα Auth0 α αΎαααααΎ Istio ααΎααααΈαααααα±αααα½αααααΌαααααα·αααααΆαα αΌαααααΎααααΆααααααααααααΆα
ααΆαααα‘αΎα αα·αααααααα ααΆααααααααααΆαα’αα»ααααΆα Auth0
αα αααα»ααα·ααααα Auth0 ααΌαα αΌααα ααΆααααααααααααα (αααααβαααααα) αα·αααα‘αΎα ααΆαα’αα»ααααΆα 0. αααααΆααααΈααΆαααα‘αΎαααΌαα αΌααα ααΆαα ααΆαααααααααΆαα’αα»ααααΆαα αΎααα ααΈααα - αα ααΆαααααααα ααΆααααααααααααα’ααααα½ααααα α»α ααΎααααΌαααΆαααααΆα α αΎαααααΎαααΎααααααΎααααΊαα»αααααααααα (ααΆααααααβαα ααΆαααααααα). ααααΎα±αααααα»αααααα (αααα»α) α αΎαα α»α ααΎαααΌαα»α ααααα»αααα αααΆαα (α αααΆααααααααααααΆα).
ααΆααααααΎααααα»α
αα αααα»ααααααααααααααΆαα’αα»ααααΆα ααΌαα αΌααα ααΆαα αααα»α αα·ααααααΎααααα»α α’ααααααααααααα½α. αααααΆαααΎαααΉαα αΆαααα»αα’αααααααΎααααΆαααααααΆααααααααααΆααααΆααα’ααααΆα’αααααααΎααααΆααααααααΆ ααααα·αα αΆαααΆα ααααααΎααααα»ααααααααααααΆαααα½αααααα
ααααΎαααΎααααα»α α’ααααααααααααα½α, α α»α βααΎ αααααααααΆαα·αααααααααααΈα ααααααααα’αααα αα»αα±ααα’αααααααΎααααΆαααα½αα ααα½ααααααααΆααααα»αααΆαα½α ααΎααααΈααααΆααααΆαα½αααααααΌαααΆαααα·αααααΆαα αΌαααααΎααααΆααα (α’αααααααΎααααΆααααααΈα’αΆα ααααΌαααΆααααααΎααααααααΆαααα αα·ααααα Auth0 > α’αααααααΎααααΆαα > αααααΎαα’αααααααΎααααΆαα.)
ααααααβααΆαβααΆαααΆαβαααα»αβαα βααΆααβαααααΆβαααααΆααβα αΌαβααααΎααααΆαα
α’αααβααααΎβααααΌαβααΆαβααααααβαα
βαααα»αβαααα»α ααα»ααααβααααααΆαβαααβααβααααΌαβααβααααΌαβααΆαβαααα αΆαβαα
βαααα»αβαααααΆβαααααΆααβα
αΌαβααααΎαβααΆαα ααΎααααΈα’αα»αααααΆα OpenID Connect α αΎααααα»αααααααα½ααααααααααα»ααααααΎαααααΌαααΆα αα·αα·ααααααααΆααΉαααααΌαααααααααααααΆ
ααΎααααΈαααααΎαα αααΆαα ααΌαα αΌααα ααΆαα Auth0 Portal αα αααα½α, α α»α βααΎ αααααΎαα αααΆαα α αΎαααααΎαααΎαα αααΆαααααααΈααααΌα
α
ααααααΌαααΆαααααα α αΎααααααΆαα»αααΆααΆα
αααΆααααααΈα ααααααααΆαααΆαααΆααααα»α (
function (user, context, callback) {
context.accessToken['https://sa.io/group'] = user.groups[0];
return callback(null, user, context);
}
ααΆαααααααααΆααα ααΌαααααααααα»αα’αααααααΎααααΆααααααΌααααααΆαααααααααα»ααααααααααααααΆαα’αα»ααααΆα α αΎαααααααααΆαα αααα»ααααααΆαααααΆααα αΌαααααΎααΆααΆαααΆαααΆαααααΆαααααα½α (ααααααααααααααααΆ ααΆααααααΌαααΆαααα Auth0)α
αααα‘αααα ααααα αααα½α α αΎααα·αα·αααααΎαααΆα’αααααΆαα αααΆααααΈαααααααααααΆαααααΆααααΌα ααΆααααααα
- auth0-authorization-extension
- ααααααααΆαααΆαααΆααααα»α
ααααΆααβααΊβααααΆααβαααααβααΆαβαααα»αβααα½αβαααα½αβαααβα’ααααΆα auth0-authorization-extension α αΎααααααΆααααΈαααααΆααααΌαααΆαααααααααΆααΆαααΆαααΆααααα αααΆααααΈααΈαα ααααααααΊααΆαααααΆαααααΆααα αΌαααααΎαααΆαααΌα αααα
{
"https://sa.io/group": "Moderators",
"iss": "https://sentiment-analysis.eu.auth0.com/",
"sub": "google-oauth2|196405271625531691872"
// [ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ]
}
α₯α‘αΌαα’αααααααΌαααααααα
ααΆααααααααααααΌααααΈ Envoy ααΎααααΈαα·αα·αααααΎαααΆαα
αΌαααααΎααααα’αααααααΎααααΆαα ααααααα»αααΉαααααΌαααΆαααΆαα
ααααΈααΆαααΆαααΆα (https://sa.io/group
) αα
αααα»ααα·αα·ααααααααΆα
αΌαααααΎαααα‘αααααα·αα αααααΊααΆαααααΆααααααααΆααααααααααααΆααααα’αααααα
ααΆαααααααα ααΆααααααααααΆαα’αα»ααααΆααα αααα»α Istio
αααααΆααααΆαα’αα»ααααΆαα±ααααααΎαααΆα α’αααααααΌαααααΎα RBAC αααααΆαα Istioα ααΎααααΈααααΎααΌα αααααΎαααΉαααααΎααΆααααααααΌα ααΆααααααα
apiVersion: "rbac.istio.io/v1alpha1"
kind: RbacConfig
metadata:
name: default
spec:
mode: 'ON_WITH_INCLUSION' # 1
inclusion:
services: # 2
- "sa-frontend.default.svc.cluster.local"
- "sa-web-app.default.svc.cluster.local"
- "sa-feedback.default.svc.cluster.local"
ααΆαααααααα
- 1 β ααΎα RBAC αααααΆααααααααΆαααα αα·αα
αααααααααααααααΆαααΆααααα»αααΆα
Inclusion
; - 2 - ααΎαααΆααααααΈααααΆααααααααααΎαα
αααα’αα»ααααααΆαααααααα ααΆαααααααααααααααΎααΆααααααααΆααΆααααααα
$ kubectl apply -f resource-manifests/istio/security/enable-rbac.yaml
rbacconfig.rbac.istio.io/default created
ααααΆααααααΆααα’ααα₯α‘αΌααααααΆαααΆαααΆααααααααααααΆαα
αΌαααααΎααααΆαααααααα’ααααΎαα½ααΆααΈα αααααΆααα·αααα ααΆαα
αΌαααααΎααααΆααααααΆααα’ααααααΌαααΆαα αΆαααΆαα α αΎαααΉαααΆαααααααααααΎααα RBAC: access denied
. α₯α‘αΌααααα’αα»ααααΆαα±ααα
αΌαααααΎα’αααααααΎααααΆαααααααΆαααΆαα’αα»ααααΆαα
α αΌαααααΎααΆαααααααααααΆααα’αααααααΎααααΆααααααααΆα
α’αααααααΎααααΆααααΆααα’ααααααΌαααααΆααα·αααα·α αΌαααααΎααααΆαααα SA-Fronten αα·α SA-WebApp α ααΆαα’αα»αααααααααααΎααααΆα Istio ααΆααααααα
- αα½ααΆααΈααααΆαααα - ααααααα·αααα·αααα’αααααααΎααααΆααααΆα;
- ααΆαααααΆααααααΆαααα β αααααααΆααΎαα»αααΆαααα ααΆαααααα·αααα·ααααα’αααααΆα
αααααΆααα’αααααααΎααααΆααααααααΆ ααΎαααΉαα’αα»ααααΆαα±ααα
αΌαααααΎααααΆαααααα½αα
ααα½α (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: regular-user
namespace: default
spec:
rules:
- services:
- "sa-frontend.default.svc.cluster.local"
- "sa-web-app.default.svc.cluster.local"
paths: ["*"]
methods: ["*"]
αα·αααΆαααα regular-user-binding
α’αα»αααα ServiceRole αααα’αααααααααΆαααααααΆααα’αα (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: regular-user-binding
namespace: default
spec:
subjects:
- user: "*"
roleRef:
kind: ServiceRole
name: "regular-user"
ααΎ "α’αααααααΎααααΆααααΆααα’αα" ααΆααααααΆα’αααααααΎααααΆααααααα·αααΆααααααααααΆααααΉαα’αΆα α αΌαααααΎ SA WebApp αααα¬αα? αα αααααΆαααααΉααα·αα·αααααΎααα»ααααΆααααα·αα·ααααααααΆ JWT α
αααα’αα»ααααααΆααααααα
$ kubectl apply -f resource-manifests/istio/security/user-role.yaml
servicerole.rbac.istio.io/regular-user created
servicerolebinding.rbac.istio.io/regular-user-binding created
α αΌαααααΎααΆαααααααα ααΆαααααααααααααΆααα’ααααααααααααα½α
αααααΆααα’ααααααααααααα½α ααΎαα
ααααΎαααΆαα
αΌαααααΎααααΆααααααΆααα’αα (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: mod-user
namespace: default
spec:
rules:
- services: ["*"]
paths: ["*"]
methods: ["*"]
ααα»ααααβααΎαβα
ααβααΆαβαα·αααα·βαααβαααβαααααΆααβααβα’αααβααααΎβαααβαααααΆβαααααΆααβα
αΌαβααααΎβααΆαβααΆαβααΆαααΆαβααα»αααααα https://sa.io/group
ααΆαα½αααΉαα’αααααα Moderators
(
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: mod-user-binding
namespace: default
spec:
subjects:
- properties:
request.auth.claims[https://sa.io/group]: "Moderators"
roleRef:
kind: ServiceRole
name: "mod-user"
αααα’αα»ααααααΆααααααα
$ kubectl apply -f resource-manifests/istio/security/mod-role.yaml
servicerole.rbac.istio.io/mod-user created
servicerolebinding.rbac.istio.io/mod-user-binding created
αααααΆαααααΆααααααΆαα»ααααααααααα»αααααΆαααααααΆαα ααΆα’αΆα α αααΆααααααΈαααΈααΆααΈααΎααααΈα±ααα αααΆααα’αα»ααααΆαα αΌαααΆααααΆαα αααααΆαααα α’αααα’αΆα ααΆααΆααΆα’αααααααΎααααΆαα αα·αα’ααααααααααααα½αααΆαααααα·αααααΆαα αΌαααααΎααααΆαααα»ααααααΆα
ααα ααααΈααααα·ααααΆαααΎααααααααα
ααΆααααααα ααΎα’αααααααΆααααΎααα·ααΈααΆαααααααΆαααα ααΆααααα½α ααααΎααΆαααααααΆα αα·ααα»ααααα·ααΆααααα»αααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆααααα¬αα?
ααΆαααααααΆα Istio ααΈααα»ααααα (RbacConfig, ServiceRole, αα·α ServiceRoleBinding) αααααααΌαααΆαααΆαααΆα ααΎααααΈαααααα ααΆαααΌαααΆαααααααααααααααααααα»αααΆαααΎααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆαα²ααα’αααααααΎααααΆααα α»ααααααα αΌααα ααΆααααααΆααααα
ααΎαααΈαααααα ααΎαααΆαααα α·ααααα»αααΆααααΎαααα αΆααΆαααααα ααααΈααααΆααααααααααααααααΎα ααααααααα ααΆαααΌαα
- ααΆαααααααα ααα½αααΌαααΌαα αααα’αΆα ααΆααααα αΆαα»ααααα·ααΆα αα·αααα α»αα
- ααΆαααααααα ααα½αααααααΆαααΆααααααααααααα ααα»α αααα αααα½ααααααα ααΆα’αΆα α αΌαααΆαααΈααΆααααα α αΎαααααα ααΆαααΆαααααΆ;
- ααΆααα»αααααΆαααααααΌαααΆαααΎααααΈααααΎαα αα α»ααααααααΆαααααΆααααααΆααα’αα ααΆαααααααααα½ααΆααΈααααΈ α¬αα·αααα·ααααΌαααΆαααααααα
- ααΆααααΆααααααααΈαα ααααΆαααα αα»ααααα·ααΆα αα·αααΏαα
ααα ααααΈααααα·ααααΆα
Istio α’αα»ααααΆαα±αααααα»ααααααααΎααααΆααααααα½αααααΎαα·α αα ααΆαααααΆααααα’αΆααΈαααααααααα·αααααααααΆαα αααΆαααΎααααΆαααα ααααααααααα½ααααα ααΆααααΆαααΆαααααΆαααΌα αα·αα
α’ααααα (ααΆααΈααααα) ααΆααααααα ααααααΉαααΆααΌαααααΆα αα·αααΆαααααΆαααΆααααααααααααααααα½α ααΆααααα αααααΆααααΆαα αΆααααααΎαααΆαα½α Istio αα αααα»ααααααααα·αα
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- "αααααααα
ααααΆααααααααΆαααΌα
ααΆαα½α Istio"α
αααααααΈ 1 (ααΆαααααΆαα’αααΈααααααααααΆααα) ,αααααααΈ 2 (ααααΌα, ααΆααααα½ααα·αα·αααα ααΆα ααα) ; - Β«
ααααα - ααααΆααααααΆααααααααααΆααααααΆαα Kubernetes Β» - Β«
ααΎα’αααΈαα ααΆααααΆααααΆαα α αΎαα ααα»α’αααΈααΆαααΆαααα»αααααΌαααΆα [αααααΆαααααααα·ααΈαααααΆαα½αααΈααααΌααΊααΈα]? "α
ααααα: www.habr.com