เบซเบกเบฒเบโเปเบซเบโ. เปเบ.:
เบเบงเบเปเบฎเบปเบฒเบเบฑเปเบเบเบธเปเบก Kubernetes เบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบณเปเบเป Istio เปเบฅเบฐเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบฅเบดเบเบฒเบเบเบธเบฅเบฐเบเบฒเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบงเบดเปเบเบฒเบฐเบเบงเบฒเบกเบฎเบนเปเบชเบถเบ, เปเบเบทเปเบญเบชเบฐเปเบเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบ Istio.
เบเปเบงเบ Istio, เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบฎเบฑเบโเบชเบฒโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบซเบเบฒเบโเบเปเบญเบโเปเบเบทเปเบญเบโเบเบฒเบโเบงเปเบฒโเบเบงเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเปเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฑเปเบโเบเปเบฒเบเปโเปเบเบฑเปเบ Retryes, Timeouts, Circuit Breakers, Tracing, Monitoring. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเปเบเบฑเบเบเบดเบเบเบฒเบเบเบปเบเบชเบญเบ เปเบฅเบฐเบเบฒเบเบเบณเปเบเปเปเบเบเบเบดเปเบชเบ: เบเบฒเบเบเบปเบเบชเบญเบ A/B, เบเบฒเบเบชเบฐเบเปเบญเบเปเบชเบ เปเบฅเบฐ เบกเปเบงเบ canary.
เปเบเบงเบฑเบเบชเบฐเบเบธเปเบซเบกเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบเปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบชเบนเปเบกเบนเบเบเปเบฒเบเบธเบฅเบฐเบเบดเบ: เบเบฒเบเบฎเบฑเบเบฎเบญเบเปเบฅเบฐเบเบฒเบเบญเบฐเบเบธเบเบฒเบ - เปเบฅเบฐเปเบ Istio เบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบชเบธเบเบเบตเปเปเบเปเบเบดเบ!
เบเบฒเบเบเบงเบเบชเบญเบเปเบฅเบฐเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบ Istio
เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเปโเปเบเบตเบโเบเบฐโเปเบเบทเปเบญโเบงเปเบฒโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบปเบโเปเบโเปเบเบโเบเบฒเบโเบเบงเบโเบชเบญเบโเปเบฅเบฐโเบเบฒเบโเบญเบฐโเบเบธโเบเบฒเบโ. Istio เบชเบฒเบกเบฒเบเบชเบฐเปเบซเบเบตเบซเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฐเบเบฐเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบซเบปเบงเบเปเปเปเบซเบผเบปเปเบฒเบเบตเปเบกเปเบงเบเปเบฅเบฐ, เบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ, เปเบเบฑเบเปเบฎเบเบเบฑเบเบเบฒเบเปเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบ?
เบเปเบฒเบเบญเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ: Istio เบเปเบฝเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบซเบฒเบเบปเบงเปเบเบ Envoy. เปเบกเบทเปเบญเบเบฒเบเบฎเปเบญเบเบเปเปเบเปเบเบดเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบเบงเบเบกเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบขเบฑเปเบเบขเบทเบเปเบฅเบฐเบญเบฐเบเบธเบเบฒเบเปเบฅเปเบง, เบเบฑเปเบเบเบฑเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเปเบฎเบฑเบเปเบกเปเบเบเบฝเบเบฅเบฐเบซเบฑเบเบเบตเปเบกเบตเบเบฐเปเบซเบเบเบเบฒเบเบเบธเบฅเบฐเบเบดเบ.
เบชเบฝเบเบเบต? เบฅเบญเบเปเบเบดเปเบเบเบฒเบเปเบ!
เบเบฒเบเบขเบทเบเบขเบฑเบเบเปเบงเบ Auth0
เปเบเบเบฒเบเบฐเปเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเบเบปเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเป Auth0, เบเบตเปเบกเบตเบชเบฐเบเบฑเบเบเบปเบเบฅเบญเบ, เปเบกเปเบ intuitive เบเบฒเบเบเปเบฒเปเบเปเปเบฅเบฐเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบกเบฑเบเบกเบฑเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบซเบผเบฑเบเบเบฒเบเบเบฝเบงเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบชเบดเปเบเบญเบทเปเบเป
เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบเบตเป
เบฅเบฐเบเบธเปเบเปเบกเบเบเบตเปเบขเบนเปเปเบเปเบเบฅเป 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 - เบเบฐเบกเบฒเบ. เบเบณเบเบปเบเบเปเบฒ Envoys เปเบเบทเปเบญเบเบงเบเบชเบญเบเบเบฒเบเบฎเปเบญเบเบเปเบเปเบญเบเบเบตเปเบเบฐเบชเบปเปเบเบเปเปเปเบเบซเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ: 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 เปเบฅเบฐเบเบทเปเบกเปเบเบเบเบญเบก:
เบเปเปเบกเบนเบเบเบตเปเบชเปเบฒเบเบฑเบเบขเบนเปเบเบตเปเบเบตเปเปเบกเปเบ เบเบปเบงเบเบตเปเบงเบฑเบ, เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบเปเปเบกเบฒเปเบเบชเบฐเบเบดเบ. เบเปโเปเบซเปโเบเบฝเบโเปเบงเปโเบเบฑเปเบโเบเบตเป:
- Audience: {YOUR_AUDIENCE}
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบ Auth0 Portal เปเบเบเบฒเบ เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ - เปเบฅเบทเบญเบ เบเบฒเบเบเบปเบเบชเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ (เบชเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเปเบญเบกเบเบฑเบ API).
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฝเบ:
- เปเบเปเบกเบ: {YOUR_DOMAIN}
- ID เบฅเบนเบเบเปเบฒ: {YOUR_CLIENT_ID}
เปเบฅเบทเปเบญเบเปเบเบซเบฒ เบเบฒเบเบเบปเบเบชเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ เปเบเบเบตเปเบเปเบญเบเบเปเปเบเบงเบฒเบก เบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบญเบตเปเบเบเบทเบ URLs (เปเบเปเปเบ URLs เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบทเบ), เปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบ URL เบเบตเปเบเบฒเบเปเบเบเบงเบเบเบฐเบเบทเบเบชเบปเปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเบชเปเบฒเปเบฅเบฑเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบฑเบเปเบกเปเบ:
http://{EXTERNAL_IP}/callback
เปเบฅเบฐ เบชเบณ เบฅเบฑเบ URL เบญเบญเบเบเบฒเบเบฅเบฐเบเบปเบเบเบตเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบเบฒเบ (เบญเบฐเบเบธเบเบฒเบเปเบซเป URLs เบญเบญเบเบเบฒเบเบฅเบฐเบเบปเบ) เปเบเบตเปเบก:
http://{EXTERNAL_IP}/logout
เบเปเปเบซเปเบเปเบฒเบงเปเบเบชเบนเปเปเบชเบฑเปเบเบเบฒเบเบซเบเปเบฒ.
เบญเบฑเบเปเบเบ Frontend
เบเปเบฝเบเปเบเบฑเบเบชเบฒเบเบฒ auth0
เบเบฑเบเปเบเบฑเบเบกเปเบฝเบ [istio-mastery]
. เปเบเบชเบฒเบเบฒเบเบตเป, เบฅเบฐเบซเบฑเบ frontend เบเบทเบเบเปเบฝเบเปเบเบทเปเบญเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเบเบนเปเปเบเปเปเบเบซเบฒ Auth0 เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบฅเบฐเบเปเบฒเปเบเป JWT token เปเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบญเบทเปเบเป. เบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป (.
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 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, เบเปเบญเบเบเบตเปเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ (เบซเบผเบทเบฅเบปเบเบเบฐเบเบฝเบ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบฐเบเบทเบเบชเบปเปเบเบเบฑเบเบเบทเบเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบขเบทเบเบขเบฑเบเปเบฅเปเบงเบเบฐเบเบทเบเปเบฎเบฑเบ. เบเปเบฒเบเปเบฒเบเบเบฐเบเบฒเบเบฒเบกเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบเบชเปเบงเบเบเปเบฒเบญเบดเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบกเบต curl, เบเปเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบฅเบฐเบซเบฑเบ 401 เบฅเบฐเบซเบฑเบเบชเบฐเบเบฒเบเบฐ, เบชเบฑเบเบเบฒเบเบงเปเบฒเบเบฒเบเบฎเปเบญเบเบเปเบเปเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบเบฒเบ.
เปเบซเปเบเบฑเปเบเบเบญเบเบเปเปเปเบ - เบญเบฐเบเบธเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเป.
เบเบฒเบเบญเบฐเบเบธเบกเบฑเบเบเปเบงเบ Auth0
เบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเปเบฎเบฑเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเปเบเบงเปเบฒเบเบนเปเปเบเปเปเบกเปเบเปเบ, เปเบเปเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบฎเบนเปเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบดเบเบซเบเบฑเบ. Istio เบชเบฐเปเบซเบเบตเปเบเบทเปเบญเบเบกเบทเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเปเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ.
เบเบปเบงเบขเปเบฒเบ, เปเบซเปเบชเปเบฒเบเบชเบญเบเบเบธเปเบกเบเบนเปเปเบเป (เปเบเบดเปเบเปเบเบเบงเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป):
- เบเบนเปเปเบเป (เบเบนเปเปเบเป) โ เบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฝเบเปเบเปเบเบฒเบเบเปเบฅเบดเบเบฒเบ SA-WebApp เปเบฅเบฐ SA-Frontend;
- เบเบนเปเบเบงเบเบเบธเบก (เบเบนเปเบเบงเบเบเบธเบก) โ เบกเบตโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบฑเบโเบชเบฒเบกโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ.
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ
เปเบเบทเปเบญเบชเปเบฒเบเบเบธเปเบกเปเบซเบผเบปเปเบฒเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเบฒเบเบเบฐเบซเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ Auth0 เปเบฅเบฐเบเปเบฒเปเบเป Istio เปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒเบกเบตเบฅเบฐเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เบเบฒเบเบเบดเบเบเบฑเปเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบญเบฐเบเบธเบเบฒเบ Auth0
เปเบเบเบฐเบเบน Auth0, เปเบเบเบตเปเบชเปเบงเบเบเบฐเบซเบเบฒเบ (เบเบฒเบโเบเบฐโเบซเบเบฒเบ) เปเบฅเบฐโเบเบดเบโเบเบฑเปเบโ Auth0 เบเบฒเบโเบญเบฐโเบเบธโเบเบฒเบโ. เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบ, เปเบเบเบตเป เบเบฒเบเบเบฐเบซเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ, เปเบฅเบฐเบขเบนเปเบเบตเปเบเบฑเปเบ - เบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบนเปเปเบเบปเปเบฒเปเบเบเบเบฒเบเบเบฅเบดเบเปเบชเปเบเบงเบฒเปเบเบดเบเปเบฅเบฐเปเบฅเบทเบญเบเบเบปเบงเปเบฅเบทเบญเบเปเบกเบเบนเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก. (เบเบฒเบเบเบฑเปเบเบเปเบฒ). เปเบเบตเบเปเบเปเบเบธเปเบก (เบเบธเปเบก) เปเบฅเบฐโเปเบซเปโเบเบฅเบดเบโเปเบชเปโเบเบธเปเบกโเบเบปเบโเบฅเบฐโเบเบฝเบโเบเบฒเบโเปเบเบตเบโเปเบเปโ (เบเบปเบโเบฅเบฐโเบเบฝเบโเบเบฒเบโเปเบเบตเบโเปเบเปโ).
เบชเปเบฒเบเบเบธเปเบก
เปเบโเบเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบฒเบโเบญเบฐโเบเบธโเบเบฒเบโเปเบโเบเบตเป Groups เปเบฅเบฐเบชเปเบฒเบเบเบธเปเบก Moderators. เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบดเบเบฑเบเบเปเปเบเบนเปเปเบเปเบเบตเปเบกเบตเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบฑเบเบซเบกเบปเบเปเบเบฑเบเบเบนเปเปเบเปเบเบปเบเบเบฐเบเบด, เบกเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบเบธเปเบกเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒ.
เปเบฅเบทเบญเบเบเบธเปเบก Moderators, เบเบปเบเบเบธเปเบก เปเบเบตเปเบกเบชเบฐเบกเบฒเบเบดเบ, เปเบเบตเปเบกเบเบฑเบเบเบตเบเบปเปเบเบเปเบเบญเบเบเปเบฒเบ. เบเปเบญเบเปเบซเปเบเบนเปเปเบเปเบเบฒเบเบเบปเบเปเบเบเบเปเปเบกเบตเบเบธเปเบกเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบทเบเบเบฐเบเบดเปเบชเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ. (เบเบนเปเปเบเปเปเบซเบกเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเปเบงเบเบเบปเบเปเบญเบเปเบเบเบเปเบฒเบ Auth0 Portal > เบเบนเปเปเบเป > เบชเปเบฒเบเบเบนเปเปเบเป.)
เปเบเบตเปเบกเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบเบธเปเบกเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบ Token
เบเบนเปโเปเบเปโเปเบเปโเบเบทเบโเปเบเบตเปเบกโเปเบเบปเปเบฒโเปเบโเปเบโเบเบธเปเบกโ, เปเบเปโเบเปเปโเบกเบนเบโเบเบตเปโเบเบฑเบโเบเปเบญเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเบฐโเบเปเบญเบโเปเบซเปโเปเบซเบฑเบโเปเบ tokens เบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโ. เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบก OpenID Connect เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบชเบปเปเบเบเบทเบเบเบธเปเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ, token เบเบฐเบเปเบญเบเปเบเบตเปเบกเบเบญเบเบกเบฑเบเปเบญเบ.
เปเบเบทเปเบญเบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบ, เปเบเบเบตเป Auth0 Portal to เบเบปเบเบฅเบฐเบเบฝเบ, เบเบปเบเบเบธเปเบก เบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบ เปเบฅเบฐเปเบฅเบทเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบซเบงเปเบฒเบเปเบเบปเปเบฒเบเบฒเบเปเบกเปเปเบเบ.
เบเบฑเบเบฅเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบฅเบฐเบเบฑเบเบเบถเบเบกเบฑเบเปเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเปเบซเบกเป เปเบเบตเปเบกเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบเบธเปเบก (
function (user, context, callback) {
context.accessToken['https://sa.io/group'] = user.groups[0];
return callback(null, user, context);
}
ะัะธะผะตัะฐะฝะธะต: เบฅเบฐเบซเบฑเบเบเบตเปเปเบญเบปเบฒเบเบธเปเบกเบเบนเปเปเบเปเบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบเบปเบเบขเบนเปเปเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบฅเบฐเปเบเบตเปเบกเบกเบฑเบเปเบชเป token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบฑเบเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเปเบเบเบเปเบฒเบเบปเบเปเบญเบ (เบเบฒเบเปเบเป namespace เบเบญเบเบกเบฑเบ, เบเบฒเบกเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบ Auth0).
เบเบฑเบเปเบเบเบตเปเปเปเบฒ เบเบปเบเบฅเบฐเบเบฝเบ เปเบฅเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเปเบฒเบเบกเบตเบชเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฝเบเบขเบนเปเปเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
- auth0-authorization-extension
- เปเบเบตเปเบกเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบเบธเปเบก
เบเปเบฒเบชเบฑเปเบเปเบกเปเบเบชเปเบฒเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบญเบเบเบธเปเบกเปเบเปเบฎเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ asynchronously auth0-authorization-extension เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบทเบเปเบเบตเปเบกเปเบเบฑเบเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเปเบเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเบชเบญเบ. เบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบ token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบฑเปเบเบเบตเป:
{
"https://sa.io/group": "Moderators",
"iss": "https://sentiment-analysis.eu.auth0.com/",
"sub": "google-oauth2|196405271625531691872"
// [ัะพะบัะฐัะตะฝะพ ะดะปั ะฝะฐะณะปัะดะฝะพััะธ]
}
เบเบญเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฑเบเบเปเบฒเบเบปเบงเปเบเบ Envoy เปเบเบทเปเบญเบเบงเบเบชเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบญเบเบเบนเปเปเบเป, เปเบเบดเปเบเบเบธเปเบกเบเบฐเบเบทเบเบเบถเบเบญเบญเบเบเบฒเบเบเบฒเบเบฎเบฝเบเบฎเปเบญเบ (https://sa.io/group
) เปเบ token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบเบทเบ. เบเบตเปเปเบกเปเบเบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเปเบเบเบญเบเบเบปเบเบเบงเบฒเบก.
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบ 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 เบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบฅเบฐ namespaces เบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบก
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 โ เบเปเบฒเบเบปเบเบงเปเบฒ ServiceRole เบเบตเปเบเบถเปเบเบเบฑเบเปเบ.
เบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบเบปเปเบงเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบชเบฐเปเบเบฒเบฐเปเบเบซเบเบถเปเบ (
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 token.
เปเบซเปเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒ:
$ 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: ["*"]
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบชเบดเบเบเบดเบเบฑเปเบเบเปเบฒเบงเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบเบตเป token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบกเบตเบเบฒเบเบฎเบฝเบเบฎเปเบญเบ 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) เปเบเบปเปเบฒเบเบฑเปเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบฅเบธเบเบฒเบเบเบงเบเบเบธเบกเบเบตเปเบฅเบฐเบญเบฝเบเบญเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบฅเบฐเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเปเบชเบธเบเบเปเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบนเปเบฅเบเบฑเบเบซเบฒเปเบซเบผเบปเปเบฒเบเบตเปเบญเบญเบเบเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบนเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฑเบเบฅเบธเปเบเป:
- เบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเปเบฒเบเบงเบเบฅเบฐเบซเบฑเบเบเบปเปเบงเปเบเบเบตเปเบญเบฒเบเบเบฐเบกเบตเบเบฑเบเบซเบฒเบเบงเบฒเบกเบเบญเบเปเบเปเบฅเบฐเบเปเปเบเบปเบเบเปเบญเบ;
- เบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเปเบฒเบเบงเบเบเบญเบเบชเบฐเบเบฒเบเบฐเบเบฒเบ stupid เปเบเบซเบเบถเปเบ endpoint เบซเบฑเบเบญเบญเบเปเบเบทเปเบญเปเบซเปเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเปเบเบฒเบเบเบฒเบเบเบญเบเปเบฅเบฐเบฅเบทเบกเบเบตเปเบเบฐเบฅเบฒเบเบเบฒเบเบกเบฑเบ;
- เบเบฒเบเบฅเบปเบเบฅเปเบฒเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฑเบเบเบธเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบธเบเบเบฑเปเบเบเบตเปเบกเบตเบเบฒเบเปเบเบตเปเบกเบเบปเบเบเบฒเบเบซเบผเบทเบชเบดเบเปเบซเบกเป;
- เบงเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบซเบกเปเบเบฑเบเบเบปเบเบเปเบฒเบเบเบฒเบ, เบเบญเบเปเบเปเบฅเบฐเปเบง.
เบชเบฐเบซเบฅเบธเบ
Istio เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบตเบกเบเบฒเบเบชเบธเบกเปเบชเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบงเบฝเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบญเบเบเบธเบฅเบฐเบเบดเบเปเบเบเบเปเปเบกเบตเบเบฒเบเปเบเบตเปเบกเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบเบทเบเบชเบนเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบธเบเบฅเบฐเบเบฒเบ.
เบเบปเบเบเบงเบฒเบก (เปเบเบชเบฒเบกเบชเปเบงเบ) เปเบเปเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบเบทเปเบเบเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบ Istio เปเบเปเบเบเบเบฒเบเบเบตเปเปเบเปเบเบดเบ.
PS เบเบฒเบเบเบฑเบเปเบ
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- "เบเบฑเบเบเบทเบเปเบเบเปเบญเบเบเปเบฅเบดเบเบฒเบเบเบธเบฅเบฐเบเบฒเบเบเบฑเบ Istio":
เบเบฒเบโเบเบต 1 (เบเบฒเบโเบเปเบฒโเบชเบฐโเปเบซเบเบตโเบเปเบฝเบงโเบเบฑเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเบเบปเปเบโเบเปโ) ,เบเบฒเบโเบเบต 2 (เปเบชเบฑเปเบโเบเบฒเบโ, เบเบฒเบโเบเบงเบโเบเบธเบกโเบเบฐโเบฅเบฒโเบเบญเบโ) ; - ยซ
Conduit - เบเบฒเบซเบเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบกเบตเบเปเปเบฒเบซเบเบฑเบเปเบเบปเบฒเบชเปเบฒเบฅเบฑเบ Kubernetes " - ยซ
เบเบฒเปเปเบฒเบเบเปเบฅเบดเบเบฒเบเปเบกเปเบเบซเบเบฑเบ เปเบฅเบฐเปเบเบฑเบเบซเบเบฑเบเบเปเบญเบเบเบถเปเบเบเปเบญเบเบเบฒเบเบกเบฑเบ [เบชเบณเบฅเบฑเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฅเบฒเบงเบเบฑเบเบเปเบฅเบดเบเบฒเบเบเบธเบฅเบฐเบเบฒเบ]? ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com