Install Istio and Addons(Prometheus, Kiali)
24๋
2์์ ์์ฑ ํ, ์ต์ istio ๋ฒ์ ์ผ๋ก ๊ณผ์ ์ ์
๋ฐ์ดํธ ํ์ต๋๋ค. ์ง๊ธ 25๋
6์ ๊ธฐ์ค์ผ๋ก Istio 1.26.1 ๋ฒ์ ์ด ์ต์ ๋ฒ์ ์
๋๋ค.
Apple M3 ๋งฅ๋ถ(Sequoia 15.5)์์ Rancher Desktop ํตํด Local Kubernetes Cluster ๊ตฌ์ฑํ์ฌ ์งํํ์์ต๋๋ค. K8s ๋ฒ์ ์ 1.31์
๋๋ค.

24๋ ์ ์ฒซ ์๊ฒฉ์ฆ ๊ณต๋ถ๋ก Istio๋ฅผ ์์ํ๊ณ ๋ฌดํ ๊ณ ํต ๋ฐ๊ณ ์๋ ๋ ์์ โฆ Udemy ๊ฐ์๋ ์ญ ๋ค ๋ค์๊ณ , ์ด์ ๋ก์ปฌ ๋งฅ๋ถ์ Istio๋ฅผ ๊ตฌ์ถํด์ ์ด๋ฆฌ์ ๋ฆฌ ํธ์ฆ์จ์ ํด๋ณด๊ณ ์๋ค.
์ด๋ฒ ํฌ์คํธ๋ Istio๋ฅผ ์ค์นํ๋ฉด์ ๊ณ ๊ตฐ๋ถํฌํ ๋์ Istio ๋ฐฐํฌ ๊ฒฝํ๊ณผ ๋น๋ฒ(?)์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
istioctl vs. Istio Operator vs. Istio helm chart
Istio๋ ์ ๋ง ์น์ (?)ํ๊ฒ๋ ์ค์น ๋ฐฉ๋ฒ์ 3๊ฐ์ง๋ ์ ๊ณตํ๋ค (์ฐ์ ๊ณ ๋ง์๋ผ เฒ _เฒ )
ํ์โฆ ์ผ๋จ ์ฌ๊ธฐ์๋ถํฐ ์ง์ง ๋ง๋ง ํ๋๋ฐ, ์ผ๋จ ๋ณธ์ธ์ด ์ฒด๊ฐํ ์ค์น ๋์ด๋ ์์๋
- (์ฌ์)
istioctl- Istio helm chart
- Istio Operator
- (์ด๋ ค์)
Istio Operator๋ K8s Operator ํจํด์ ์ต์ํ์ง ์๋ค๋ฉด, ์ผ๋จ ๋ชจ๋ฅธ์ฒ ํ๊ณ ๋์ด๊ฐ์! (๊ทธ๋ฐ๋ฐ, kiali ์ค์นํ ๋ ๋ ๋์จ๋ค O=(โ-โQ))
istioctl๋ก ์ค์นํ๊ธฐ
์ ์ผ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด๋ค! ์ผ๋จ istioctl๋ถํฐ ๊น์์ค๋ค.
brew install istioctl
์ค์น ํ์ istioctl version์ผ๋ก ์ ์ค์น๋์๋์ง ์ฒดํฌํ๋ค.
๊ทธ ๋ค์์ ๊ฐ๋จํ๋ค. istio-system namespace๋ฅผ ๋ง๋ค๊ณ , istioctl install๋ก ์ค์นํ๋ฉด ๋! ๐ค

Istio๋ ์ค์นํ ๋ ์ ๊ณตํ๋ ๋ช๊ฐ์ง ๊ตฌ์ฑ์ด ์๋๋ฐ, ์ต์
์ ์ ์ฃผ๋ฉด default๋ก ์ค์น๋๊ณ , istiod์ ๊ธฐ๋ณธ istio-ingressgateway๊ฐ ์ค์น๋๋ค.
๊ทธ์ธ์ demo, minimal๋ ์๋๋ฐ ํ์์ ๋ฐ๋ผ์ ์ค์นํ๊ธธ

