์ง๋ ๊ธ์์ Istio mTLS ์ ๋ํด ์์๋ณด์๊ณ , ์ ์ฉ๋ ํด๋ดค์ต๋๋ค. ๋ Kiali ๋ฅผ ํตํด์ ์ค์ mTLS ๊ฐ ์ ์ฉ ๋์๋ ์ง๋ ์์๋ดค์ฃ .
Kiali ์์ mTLS ๊ฐ ์ ์ฉ๋๋ค๊ณ ์์ด์ฝ์ผ๋ก ํ์๋ฅผ ํด์ฃผ๊ธด ํ๋๋ฐ ์ ๋์ผ๋ก ์ง์ ์ํธํ๊ฐ ๋๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ Istio ๊ณต์ ๋ฌธ์์์ ์ ๊ณตํด์ฃผ๋ ์์ ์ tcpdump ๋ฅผ ์ด์ฉํด์ ํ๋ฒ ํ์ธํด๋ณด์ฃ !
๋ ์ธ ๋๋์ฝ๋~
๋ค์ด๊ฐ๊ธฐ ์์ ์ฃผ์ํ ์ ์ด ์์ต๋๋ค!
istio-proxy container ์์ tcpdump ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด sudo ๋ฅผ ๊ถํ์ ๊ฐ์ง ์ ์๋๋ก privilege ๋ฅผ true ๋ก ์ฃผ์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด istio ๋ฅผ ์ค์นํฉ๋๋ค.
$ istioctl install --set values.global.proxy.privileged=true
Istio ๊ณต์ ๋ฌธ์์ ์ ๊ณต๋๋ ์์ ๋ฅผ ์ ๋ถ ์ค์นํ๋๋ฐ ์ฐ์ ํ๋ฌธ์ ํ์ธํ๊ธฐ ์ํด์ Istio ๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ๋๋ค์ ๋ฐฐํฌํ์ต๋๋ค.
httpbin ์ nginx container ์ ์ ๊ทผํด์ tcpdump ๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
์ดํ ํธ๋ํฝ์ ๋ฐ์์์ผ์ ํจํท์ ํ์ธํฉ๋๋ค. (์๋ ์ฝ๋๋ ๊ณต์ ๋ฌธ์์์ ์ ๊ณต๋จ)
for from in "foo" "bar" "legacy"; do for to in "foo" "bar"; do kubectl exec "$(kubectl get pod -l app=sleep -n ${from} -o jsonpath={.items..metadata.name})" -c sleep -n ${from} -- curl http://httpbin.${to}:8000/ip -s -o /dev/null -w "sleep.${from} to httpbin.${to}: %{http_code}\n"; done; done
์๋ต๊ฐ์ด JSON ํ์์ {"origin" : "10.36.0.7"} ์ธ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
์์ ํ ํ๋ฌธ์ด์ฃ . ๋น๋ฐ๋ฒํธ๋ผ๋ ์์๋ค๋ฉด ๊ทธ๋๋ก ๋ ธ์ถ๋ ์ํ์ด ์์ต๋๋ค.
mTLS ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ํ๋๋ผ๋ฆฌ๋ ํ๋ฌธ์ผ๋ก ํต์ ํ๋ค๋ ๊ฑธ ์ ์ ์์ต๋๋ค.
๊ทธ๋ผ Istio Proxy ๋ฅผ ์ฌ์ฉํด์ mTLS ๊ฐ ์ ์ฉ๋๋๋ก ํด๋ณด์ฃ .
READY ๊ฐ 2/2 ์ธ ๊ฒ์ ๋ณด๋ Istio Proxy Container ๊ฐ ์คํ๋๊ณ ์๋ค๋ ๊ฑธ ์ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด๋ฒ์๋ ์ปจํ ์ด๋์ ์ ๊ทผ์ ํด๋ณด์ฃ !
k exec -it -n foo httpbin-5c5944c58c-fqxcx -c istio-proxy -- bash
-c ์ต์ ์ผ๋ก istio-proxy ์ ์ ๊ทผํด์ผ ํฉ๋๋ค!!
istio-proxy ๊ฐ ๊ฒฐ๊ตญ ์ํธํ, ๋ณตํธํ๋ฅผ ํด์ฃผ๊ธฐ ๋๋ฌธ์ httpbin container ์ ์ ๊ทผํด์ ํ์ธํ๋ฉด ์ฌ์ ํ ํ๋ฌธ์ผ๋ก ๋ณด์ ๋๋ค!!
์์์ privileged=true ๋ฅผ ํด์คฌ๊ธฐ ๋๋ฌธ์ sudo ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋!! source ์ destination ์ ๋น๊ตํด๋ดค์ ๋ ๋นจ๊ฐ์ ๋ค๋ชจ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ๋ง๊ณ , ์ค์ ๋ก ์ํธํ๊ฐ ๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
SSL Termination ์ผ๋ก ์ธํด ์๋ฒ๋ผ๋ฆฌ์ ํต์ ์ ํ๋ฌธ์ผ๋ก ๋์ง๋ง, mTLS ์ ์ฌ์ฉํ๋ฉด ์์ฃผ ์ฝ๊ฒ ์ธ์ฆ์๋ฅผ ๊ด๋ฆฌํ ํ์ ์์ด ์ํธํ๋ฅผ ํตํ ํต์ ์ด ๊ฐ๋ฅํด์ง๋๋ค! Istio ์ ํต์ฌ ๊ธฐ๋ฅ๋ต์ต๋๋ค.
์์ ๋ถํฐ mTLS ๋ฅผ ์ฌ์ฉํ๋ฉด ์ง์ง ์ํธํ๊ฐ ๋๋์ง ๊ถ๊ธํ๋๋ฐ, ์ด๋ฒ ์ค์ต์ผ๋ก ๊ถ๊ธ์ฆ์ด ํ๋ ธ๋ค์!
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!
'DevOps > Istio' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Istio] ์ฟ! ์ฐ๋ฆฌ๋ง์ ๋น๋ฐ์ด์ผ - mTLS (ํ์ธํธ) (0) | 2023.07.02 |
---|---|
[Istio] IngressGateway ์ TLS ๋ฅผ ์ ์ฉํด๋ณด์! (1) | 2023.05.18 |
[Istio] Istio Ingress ์ ALB ๋ฅผ ๋ถ์ฌ๋ณด์ ! (0) | 2023.02.12 |