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 chartPermalink
Istio๋ ์ ๋ง ์น์ (?)ํ๊ฒ๋ ์ค์น ๋ฐฉ๋ฒ์ 3๊ฐ์ง๋ ์ ๊ณตํ๋ค (์ฐ์ ๊ณ ๋ง์๋ผ เฒ _เฒ )
ํ์โฆ ์ผ๋จ ์ฌ๊ธฐ์๋ถํฐ ์ง์ง ๋ง๋ง ํ๋๋ฐ, ์ผ๋จ ๋ณธ์ธ์ด ์ฒด๊ฐํ ์ค์น ๋์ด๋ ์์๋
- (์ฌ์)
istioctl
- Istio helm chart
- Istio Operator
- (์ด๋ ค์)
Istio Operator๋ K8s Operator ํจํด์ ์ต์ํ์ง ์๋ค๋ฉด, ์ผ๋จ ๋ชจ๋ฅธ์ฒ ํ๊ณ ๋์ด๊ฐ์! (๊ทธ๋ฐ๋ฐ, kiali ์ค์นํ ๋ ๋ ๋์จ๋ค O=(โ-โQ))
istioctl
๋ก ์ค์นํ๊ธฐPermalink
์ ์ผ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด๋ค! ์ผ๋จ istioctl
๋ถํฐ ๊น์์ค๋ค.
brew install istioctl
์ค์น ํ์ istioctl version
์ผ๋ก ์ ์ค์น๋์๋์ง ์ฒดํฌํ๋ค.
๊ทธ ๋ค์์ ๊ฐ๋จํ๋ค. istio-system
namespace๋ฅผ ๋ง๋ค๊ณ , istioctl install
๋ก ์ค์นํ๋ฉด ๋! ๐ค
Istio๋ ์ค์นํ ๋ ์ ๊ณตํ๋ ๋ช๊ฐ์ง ๊ตฌ์ฑ์ด ์๋๋ฐ, ์ต์
์ ์ ์ฃผ๋ฉด default
๋ก ์ค์น๋๊ณ , istiod
์ ๊ธฐ๋ณธ istio-ingressgateway
๊ฐ ์ค์น๋๋ค.
๊ทธ์ธ์ demo
, minimal
๋ ์๋๋ฐ ํ์์ ๋ฐ๋ผ์ ์ค์นํ๊ธธ
Istio: Installation Configuration Profiles
Istio helm chartPermalink
์ด๋ฒ์๋ 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๋ก ์ค์นํ๊ธฐPermalink
์๊ฑด 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 & KialiPermalink
ํด์ฐโฆ ๊ฒจ์ฐ๊ฒจ์ฐ Istio๋ฅผ ํด๋ฌ์คํฐ์ ๋์ ๋ค. Istio ์ด ๋ ์ ๋ณดํต ๋ด๊ธฐ๊ฐ ์๋์๋คโฆ ์ด์ istio๋ฅผ ์ด์ํ๋๋ฐ ํ์ํ addon์ ์ค์นํด๋ณด์! ์ฌ๋ฌ addon์ด ์์ง๋ง, ํ์์ ์ธ ๊ฑด Prometheus์ Kiali ๋ ๋ ์์ด๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒPermalink
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 OperatorPermalink
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
๋ฆฌ์์ค๊ฐ ๋ฌ ๊ฑธ ํ์ธํ ์ ์๋ค!
๊ฟํ!!Permalink
๊ท์ฐฎ๊ฒ ๋งค๋ฒ kubectl port-forward
ํ ํ์ ์์ด istioctl dashboard
๋ช
๋ น์ด๋ก ํฌํธ ํฌ์๋ฉ ํ ์ ์๋ค!! ใ
ใ
$ istioctl dashboard kiali
$ istioctl dashboard prometheus
๋ง๋ฌด๋ฆฌ ํ๋ฉฐPermalink
์ด์ Istio๋ฅผ ๊ตฌ์ถํ์ผ๋, ๋ง์ดํฌ๋ก ์๋น์ค๋ค์ ๋์์ Istio๋ฅผ ํ์ฉํด๋ณผ ์ฐจ๋ก๋ค!!
Airflow์ Istio Graph. ๊ฐ ์ปดํฌ๋ํธ๊ฐ Postgres์ Redis๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ ๋ณด์ธ๋ค.
Istio์์ ์ ๊ณตํ๋ helloworld ์์ ์ Book Info ์์ ๋ก ํธ๋ํฝ์ ๋ง๊ตฌ๋ง๊ตฌ ์ฃผ๋ฌผ๋ฌ ๋ณด์! (์ฐํํโฆ ๋ค์ ํฌ์คํธ์! To be continuedโฆ)
โก๏ธ Istio helloworld
์์ ๋ฐ๋ชจ
โก๏ธ Istio bookinfo
์์ ๋ฐ๋ชจ