Istio: Installation Configuration Profiles
Istio helm chart
์ด๋ฒ์๋ istio๋ฅผ helm chart๋ก ๋ฐฐํฌํ๋ ๋ฐฉ์์ด๋ค. istioctl์ด ํธํ๊ธด ํ์ง๋ง, GitOps๊ฐ ์ ๋๋๊ฒ ํจ์ (โฅ๏นโฅ)
๋ง์ฝ istio ์ค์น ๋ฒ์ ์ yaml ํ์์ ํ์ผ๋ก ๋ฒ์ ๋ ํด์ผ ํ๋ค๋ฉด, helm์ด ์ข๋ค.
๋ณธ์ธ์ helmfile๋ ํจ๊ป ์จ์ ๊ตฌ์ฑํด์ istio๋ฅผ ์ค์น ํ๋๋ฐ, ์์ฑ๋ helmfile.yaml ํ์ผ์ ์๋์ ๊ฐ๋ค.
repositories:
- name: istio
url: https://istio-release.storage.googleapis.com/charts
releases:
- name: istio-base
namespace: istio-system
chart: istio/base
version: 1.26.1
values: []
- name: istio-istiod
namespace: istio-system
chart: istio/istiod
version: 1.26.1
needs: [istio-system/istio-base]
values: []
- name: istio-gateway
namespace: istio-system
chart: istio/gateway
version: 1.26.1
needs: [istio-system/istio-istiod]
values: []
istio helm chart์์ ์ ๊ณตํ๋ value ํ์ผ๋ ์ฝ์ด๋ดค๋๋ฐ, ๋ฑํ ์ปค์คํ ํ ๋ถ๋ถ ์์ด ๋ฐ๋ก ์ฐ๋ฉด ๋๋ค!
istioctl์ "default" ๊ตฌ์ฑ๊ณผ ๋์ผํ๊ฒ ์ค์นํ๋ ค๋ฉด ์ ๋ ๊ฒ istio-base, istio-istiod, istio-gateway 3๊ฐ๋ฅผ ์ค์นํด์ฃผ๋ฉด ๋๋ค.
istio-base๋ istio์ CRD๊ฐ ๋ชจ์ฌ ์๋ helm chart์ด๋ค.istio-istiod๋ฅผ ์ค์นํด์ผistiod๊ฐ ๋ํ๋ก์ด ๋๋ค.istio-gateway๋ ์ค์นํ๋ฉด, ๊ธฐ๋ณธ ingress gateway๊น์ง ๋ํ๋ก์ด!
์ด๋ ๊ฒ ํด๋๊ณ ๋ค ์ฐ๋ฉด helmfile destroy๋ก ๊น๋ํ๊ฒ ๋ ๋ ธ๋ค ใ
ใ
Istio ๊ณต์ ๋ฌธ์์์๋ helm์ผ๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ค๋ช ํ๊ณ ์์ผ๋ ํ์ํ๋ค๋ฉด ์ฐธ๊ณ ํ์!
โก๏ธ Istio: Install with Helm
Istio Operator๋ก ์ค์นํ๊ธฐ
์๊ฑด K8s์ Operator ํจํด์ผ๋ก Istio๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋จ Operator ํจํด์ด ๋ญ์ง ์ ๋ชจ๋ฅธ๋ค๋ฉด ํจ์คํ๋ ๊ฑธ ์ถ์ฒํ๋คโฆ
25.06์ ํ์ธํด๋ณด๋, 1.26.1 ๋ฒ์ ์์๋ istioctl์ helm chart๋ก ์ค์นํ๋ ๋ฐฉ๋ฒ ๋ชจ๋ Deprecate ๋์์ต๋๋คโฆ ์๋๋ ๋ฌธ๋จ์ ์์นด์ด๋ธ๋ฅผ ์ํด ๋จ๊ฒจ๋ก๋๋ค!
์ผ๋จ Istio Operator๋ฅผ ๋์์ผ ํ๋๋ฐ, istioctl๊ณผ helm chart๋ก ๋์ฐ๋ ๋ฐฉ๋ฒ์ด ์๋ค. (istioctl ๋ฐฉ์์ 25.06 ๊ธฐ์ค Deprecation ๋์์ต๋๋คโฆ)
# Deprecated: 25.06 Checked
istioctl operator init
# https://github.com/istio/istio/tree/1.20.7/manifests/charts/istio-operator
helm install istio-operator \
manifests/charts/istio-operator \
-n istio-operator
์๋ ๊ฒ istio-operator๋ผ๋ namespace์ Istio Operator๋ฅผ ๋์๋๋ฉด, ์ด์ IstioOperator ๋ฆฌ์์ค๋ฅผ ๋์ธ ์ ์๋ค! (์ด๋ฆ ํท๊ฐ๋ฆฌ๋ ์ฃผ์!)
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: example-istiocontrolplane
spec:
profile: demo
EOF

๋ณด๋ฉด, istio-system ns์ istiod๊ฐ ํ๋ ๋ฌ ๊ฑธ ๋ณผ ์ ์๋ค!!
Addon ์ค์น: Prometheus & Kiali

