Istio Envoy Discovery Service
istioctl
์ ๋ช
๋ น์ด๋ฅผ ์ดํด๋ณด๋ ์ค์ istioctl proxy-status
๋ฅผ ์น๋ ์๋์ ๊ฐ์ด ooDS
๋ก ๋๋๋ ์ปฌ๋ผ์ ํ๊ฐ ๋ณด์ด๋ ๊ฑธ ๋ฐ๊ฒฌ ํ๋ค. ๋ฌด์จ ๋ด์ฉ์ธ์ง ๊ถ๊ธํด์ ์ข๋ ์ฐพ์๋ดค๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์๊ฒ Envoy์ Discovery Service(์ดํ DS)๊ณผ ๊ด๋ จ ์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์๋ค. ์ด๋ฒ ํฌ์คํธ์๋ Envoy์ DS์ ๋ํด ์ดํด๋ณด๊ณ ์ ํ๋ค.
์ด ์ฃผ์ ๋ฅผ ์ดํดํ๋๋ฐ arisu1000๋์ ๋ธ๋ก๊ทธ ๊ธ์ด ๋ง์ ๋์์ด ๋์์ต๋๋ค. ๊ธ๋ก๋๋ง ๊ฐ์ฌ์ ์ธ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค. ๐
Envoy์ Config๋ฅผ ์ค์ ํ๋ ๋ฒ
Envoy๋ ๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด, nginx, apache ๊ฐ์ proxy ์๋ฒ์ด๊ธฐ ๋๋ฌธ์ Config๊ฐ ํ์ํ๋ค. Envoy Config๋ 2๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ค์ ํ ์ ์๋๋ฐ
- ์ ์ (static)์ผ๋ก ์ค์ ํ๊ธฐ
- Envoy Proxy๊ฐ ๋ฐ ๋ ์ฝ๋ ๊ฒ.
- ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๋ฉด Envoy Proxy Restart๊ฐ ํ์ํจ.
- API ํตํด์ ๋์ ์ผ๋ก ์ค์ ํ๊ธฐ
- Istio์์ ์ฐ๋ ๋ฐฉ์!
2๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ์ด์ค API ํตํด ์ ์ ์ผ๋ก Envoy Config๋ฅผ ์ค์ ํ๋๊ฒ Istio์์ ์ฑํํ ๋ฐฉ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ xxx Discovery Service, ์ค์ฌ์ xDS๋ผ๊ณ ์ง์นญํ๋ค.
๋์ ์ผ๋ก ์ค์ ํ๋ xDS ๋ฐฉ์์ Envoy๊ฐ Config๋ฅผ ๊ด๋ฆฌํ๋ ์๋ฒ์ Call์ ํ๋ฉด์ ์ง์์ ์ผ๋ก Config๋ฅผ ์ฑํฌํ๋ ๋ฐฉ์์ด๋ค. Istio์์๋ Config ์๋ฒ๊ฐ istiod
์ผ ๊ฒ์ด๋ค. Envoy๋ฅผ Istio ๋งฅ๋ฝ ์์์ ์ดํด๋ณด๊ณ ์์ผ๋ ์์ผ๋ก Config ์๋ฒ๋ฅผ istiod
๋ผ๊ณ ํน์ ํ๊ฒ ๋ค.
Envoy xDS ๋ฐฉ์
Envoy๊ฐ xDS ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ์ ์ฑํฌํ๊ธฐ ์ํด์ istiod
๋ xDS API๋ฅผ ๊ตฌํํด ์ด์ด๋ฌ์ผ ํ๋ค. ๊ทธ ์ข
๋ฅ๋ก๋
- CDS(Cluster DS)
- Envoy ์ฉ์ด๋ก
- EDS(Endpoint DS)
- Envoy ์ฉ์ด๋ก Cluster๋ฅผ ์ด๋ฃจ๋ ๋ฉค๋ฒ๋ฅผ endpoint๋ผ๊ณ ๋งํจ.
- RDS(Route DS)
- ํน์ ๊ฒฝ๋ก๋ก ๋ค์ด์จ ํธ๋ํฝ์ ์ด๋๋ก ๋ณด๋ด์ผ ํ๋์ง์ ๋ํด
- LDS(Listener DS)
- ํน์ ํฌํธ๋ก ๋ค์ด์จ ํธ๋ํฝ์ ์ด๋๋ก ๋ณด๋ด์ผ ํ๋์ง์ ๋ํด
- ECDS(Extension Configuration DS)
Envoy xDS์๋ ์ด๊ฒ ์ธ์๋ ๋ช๊ฐ๊ฐ ๋ ์๋๋ฐ, istio์ istioctl proxy-status
์์๋ ์ ๋ค์ฏ ๊ฐ์ง xDS API๋ง ๋ณด์ฌ์ฃผ๊ณ , ์๋ง ์ด ๋ค์ฏ ๊ฐ์ง๋ง ๊ตฌํ๋ ๊ฒ ๊ฐ๋ค. Envoy xDS์ ์ ์ฒด ๋ชฉ๋ก์ ๋ณด๊ณ ์ถ๋ค๋ฉด, Envoy ๊ณต์ ๋ฌธ์์ ๋์ ์๋ค.
๋ง์ฝ istiod
๋ฅผ ์ง์ ๊ตฌํํด์ผ ํ๋ค๋ฉด, Envoy์ ์ xDS API๋ค์ ๊ตฌํํด์ค์ผ ํ ๊ฒ์ด๋ค.
Istio Envoy๊ฐ ์ฑํฌํ๋ ๊ณผ์
์์ ๋จ๊ณ(Bootstrap)
Envoy ์ธ์คํด์ค๋ ๋จผ์ bootstrap ๊ตฌ์ฑ์ ๋ก๋ํ๋ค. ์ด๊ธฐ ๊ตฌ์ฑ์๋ xDS ์๋ฒ(istiod
)์ ์ฃผ์์ ์ด๊ธฐ ์ฐ๊ฒฐ์ ์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค.
CDS & EDS ์ธํ
๋จผ์ Envoy๊ฐ proxyํ๋ ์งํฉ(Envoy: ํด๋ฌ์คํฐ)์ ์ํฌ๋ก๋(Envoy: ์๋ํฌ์ธํธ)์ ์ํ๋ฅผ ์ฒดํฌํ๊ณ ๊ตฌ์ฑ์ ์ฑํฌํ๋ค.
์์๋ CDS๋ก ํด๋ฌ์คํฐ ์ ๋ณด๋ฅผ ์ฑํฌํ๊ณ , CDS๋ก ์ฑํฌํ ์ ๋ณด๋ฅผ ํ์ฉํด EDS ์ฑํฌ๋ฅผ ์งํํ๋ค.
๋ง์ฝ ์ํฌ๋ก๋๊ฐ ํฌ์ค์ฒดํฌ๋ฅผ ์ ๊ณตํ๋ค๋ฉด, ํด๋น ํฌ์ค์ฒดํฌ๋ฅผ ์ฌ์ฉํด ์ํ๋ฅผ ์ฒดํฌํ๋ค.
RDS & LDS ์ธํ
istiod
๋ก๋ถํฐ RDS/LDS ์ธํ
์ ์ฑํฌ ํ๋ค. ์ด ๊ณผ์ ์ด ์๋ฃ ๋๋ฉด, Envoy๋ ํธ๋ํฝ์ ๋ฐ์ ์ ์๋ ์ํ๊ฐ ๋๋ค!
๊ธฐ์กด ์ปค๋ฅ์ ์ ๋์ฒดํ๊ธฐ ์์
๋ง์ฝ ์ด๋ฏธ Envoy๊ฐ ํธ๋ํฝ์ ๋ฐ๊ณ ์๋ ์ค์ xDS ์ฑํฌ๊ฐ ์ด๋ค์ง ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ด๋ค. ๊ผผ๊ผผํ Envoy๋ xDS ์ฑํฌ ์ํฉ์์๋ ์ปค๋ฅ์ ์ ์ค ์์ด ์ฝ๋์ ์ค์ ์ reload ํ ์ ์๋๋ก ๊ตฌ์ฑ ๋์ด ์๋ค.