เชจเซเซ
เชง. เช
เชจเซเชตเชพเชฆ:
เช เชฎเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฒเชธเซเชเชฐ เชธเซเช เชเชฐเซเชฏเซเช เชเซเชฎเชพเช เช เชฎเซ Istio เช เชจเซ เชเช เชเชฆเชพเชนเชฐเชฃ เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธ เชเชชเซเชฒเชฟเชเซเชถเชจ, เชธเซเชจเซเชเชฟเชฎเซเชจเซเช เชเชจเชพเชฒเชฟเชธเชฟเชธ, Istio เชจเซ เชเซเชทเชฎเชคเชพเช เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชเซ เชเชฎเชพเชตเซเชฏเซเช.
Istio เชธเชพเชฅเซ, เช
เชฎเซ เช
เชฎเชพเชฐเซ เชธเซเชตเชพเช เชจเชพเชจเซ เชฐเชพเชเชตเชพ เชธเชเซเชทเชฎ เชนเชคเชพ เชเชพเชฐเชฃ เชเซ เชคเซเชฎเชจเซ เชซเชฐเซเชฅเซ เชชเซเชฐเชฏเชพเชธเซ, เชธเชฎเชฏ เชธเชฎเชพเชชเซเชคเชฟ, เชธเชฐเซเชเชฟเช เชฌเซเชฐเซเชเชฐเซเชธ, เชเซเชฐเซเชธเชฟเชเช, เชฎเซเชจเชฟเชเชฐเชฟเชเช เชเซเชตเชพ เชธเซเชคเชฐเซ เชฒเชพเชเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. เชตเชงเซเชฎเชพเช, เช
เชฎเซ เช
เชฆเซเชฏเชคเชจ เชชเชฐเซเชเซเชทเชฃ เช
เชจเซ เชเชฎเชพเชตเช เชคเชเชจเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ: A/B เชชเชฐเซเชเซเชทเชฃ, เชฎเชฟเชฐเชฐเชฟเชเช เช
เชจเซ เชเซเชจเซเชฐเซ เชฐเซเชฒเชเชเชเซเชธ.
เชจเชตเซ เชธเชพเชฎเชเซเชฐเซเชฎเชพเช, เช
เชฎเซ เชตเซเชฏเชตเชธเชพเชฏเชฟเช เชฎเซเชฒเซเชฏเชจเชพ เชฎเชพเชฐเซเช เชชเชฐเชจเชพ เช
เชเชคเชฟเชฎ เชธเซเชคเชฐเซ เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเซเชถเซเช: เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เช
เชจเซ เช
เชงเชฟเชเซเชคเชคเชพ - เช
เชจเซ เชเชธเซเชเชฟเชเชฎเชพเช เชคเซ เชเชฐเซเชเชฐ เชเชจเชเชฆเชจเซ เชตเชพเชค เชเซ!
Istio เชฎเชพเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เช เชจเซ เช เชงเชฟเชเซเชคเชคเชพ
เชนเซเช เชเซเชฏเชพเชฐเซเชฏ เชฎเชพเชจเชคเซ เชจ เชนเซเชค เชเซ เชนเซเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เช เชจเซ เช เชงเชฟเชเซเชคเชคเชพ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเซเชฐเชฟเชค เชฅเชเชถ. เช เชตเชฟเชทเชฏเซเชจเซ เชฎเชจเซเชฐเชเชเช เชฌเชจเชพเชตเชตเชพ เช เชจเซ เชคเซเชจเชพเชฅเซ เชชเชฃ เชตเชงเซ, เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ เชชเซเชฐเซเชฐเชฃเชพเชฆเชพเชฏเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ Istio เชเซเชเซเชจเซเชฒเซเชเซเชจเชพ เชชเชฐเชฟเชชเซเชฐเซเชเซเชทเซเชฏเชฎเชพเช เชถเซเช เชเชซเชฐ เชเชฐเซ เชถเชเซ เชเซ?
เชเชตเชพเชฌ เชธเชฐเชณ เชเซ: Istio เช เชเซเชทเชฎเชคเชพเช เชฎเชพเชเซเชจเซ เชเชตเชพเชฌเชฆเชพเชฐเซ เชคเชฎเชพเชฐเซ เชธเซเชตเชพเชเชฎเชพเชเชฅเซ เชฆเซเชค เชชเซเชฐเซเชเซเชธเซเชจเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเซ เชเซ. เชตเชฟเชจเชเชคเซเช เชธเซเชตเชพเช เชธเซเชงเซ เชชเชนเซเชเชเซ เชคเซเชฏเชพเช เชธเซเชงเซเชฎเชพเช, เชคเซ เชชเชนเซเชฒเชพเชฅเซ เช เชชเซเชฐเชฎเชพเชฃเชฟเชค เช เชจเซ เช เชงเชฟเชเซเชค เชฅเช เชเซเชเซ เชเซ, เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชซเชเซเชค เชตเซเชฏเชตเชธเชพเชฏ-เชเชชเชฏเซเชเซ เชเซเชก เชฒเชเชตเชพเชจเซ เชเซ.
เชธเชพเชฐเซเช เชฒเชพเชเซ เชเซ? เชเชพเชฒเซ เช เชเชฆเชฐ เชเช เชจเชเชฐ เชเชฐเซเช!
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
เชเชตเชพ เชธเชเชธเชพเชงเชจ เชธเชพเชฅเซ, เชชเชพเชเชฒเช (Istio เชฎเชพเช เชคเซเชฐเชฃ เชฎเซเชณเชญเซเชค เชเชเชเซเชฐเซเชฒ เชชเซเชฒเซเชจ เชเชเชเซเชฎเชพเชเชฅเซ เชเช - เชเชถเชฐเซ เช
เชจเซเชตเชพเชฆ.) เชตเชฟเชจเชเชคเซเชเชจเซ เชธเซเชตเชพเช เชชเชฐ เชซเซเชฐเชตเชฐเซเชก เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฐเชพเชเชฆเซเชคเชจเซ เชเซเช เชตเซ เชเซ: sa-web-app
ะธ sa-feedback
. เชคเซ เช เชธเชฎเชฏเซ, เชธเซเชตเชพ เชฆเซเชคเซ เชชเชฐ เชเซเช เชตเชฃเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ sa-frontend
, เช
เชฎเชจเซ เช
เชเซเชฐเชญเชพเชเชจเซ เชฌเชฟเชจเช
เชงเชฟเชเซเชค เชเซเชกเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชจเซเชคเชฟ เชฒเชพเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชฆเซเชถ เชเชฒเชพเชตเซ:
$ kubectl apply -f resource-manifests/istio/security/auth-policy.yaml
policy.authentication.istio.io โauth-policyโ created
เชชเซเชทเซเช เชชเชฐ เชชเชพเชเชพ เชซเชฐเซ เช เชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ - เชคเชฎเซ เชเซเชถเซ เชเซ เชคเซ เชธเซเชฅเชฟเชคเชฟ เชธเชพเชฅเซ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ 401 เช เชจเชงเชฟเชเซเชค. เชนเชตเซ เชเชพเชฒเซ เชซเซเชฐเชจเซเชเชเชจเซเชก เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ Auth0 เชธเชพเชฅเซ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเซเช.
Auth0 เชธเชพเชฅเซ เชตเชฟเชจเชเชคเซเชเชจเซเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ
เช เชเชคเชฟเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชตเชฟเชจเชเชคเซเชเชจเซ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ Auth0 เชฎเชพเช เชเช API เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชธเซเชตเชพเช (เชธเชฎเซเชเซเชทเชพเช, เชตเชฟเชเชคเซ เช เชจเซ เชฐเซเชเชฟเชเชเซเชธ)เชจเซเช เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เชเชฐเชถเซ. API เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เชชเชฐ เชเชพเช Auth0 เชชเซเชฐเซเชเชฒ > API > API เชฌเชจเชพเชตเซ เช เชจเซ เชซเซเชฐเซเชฎ เชญเชฐเซ:
เช
เชนเซเช เชฎเชนเชคเซเชตเชจเซ เชฎเชพเชนเชฟเชคเซ เชเซ เชเชณเชเชเชฐเซเชคเชพ, เชเซเชจเซ เชเชชเชฃเซ เชชเชเซเชฅเซ เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เชเชชเชฏเซเช เชเชฐเซเชถเซเช. เชเชพเชฒเซ เชคเซเชจเซ เช เชฐเซเชคเซ เชฒเชเซเช:
- เชชเซเชฐเซเชเซเชทเช: {YOUR_AUDIENCE}
เช เชฎเชจเซ เชเซเชเชคเซ เชฌเชพเชเซเชจเซ เชตเชฟเชเชคเซ เชตเชฟเชญเชพเชเชฎเชพเช Auth0 เชชเซเชฐเซเชเชฒ เชชเชฐ เชธเซเชฅเชฟเชค เชเซ เชเชพเชฐเซเชฏเชเซเชฐเชฎเซ - เชชเชธเชเชฆ เชเชฐเซ เชเซเชธเซเช เชเชชเซเชฒเชฟเชเซเชถเชจ (API เชจเซ เชธเชพเชฅเซ เชเชชเชฎเซเชณเซ เชฌเชจเชพเชตเซเชฒ).
เช เชนเซเช เชเชชเชฃเซ เชฒเชเซเชถเซเช:
- เชกเซเชฎเซเชจ: {YOUR_DOMAIN}
- เชเซเชฒเชพเชฏเชจเซเช เชเชเชกเซ: {YOUR_CLIENT_ID}
เชธเซเชงเซ เชธเซเชเซเชฐเซเชฒ เชเชฐเซ เชเซเชธเซเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซเชเซเชธเซเช เชซเซเชฒเซเชกเชฎเชพเช เชฎเชเชเซเชฐ เชเซเชฒเชฌเซเช URL (เชเซเชฒเชฌเซเช เชฎเชพเชเซ เชเชเซเชฒเชพเชฏเซเชฒ URL), เชเซเชฎเชพเช เช เชฎเซ เชคเซ URL เชจเซ เชเชฒเซเชฒเซเช เชเชฐเซเช เชเซเช เชเซเชฏเชพเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เชชเซเชฐเซเชฃ เชฅเชฏเชพ เชชเชเซ เชเซเชฒ เชฎเซเชเชฒเชตเซ เชเซเชเช. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชคเซ เชเซ:
http://{EXTERNAL_IP}/callback
เช เชจเซ เชฎเชพเชเซ เชฎเชเชเซเชฐ เชฒเซเชเชเชเช URL (เชฒเซเช เชเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเชพเชจเซเชฏ URL) เชเชฎเซเชฐเซ:
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}' // ะัะฟะพะปัะทัะตััั ะดะปั ัะตะดะธัะตะบัะฐ ะฟะพัะปะต ะฐััะตะฝัะธัะธะบะฐัะธะธ
}
เชเชชเซเชฒเชฟเชเซเชถเชจ เชคเซเชฏเชพเชฐ เชเซ. เชเชฐเซเชฒเชพ เชซเซเชฐเชซเชพเชฐเซเชจเซเช เชจเชฟเชฐเซเชฎเชพเชฃ เช เชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซเชฎเชพเช เชคเชฎเชพเชฐเซเช เชกเซเชเชฐ ID เชธเซเชชเชทเซเช เชเชฐเซ:
$ 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 เชชเชฐ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ, เชเซเชฏเชพเช เชคเชฎเชพเชฐเซ เชฒเซเช เชเชจ (เช เชฅเชตเชพ เชจเซเชเชงเชฃเซ) เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชคเชฎเชจเซ เชคเซ เชชเซเชทเซเช เชชเชฐ เชชเชพเชเชพ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเชถเซ เชเซเชฏเชพเชเชฅเซ เชชเชนเซเชฒเชพเชฅเซ เช เชชเซเชฐเชฎเชพเชฃเชฟเชค เชตเชฟเชจเชเชคเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเซ เชคเชฎเซ เชฒเซเชเชจเชพ เชชเชนเซเชฒเชพ เชญเชพเชเซเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเชฆเซเชถเซเชจเซ เชเชฐเซเชฒ เชธเชพเชฅเซ เช เชเชฎเชพเชตเชถเซ, เชคเซ เชคเชฎเชจเซ เชเซเชก เชฎเชณเชถเซ 401 เชธเซเชเซเชเชธ เชเซเชก, เชธเชเชเซเชค เชเชชเซ เชเซ เชเซ เชตเชฟเชจเชเชคเซ เช เชงเชฟเชเซเชค เชจเชฅเซ.
เชเชพเชฒเซ เชเชเชฒเซเช เชชเชเชฒเซเช เชฒเชเช - เชตเชฟเชจเชเชคเซเชเชจเซ เช เชงเชฟเชเซเชค เชเชฐเซ.
Auth0 เชธเชพเชฅเซ เช เชงเชฟเชเซเชคเชคเชพ
เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เช เชฎเชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชฃ เชเซ เชคเซ เชธเชฎเชเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชชเชฐเชเชคเซ เชคเซเชฎเชจเซ เชชเชพเชธเซ เชถเซเช เชเชเซเชธเซเชธ เชเซ เชคเซ เชเชพเชฃเชตเชพ เชฎเชพเชเซ เช เชงเชฟเชเซเชคเชคเชพ เชเชฐเซเชฐเซ เชเซ. Istio เช เชฎเชพเชเซ เชชเชฃ เชธเชพเชงเชจเซ เชเชซเชฐ เชเชฐเซ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชพเชฒเซ เชฌเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชฅเซ เชฌเชจเชพเชตเซเช (เชจเซเชเซ เชเชเซเชคเชฟ เชเซเช):
- เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช (เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช) โ เชซเชเซเชค SA-WebApp เช เชจเซ SA-เชซเซเชฐเชจเซเชเซเชจเซเชก เชธเซเชตเชพเชเชจเซ เชเชเซเชธเซเชธ เชธเชพเชฅเซ;
- เชฎเชงเซเชฏเชธเซเชฅเซเช (เชฎเชงเซเชฏเชธเซเชฅ) - เชคเซเชฐเชฃเซเชฏ เชธเซเชตเชพเชเชจเซ เชเชเซเชธเซเชธ เชธเชพเชฅเซ.
เช
เชงเชฟเชเซเชคเชคเชพ เชเซเชฏเชพเชฒ
เช เชเซเชฅเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เช เชฎเซ Auth0 เช เชงเชฟเชเซเชคเชคเชพ เชเชเซเชธเซเชเซเชเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช เช เชจเซ เชคเซเชฎเชจเซ เชตเชฟเชตเชฟเชง เชธเซเชคเชฐเซเชจเซ เชเชเซเชธเซเชธ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพ เชฎเชพเชเซ Istio เชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช.
Auth0 เช เชงเชฟเชเซเชคเชคเชพเชจเซเช เชธเซเชฅเชพเชชเชจ เช เชจเซ เชเซเช เชตเชฃเซ
Auth0 เชชเซเชฐเซเชเชฒเชฎเชพเช, เชเชเซเชธเซเชเซเชเชถเชจ เชชเชฐ เชเชพเช (เชเชเซเชธเซเชเซเชจเซเชถเชจเซเชธ) เช เชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ Auth0 เช เชงเชฟเชเซเชคเชคเชพ. เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเชเซ, เชชเชฐ เชเชพเช เช เชงเชฟเชเซเชคเชคเชพ เชเชเซเชธเซเชเซเชเชถเชจ, เช เชจเซ เชคเซเชฏเชพเช - เชเชชเชฐ เชเชฎเชฃเซ เชฌเชพเชเซเช เชเซเชฒเชฟเช เชเชฐเซเชจเซ เช เชจเซ เชฏเซเชเซเชฏ เชฎเซเชจเซ เชตเชฟเชเชฒเซเชช เชชเชธเชเชฆ เชเชฐเซเชจเซ เชญเชพเชกเซเชคเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชชเชฐ เชเชพเช (เชฐเซเชชเชฐเซเชเชพเชเชเชจ). เชเซเชฅเซเชจเซ เชธเชเซเชฐเชฟเชฏ เชเชฐเซ (เชเซเชฅเซ) เช เชจเซ เชชเซเชฐเชเชพเชถเชฟเชค เชจเชฟเชฏเชฎ เชฌเชเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ (เชจเชฟเชฏเชฎ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซ).
เชเซเชฅเซ เชฌเชจเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซ
เช เชงเชฟเชเซเชคเชคเชพ เชเชเซเชธเซเชเซเชเชถเชจเชฎเชพเช เชเชพเช เชเซเชฅเซ เช เชจเซ เชเช เชเซเชฅ เชฌเชจเชพเชตเซ เชฎเชงเซเชฏเชธเซเชฅเซเช. เช เชฎเซ เชฌเชงเชพ เช เชงเชฟเชเซเชค เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชจเชฟเชฏเชฎเชฟเชค เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชคเชฐเซเชเซ เชเชฃเซเชถเซเช, เชคเซเชฅเซ เชคเซเชฎเชจเชพ เชฎเชพเชเซ เชเซเช เชตเชงเชพเชฐเชพเชจเซเช เชเซเชฅ เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
เชเช เชเซเชฅ เชชเชธเชเชฆ เชเชฐเซ เชฎเชงเซเชฏเชธเซเชฅเซเช, เชฆเชฌเชพเชตเซ เชธเชญเซเชฏเซ เชเชฎเซเชฐเซ, เชคเชฎเชพเชฐเซเช เชฎเซเชเซเชฏ เชเชพเชคเซเช เชเชฎเซเชฐเซ. เชเซเชเชฒเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชเชเซเชธเซเชธ เชจเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเชชเชฃ เชเซเชฅ เชตเชฟเชจเชพ เชเซเชกเซ เชฆเซ. (เชจเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฆเซเชตเชพเชฐเชพ เชเชพเชคเซ เชฌเชจเชพเชตเซ เชถเชเชพเชฏ เชเซ Auth0 เชชเซเชฐเซเชเชฒ > เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช > เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชจเชพเชตเซ.)
เชเชเซเชธเซเชธ เชเซเชเชจ เชฎเชพเชเซ เชเซเชฅ เชฆเชพเชตเซ เชเชฎเซเชฐเซ
เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชเซเชฅเซเชฎเชพเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ, เชชเชฐเชเชคเซ เช เชฎเชพเชนเชฟเชคเซ เชเชเซเชธเซเชธ เชเซเชเชจเซเชธเชฎเชพเช เชชเชฃ เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชฅเชตเซ เชเซเชเช. OpenID เชเชจเซเชเซเชเชจเซเช เชชเชพเชฒเชจ เชเชฐเชตเชพ เช
เชจเซ เชคเซ เช เชธเชฎเชฏเซ เช
เชฎเชจเซ เชเซเชเชคเชพ เชเซเชฅเซ เชชเชฐเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชเซเชเชจเชจเซ เชคเซเชจเซเช เชชเซเชคเชพเชจเซเช เชเชฎเซเชฐเชตเซเช เชชเชกเชถเซ
เชจเชฟเชฏเชฎ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, Auth0 เชชเซเชฐเซเชเชฒ เชชเชฐ เชเชพเช เชจเชฟเชฏเชฎเซ, เชฆเชฌเชพเชตเซ เชจเชฟเชฏเชฎ เชฌเชจเชพเชตเซ เช เชจเซ เชจเชฎเซเชจเชพเชเชฎเชพเชเชฅเซ เชเชพเชฒเซ เชจเชฟเชฏเชฎ เชชเชธเชเชฆ เชเชฐเซ.
เชจเซเชเซเชจเชพ เชเซเชกเชจเซ เชจเชเชฒ เชเชฐเซ เช
เชจเซ เชคเซเชจเซ เชจเชตเชพ เชจเชฟเชฏเชฎ เชคเชฐเซเชเซ เชธเชพเชเชตเซ เชเซเชฅ เชฆเชพเชตเซ เชเชฎเซเชฐเซ (
function (user, context, callback) {
context.accessToken['https://sa.io/group'] = user.groups[0];
return callback(null, user, context);
}
เชจเซเชเชงเชฃเซ: เช เชเซเชก เช เชงเชฟเชเซเชคเชคเชพ เชเชเซเชธเซเชเซเชเชถเชจเชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชชเซเชฐเชฅเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชฅ เชฒเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชธเซเชเชฎ เชฆเชพเชตเชพ เชคเชฐเซเชเซ เชเชเซเชธเซเชธ เชเซเชเชจเชฎเชพเช เชเชฎเซเชฐเซ เชเซ (เชคเซเชจเชพ เชจเซเชฎเชธเซเชชเซเชธ เชนเซเช เชณ, Auth0 เชฆเซเชตเชพเชฐเชพ เชเชตเชถเซเชฏเช เชเซ).
เชชเซเชทเซเช เชชเชฐ เชชเชพเชเชพ เชซเชฐเซ เชจเชฟเชฏเชฎเซ เช เชจเซ เชคเชชเชพเชธเซ เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชจเซเชเซเชจเชพ เชเซเชฐเชฎเชฎเชพเช เชฌเซ เชจเชฟเชฏเชฎเซ เชฒเชเซเชฒเชพ เชเซ:
- auth0-เชเชฅเซเชฐเชพเชเชเซเชถเชจ-เชเชเซเชธเซเชเซเชเชถเชจ
- เชเซเชฅ เชฆเชพเชตเซ เชเชฎเซเชฐเซ
เชเซเชฐเชฎ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ เชเชพเชฐเชฃ เชเซ เชเซเชฅ เชเซเชทเซเชคเซเชฐ เช เชธเซเชฎเซเชณ เชฐเซเชคเซ เชจเชฟเชฏเชฎ เชฎเซเชณเชตเซ เชเซ auth0-เชเชฅเซเชฐเชพเชเชเซเชถเชจ-เชเชเซเชธเซเชเซเชเชถเชจ เช เชจเซ เชคเซ เชชเชเซ เชฌเซเชเชพ เชจเชฟเชฏเชฎ เชฆเซเชตเชพเชฐเชพ เชฆเชพเชตเชพ เชคเชฐเซเชเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเชฐเชฟเชฃเชพเชฎ เชเชจเชพ เชเซเชตเซเช เชเชเซเชธเซเชธ เชเซเชเชจ เชเซ:
{
"https://sa.io/group": "Moderators",
"iss": "https://sentiment-analysis.eu.auth0.com/",
"sub": "google-oauth2|196405271625531691872"
// [ัะพะบัะฐัะตะฝะพ ะดะปั ะฝะฐะณะปัะดะฝะพััะธ]
}
เชนเชตเซ เชคเชฎเชพเชฐเซ เชฏเซเชเชฐ เชเชเซเชธเซเชธ เชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชจเซเชตเซเชฏ เชชเซเชฐเซเชเซเชธเซเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซเชจเชพ เชฎเชพเชเซ เชเซเชฅเชจเซ เชฆเชพเชตเชพเชฎเชพเชเชฅเซ เชเซเชเชเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเชถเซ (https://sa.io/group
) เชชเชฐเชค เชเชฐเซเชฒ เชเชเซเชธเซเชธ เชเซเชเชจเชฎเชพเช. เช เชฒเซเชเชจเชพ เชเชเชฒเชพ เชตเชฟเชญเชพเชเชจเซ เชตเชฟเชทเชฏ เชเซ.
Istio เชฎเชพเช เช เชงเชฟเชเซเชคเชคเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ
เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชงเชฟเชเซเชคเชคเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ Istio เชฎเชพเชเซ RBAC เชจเซ เชธเชเซเชทเชฎ เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชจเซเชเซเชจเซ เชเซเช เชตเชฃเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช:
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-Frontend เช เชจเซ SA-WebApp เชธเซเชตเชพเชเชจเซ เชเชเซเชธเซเชธ เชนเซเชตเซ เชเชตเชถเซเชฏเช เชเซ. เชจเซเชเซเชจเชพ Istio เชธเชเชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชพเชฏเซเชฒ เชเซ:
- เชธเชฐเซเชตเชฟเชธ เชฐเซเชฒ - เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เช เชงเชฟเชเชพเชฐเซ เชจเชเซเชเซ เชเชฐเซ เชเซ;
- ServiceRoleBinding โ เช เชธเชฐเซเชตเชฟเชธเชฐเซเชฒ เชเซเชจเซ เชเซ เชคเซ เชจเชเซเชเซ เชเชฐเซ เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เช
เชฎเซ เช
เชฎเซเช เชธเซเชตเชพเชเชจเซ เชเชเซเชธเซเชธเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซเชถเซเช (
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
เชฌเชงเชพ เชชเซเชทเซเช เชฎเซเชฒเชพเชเชพเชคเซเชเชจเซ เชธเชฐเซเชตเชฟเชธเชฐเซเชฒ เชฒเชพเชเซ เชเชฐเซ (
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 เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเซเชณเชญเซเชค เชเซเชเชพเชจ เช เชจเซ เชคเซเชฏเชพเชฐ เชตเซเชฏเชตเชนเชพเชฐเซ เชธเซเชเชจเชพเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ.
เช เชจเซเชตเชพเชฆเช เชคเชฐเชซเชฅเซ เชชเซเชเชธ
เช เชฎเชพเชฐเชพ เชฌเซเชฒเซเช เชชเชฐ เชชเชฃ เชตเชพเชเชเซ:
- "เชเชธเซเชเชฟเช เชธเชพเชฅเซ เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธเชฟเชธ เชชเชฐ เชชเชพเชเชพ":
เชญเชพเช 1 (เชฎเซเชเซเชฏ เชฒเชเซเชทเชฃเซเชจเซ เชชเชฐเชฟเชเชฏ) ,เชญเชพเช 2 (เชฐเชพเชเชเซเชเช, เชเซเชฐเชพเชซเชฟเช เชเชเชเซเชฐเซเชฒ) ; - ยซ
เชจเชณเซ - เชเซเชฌเชฐเชจเซเชเซเชธ เชฎเชพเชเซ เชนเชฒเชเซ เชธเซเชตเชพ เชฎเซเชถ ยป; - ยซ
เชธเชฐเซเชตเชฟเชธ เชฎเซเชถ เชถเซเช เชเซ เช เชจเซ เชฎเชจเซ เชคเซเชจเซ [เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธ เชธเชพเชฅเซ เชเซเชฒเชพเชเชก เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ] เชถเชพ เชฎเชพเชเซ เชเชฐเซเชฐ เชเซ? ยป.
เชธเซเชฐเซเชธ: www.habr.com