ํด์ฐโฆ ๊ฒจ์ฐ๊ฒจ์ฐ Istio๋ฅผ ํด๋ฌ์คํฐ์ ๋์ ๋ค. Istio ์ด ๋ ์ ๋ณดํต ๋ด๊ธฐ๊ฐ ์๋์๋คโฆ ์ด์ istio๋ฅผ ์ด์ํ๋๋ฐ ํ์ํ addon์ ์ค์นํด๋ณด์! ์ฌ๋ฌ addon์ด ์์ง๋ง, ํ์์ ์ธ ๊ฑด Prometheus์ Kiali ๋ ๋ ์์ด๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ
Istio์์ ๋๋ฌด๋๋ ๊ณ ๋ง๊ฒ๋ Istio Addon์ ๋์ฐ๊ธฐ ์ํ yaml ํ์ผ์ Github์ ์ฌ๋ ค๋๋ค!! source ๊ทธ๋์ ์๊ธฐ์ ์๋ addon ํ์ผ์ ๊ทธ๋ฅ k apply -f ํ๋ฉด ๋๋ค.
export PROMETHEUS_ADDON=https://raw.githubusercontent.com/istio/istio/refs/tags/1.26.1/samples/addons/prometheus.yaml
kubectl apply -f $PROMETHEUS_ADDON -n istio-system
export KIALI_ADDON=https://raw.githubusercontent.com/istio/istio/refs/tags/1.26.1/samples/addons/kiali.yaml
kubectl apply -f $KIALI_ADDON -n istio-system
๊ผญ istio-system namespace์ ์ค์นํด์ผ ํ๋ค!
๊ทธ๋ฆฌ๊ณ ์๋ ๋ช ๋ น์ด๋ก ๋ก์ปฌ์์ ์ ๊ทผํ ์ ์๋๋ก port-forward ํด์ฃผ์.
kubectl port-forward -n istio-system svc/kiali 20001:20001
kubectl port-forward -n istio-system svc/prometheus 9090:9090
๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด, ๋ฐ๋๋ก kubectl delete -f ํด์ฃผ์.
kubectl delete -f $PROMETHEUS_ADDON -n istio-system
kubectl delete -f $KIALI_ADDON -n istio-system
Kiali Operator
Istio์ IstioOperator์ฒ๋ผ Kiali์ Prometheus๋ Operator ํจํด์ ์ง์ํ๋ค! (์ฐ์ ๋๋ฌด ๊ณ ๋ง์๋ผ เฒ _เฒ )
Prometheus๋ Operator ํจํด์ผ๋ก ์ค์นํด๋ณด๋ฉด ์ข๊ฒ ์ง๋งโฆ Prometheus๋ Istio ๋งํผ ๋ณต์กํ ๋ ์์ด๋ผ Prometheus Operator๋ ๋ณ๋์ ํฌ์คํธ๋ก ๋ถ๋ฆฌํ๊ฒ ๋ค
์ผ๋จ Kiali Operator๊ฐ ๋์ํ kiali-operator ๋ค์์คํ์ด์ค๋ฅผ ๋ง๋ค์ด์ค๋ค.
kubectl create ns kiali-operator
๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด helmfile.yaml์ ๊ตฌ์ฑํ๋ค.
# @helmfile-kiali.yaml
repositories:
- name: kiali
url: https://kiali.org/helm-charts
releases:
- name: kiali-operator
namespace: kiali-operator
chart: kiali/kiali-operator
version: 2.8.0
values: []
helmfile apply -f helmfile-kiali.yaml๋ก ๋ํ๋ก์ด ํ๋ค.

๋ง์ฝ, values ํญ๋ชฉ์ ์๋์ ๊ฐ์ด ์ธํ
ํ๋ฉด, Kiali Operator์ ํจ๊ป Kiali CR๋ ํจ๊ป ์์ฑ๋๋ค.
# @helmfile-kiali.yaml
...
releases:
- name: kiali-operator
namespace: kiali-operator
chart: kiali/kiali-operator
version: 2.8.0
values:
cr:
create: true
namespace: istio-system
์๋๋ฉด Kiali ๋ฆฌ์์ค๋ฅผ ์๋ ๋ช
๋ น์ด๋ก ์ง์ ๋์ฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค!
kubectl apply -f - <<EOF
apiVersion: kiali.io/v1alpha1
kind: Kiali
metadata:
name: kiali
namespace: istio-system
spec:
auth:
strategy: anonymous
EOF

ํ์ธํด๋ณด๋ฉด, istio-system ns์ kiali ๋ฆฌ์์ค๊ฐ ๋ฌ ๊ฑธ ํ์ธํ ์ ์๋ค!
๊ฟํ!!
๊ท์ฐฎ๊ฒ ๋งค๋ฒ kubectl port-forward ํ ํ์ ์์ด istioctl dashboard ๋ช
๋ น์ด๋ก ํฌํธ ํฌ์๋ฉ ํ ์ ์๋ค!! ใ
ใ
$ istioctl dashboard kiali
$ istioctl dashboard prometheus
๋ง๋ฌด๋ฆฌ ํ๋ฉฐ
์ด์ Istio๋ฅผ ๊ตฌ์ถํ์ผ๋, ๋ง์ดํฌ๋ก ์๋น์ค๋ค์ ๋์์ Istio๋ฅผ ํ์ฉํด๋ณผ ์ฐจ๋ก๋ค!!
Airflow์ Istio Graph. ๊ฐ ์ปดํฌ๋ํธ๊ฐ Postgres์ Redis๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ ๋ณด์ธ๋ค.
Istio์์ ์ ๊ณตํ๋ helloworld ์์ ์ Book Info ์์ ๋ก ํธ๋ํฝ์ ๋ง๊ตฌ๋ง๊ตฌ ์ฃผ๋ฌผ๋ฌ ๋ณด์! (์ฐํํโฆ ๋ค์ ํฌ์คํธ์! To be continuedโฆ)
โก๏ธ Istio helloworld ์์ ๋ฐ๋ชจ
โก๏ธ Istio bookinfo ์์ ๋ฐ๋ชจ