2021.02. ์ด์ฅ์ฌ ๐ง [email protected] ๐ https://github.com/jangjaelee ๐ http://www.awx.kr
Installing Istio with Intergrations(addons)
Istio, Tutorial Step-by-Step Deploy Sample Apps: Bookinfo
Istio๋ ํธ๋ํฝ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋๋ถ๋ถ์ Envoy Porxy์์ ์ ๊ณตํ๊ฒ ๋๋ฉฐ, Kubernetes ํด๋ฌ์คํฐ์์ ํธ๋ํฝ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐํธํ๊ฒ ์ค์ ํ ์ ์์ผ๋ฉฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ฒญ ์๊ฐ ์ด๊ณผ(Request Timeouts)์ Envoy Proxy๊ฐ HTTP Response๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์๋ ์ต๋ ์๊ฐ์ธ timeout์ ์ค์ ํ๋ ๊ธฐ๋ฅ ์ด๋ฉฐ, ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด Application(๋๋ Service)์ด Hang-up์ผ๋ก ์ธํ ์๋น์ค ๋ฌดํ ๋๊ธฐ ์ํ๋ฅผ ๋ฐฉ์ง ํ ์ ์์ต๋๋ค.
VirtualService์์ timeout์ ๋ช ์ํ์ฌ ์ค์ ํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ก ๋ช ์ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ(default)์ ๋นํ์ฑํ(disabled)๋ก ์ค์ ๋ฉ๋๋ค.
Istio์ Request Timeout ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋(Code)๋ฅผ ์์ ํ์ง ์๊ณ ๋ ์๋น์ค ๋จ์์ timeout ๊ธฐ๋ฅ ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ํฐ ์ฅ์ ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
์ด ์์ ๋ชฉํ๋ ratings microservice ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ๋ก ์ง์ฐ์๊ฐ(delay)๋ฅผ 2์ด ์ถ๊ฐํ๊ณ , reviews microservice ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ํธ์ถ์ ๋ํด 0.5์ด ์์ฒญ ์๊ฐ ์ด๊ณผ(request timeout)๋ฅผ ์ค์ ํ์ฌ ratings ์๋น์ค์ 2์ด ์ง์ฐ์๊ฐ์ผ๋ก ์ธํด reviews ์๋น์ค๊ฐ 1์ด ์ด๋ด์ ์๋ตํ์ง ๋ชป ํ์ฌ timeout์ ๋ฐ์ํ๋ ๊ฒ์ ์์ ๋ด ๋๋ค.
Istio, Tutorial Step-by-Step Deploy Sample Apps: Bookinfo๋ฅผ ๋จผ์ ์ ํ ํ ์งํ ํ์๊ธฐ ๋ฐ๋๋๋ค.
๋ชจ๋ ํธ๋ํฝ์ด v1, v2, v3๊น์ง ๋ผ์ฐํ ๋๋๋ก bookinfo ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๊ธฐ๋ณธ VirtualService์ DestinationRule์ ๋ฐฐํฌ ํฉ๋๋ค.
*# DestinationRule ์ ์ฉ*
$ kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml -n bookinfo
*# VirtualService ์ ์ฉ*
$ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml -n bookinfo
๋ธ๋ผ์ฐ์ ์์ /productpage๋ฅผ ์๋ก๊ณ ์นจ ํ๋ฉด reviews ์๋น์ค๊ฐ v1, v2 ,v3์ ์๋น์ค๋ค์ด Round-Robin(RR) ๋ฐฉ์์ผ๋ก ๋ถ์ฐ๋์ด ํธ๋ํฝ ๋ผ์ฐํ ์ด ์ฒ๋ฆฌ ๋ฉ๋๋ค.