๐น ๊ฐ์
์ด๋ฒ ๊ธ์์๋ Istio์์ Kiali๋ฅผ ํ์ฉํ์ฌ ์๋น์ค ๋ฉ์ ๋คํธ์ํฌ๋ฅผ ์๊ฐํํ๊ณ ํธ๋ํฝ ํ๋ฆ์ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Kiali๋ ์๋น์ค ๋ฉ์์ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , ๋คํธ์ํฌ ํธ๋ํฝ์ ์๊ฐ์ ์ผ๋ก ํํํ๋ ์คํ์์ค ๋๊ตฌ์
๋๋ค.
์ด๋ฅผ ํตํด ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ํธ์ถ ๊ด๊ณ, ํธ๋ํฝ ํ๋ฆ, ์ค๋ฅ์จ ๋ฐ ์ฑ๋ฅ ์ํ๋ฅผ ์ฝ๊ฒ ๋ถ์ํ ์ ์์ต๋๋ค.
์ด ๊ธ์์๋ Kiali์ ์ฃผ์ ๊ธฐ๋ฅ, Istio์์ Kiali๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ, Kiali๋ฅผ ํ์ฉํ ์ค์ ๋ถ์ ์ฌ๋ก๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๐น 1. Kiali๋?
โ 1.1 Kiali ๊ฐ๋
Kiali๋ Istio์ ์๋น์ค ๋ฉ์๋ฅผ ์๊ฐํํ๊ณ ๋คํธ์ํฌ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ด๋ฆฌ ๋๊ตฌ์
๋๋ค.
์๋น์ค ๋ฉ์์์ ์ด๋ค ์๋น์ค๊ฐ ์ด๋ค ์๋น์ค๋ฅผ ํธ์ถํ๋์ง, ํธ๋ํฝ ํ๋ฆ์ ์ด๋ป๊ฒ ๋๋์ง, ์ด๋์์ ๋ณ๋ชฉ์ด ๋ฐ์ํ๋์ง ๋ถ์ํ ์ ์์ต๋๋ค.
Kiali์ ์ฃผ์ ๊ธฐ๋ฅ
- ์๋น์ค ๋ฉ์ ๋คํธ์ํฌ ์๊ฐํ โ ์๋น์ค ๊ฐ์ ํธ์ถ ๊ด๊ณ๋ฅผ ํ๋์ ํ์ ๊ฐ๋ฅ
- ํธ๋ํฝ ๋ชจ๋ํฐ๋ง โ ์ค์๊ฐ ํธ๋ํฝ ํ๋ฆ ๋ฐ ์ค๋ฅ์จ ๋ถ์
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง โ ์๋ต ์๊ฐ ๋ฐ ์ง์ฐ ์๊ฐ ํ์ธ
- ๋ณด์ ๋ถ์ โ mTLS(์๋น์ค ๊ฐ ์ํธํ) ์ค์ ์ํ ํ์ธ
- Istio ์ค์ ๊ด๋ฆฌ โ VirtualService, DestinationRule, Gateway ๋ฑ Istio ๋ฆฌ์์ค๋ฅผ UI์์ ๊ด๋ฆฌ ๊ฐ๋ฅ
๐ก Kiali๋ Istio์ ํต์ฌ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ก, ์ค์๊ฐ ๋คํธ์ํฌ ์ํ๋ฅผ ํ์ธํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
๐น 2. Istio์์ Kiali ์ค์น ๋ฐ ์ค์
โ 2.1 Helm์ ์ฌ์ฉํ์ฌ Kiali ์ค์นํ๊ธฐ
Istio์์ Kiali๋ฅผ ์ค์นํ๋ ค๋ฉด Helm์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
helm install istio-kiali istio/kiali -n istio-system
์ค์น ํ Kiali๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
kubectl get pods -n istio-system | grep kiali
์ถ๋ ฅ ์์ :
istio-kiali-6b798fbdc8-xyz12 1/1 Running 0 5m
โ 2.2 Kiali ์น UI ์ ์ํ๊ธฐ
Kiali์ ์น UI์ ์ ์ํ๋ ค๋ฉด ํฌํธ๋ฅผ ํฌ์๋ฉํฉ๋๋ค.
kubectl port-forward -n istio-system svc/kiali 20001:20001
์น ๋ธ๋ผ์ฐ์ ์์ http://localhost:20001 ์ ์ ์ํ๋ฉด Kiali UI๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๐ก Kiali UI์์ Istio์ ์๋น์ค ๋ฉ์๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ถ์ํ ์ ์์ต๋๋ค.
๐น 3. Kiali๋ฅผ ํ์ฉํ ๋คํธ์ํฌ ํ๋ฆ ๋ถ์
โ 3.1 ์๋น์ค ๋ฉ์ ๋คํธ์ํฌ ์๊ฐํ
Kiali์ Graph(๊ทธ๋ํ) ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด, ์๋น์ค ๋ฉ์์์ ๊ฐ ์๋น์ค๊ฐ ์๋ก ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง ์๊ฐ์ ์ผ๋ก ํํํ ์ ์์ต๋๋ค.
Kiali Graph์์ ํ์ธํ ์ ์๋ ์ ๋ณด
- ์๋น์ค ๊ฐ์ ํธ์ถ ๊ด๊ณ ๋ฐ ํธ๋ํฝ ํ๋ฆ
- HTTP/gRPC ์์ฒญ๋ ๋ฐ ์๋ต ์๊ฐ
- ์๋ฌ์จ(4xx, 5xx ์ค๋ฅ ๋ถ์)
- ์๋น์ค ๊ฐ TLS ์ ์ฉ ์ฌ๋ถ(mTLS ํ์ฑํ ์ํ ํ์ธ)
๐ก Kiali Graph๋ ์ค์๊ฐ ํธ๋ํฝ ํ๋ฆ์ ๋ถ์ํ๋ ๋ฐ ์ ์ฉํ๋ฉฐ, ๋ณ๋ชฉ ํ์์ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
โ 3.2 ํธ๋ํฝ ๋ชจ๋ํฐ๋ง ๋ฐ ์ฑ๋ฅ ๋ถ์
Kiali์ Traffic Metrics(ํธ๋ํฝ ๋ฉํธ๋ฆญ) ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด, ๊ฐ ์๋น์ค๋ณ ์์ฒญ ์, ์๋ต ์๋, ์ค๋ฅ์จ์ ์์ธํ ๋ถ์ํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ๋ถ์ ์ฃผ์ ์งํ
๋ฉํธ๋ฆญ | ์ค๋ช |
requests per second | ์ด๋น ์์ฒญ ์ |
latency (p50, p95, p99) | ์๋ต ์๊ฐ(50%, 95%, 99% ํผ์ผํ์ผ) |
error rate (4xx, 5xx) | ์ค๋ฅ ๋ฐ์๋ฅ |
๐ก ํน์ ์๋น์ค์์ ์๋ต ์๊ฐ์ด ๊ธธ๊ฑฐ๋ ์ค๋ฅ์จ์ด ๋๋ค๋ฉด, ๋ณ๋ชฉ์ด ๋ฐ์ํ ๊ตฌ๊ฐ์ ๋ถ์ํ์ฌ ์ต์ ํํด์ผ ํฉ๋๋ค.
โ 3.3 ๋ณด์ ์ํ ํ์ธ (mTLS ์ ์ฉ ์ฌ๋ถ ๋ถ์)
Kiali์ Security(๋ณด์) ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด, ์๋น์ค ๋ฉ์ ๋ด์์ mTLS(์๋น์ค ๊ฐ ์ํธํ)๊ฐ ํ์ฑํ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
mTLS ํ์ฑํ ์ํ ํ์ธ ๋ฐฉ๋ฒ
1๏ธโฃ Kiali UI์์ "Security" ํญ ์ ํ
2๏ธโฃ ๊ฐ ์๋น์ค ๊ฐ ์ฐ๊ฒฐ์์ ๐ ์์ด์ฝ์ด ํ์๋๋ฉด, mTLS๊ฐ ํ์ฑํ๋ ๊ฒ
3๏ธโฃ mTLS๊ฐ ๋นํ์ฑํ๋ ์๋น์ค๊ฐ ์๋ค๋ฉด, ๋ณด์ ์ค์ ์ ๊ฒ ํ์
๐ก Zero Trust ํ๊ฒฝ์์๋ ์๋น์ค ๊ฐ ํต์ ์ด ์ํธํ(mTLS)๋์ด์ผ ํ๋ฏ๋ก, Kiali๋ฅผ ํ์ฉํ์ฌ ๋ณด์ ์ํ๋ฅผ ์ ๊ฒํด์ผ ํฉ๋๋ค.
๐น 4. Kiali์์ Istio ์ค์ ๊ด๋ฆฌํ๊ธฐ
โ 4.1 Istio ๋ฆฌ์์ค ๊ด๋ฆฌ (VirtualService, DestinationRule ๋ฑ)
Kiali์์๋ Istio์ ์ฃผ์ ๋ฆฌ์์ค๋ฅผ UI์์ ์ง์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ด๋ฆฌ ๊ฐ๋ฅํ Istio ๋ฆฌ์์ค
- VirtualService โ ํธ๋ํฝ ๋ผ์ฐํ ์ค์
- DestinationRule โ ํธ๋ํฝ ๋ถ๋ฐฐ ๋ฐ mTLS ์ค์
- Gateway โ Ingress/Egress ํธ๋ํฝ ๊ด๋ฆฌ
- AuthorizationPolicy โ RBAC ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด
๐ก CLI ์์ด Kiali UI์์ Istio ์ค์ ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โ 4.2 ํน์ ์๋น์ค์ ์ฑ๋ฅ ์ต์ ํ ๋ถ์
Kiali์์๋ ํน์ ์๋น์ค์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ ์ต์ ํํ ์ ์๋๋ก ํํธ๋งต ๋ฐ ์์ฒญ ์ง์ฐ ์๊ฐ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฑ๋ฅ ๋ถ์ ์ ์ฃผ์ ํ์ธ ์ฌํญ
1๏ธโฃ ์๋ต ์๊ฐ์ด ๋น์ ์์ ์ผ๋ก ๊ธด ์๋น์ค ์๋ณ
2๏ธโฃ ์๋ฌ์จ์ด ๋์ ์๋น์ค ํ์ (5xx ์ค๋ฅ ๋ฐ์๋ฅ ๋ถ์)
3๏ธโฃ ํธ๋ํฝ์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํ ์๋น์ค ํ์ธ ํ Autoscaling ์ค์ ์ ๊ฒ
๐ก Kiali์์ ๋คํธ์ํฌ ํ๋ฆ๊ณผ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๋ฉด, ์๋น์ค์ ๋ณ๋ชฉ์ ์ฝ๊ฒ ์ฐพ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๐ ๊ฒฐ๋ก
- Kiali๋ Istio ์๋น์ค ๋ฉ์๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ถ์ํ๋ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ๋๋ค.
- ์๋น์ค ๊ฐ ํธ๋ํฝ ํ๋ฆ, ์ค๋ฅ์จ, ์๋ต ์๋๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- mTLS ์ ์ฉ ์ฌ๋ถ๋ฅผ ๋ถ์ํ์ฌ ๋ณด์ ์ํ๋ฅผ ์ ๊ฒํ ์ ์์ต๋๋ค.
- VirtualService, DestinationRule, Gateway ๋ฑ์ Istio ๋ฆฌ์์ค๋ฅผ UI์์ ์ง์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ๋ณ๋ชฉ์ ํ์ํ๊ณ , ์ต์ ํํ ์ ์๋๋ก ๋ค์ํ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.