๐น ๊ฐ์
์ด๋ฒ ๊ธ์์๋ Kubernetes ํด๋ฌ์คํฐ์ Istio๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
Istio๋ Helm ๋๋ Istioctl์ ์ฌ์ฉํ์ฌ ์ค์นํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ๋ฐฉ์์ ์ฅ๋จ์ ์ด ์์ต๋๋ค.
์ด ๊ธ์์๋ Helm๊ณผ Istioctl์ ๋น๊ตํ๊ณ , ๊ฐ ์ค์น ๋ฐฉ๋ฒ์ ํน์ง๊ณผ ์ ์ฐจ๋ฅผ ์ค๋ช
ํ ํ, ์ค์ Kubernetes ํ๊ฒฝ์์ Istio๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ด
๋๋ค.
๐น 1. Istio ์ค์น ๋ฐฉ๋ฒ ๋น๊ต
โ 1.1 Istio ์ค์น ๋ฐฉ์ ๊ฐ์
Istio๋ฅผ Kubernetes์ ์ค์นํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- Helm Chart๋ฅผ ์ฌ์ฉํ์ฌ ์ค์น
- Istioctl์ ์ฌ์ฉํ์ฌ ์ค์น
๊ฐ ๋ฐฉ๋ฒ์ ์ค์ ์ ์ ์ฐ์ฑ, ์ค์น ์๋, ๊ด๋ฆฌ ํธ์์ฑ ๋ฑ์ ์ธก๋ฉด์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ค์น ๋ฐฉ๋ฒ | ์ฅ์ | ๋จ์ |
Helm | - ์ปค์คํ ์ค์ ๊ฐ๋ฅ- Helm ๊ด๋ฆฌ ๊ธฐ๋ฅ ํ์ฉ ๊ฐ๋ฅ | - ์ถ๊ฐ์ ์ธ Helm ์ค์น ํ์- Istio ๊ณต์ ๋ฌธ์์์ ๊ถ์ฅํ๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ด ์๋ |
Istioctl | - Istio ๊ณต์ ์ค์น ๋ฐฉ์- ๊ฐ๋จํ ๋ช ๋ น์ด๋ก ์ค์น ๊ฐ๋ฅ | - ์ค์น ๊ณผ์ ์์ ์ค์ ๋ณ๊ฒฝ์ด ์ ํ์ - Helm์ ๋นํด ์ ์ง๋ณด์ ์ ๋ถํธ |
๐น 2. Helm์ ์ฌ์ฉํ Istio ์ค์น
โ 2.1 Helm ์ค์น ํ์ธ
Helm์ ์ฌ์ฉํ์ฌ Istio๋ฅผ ์ค์นํ๋ ค๋ฉด Helm์ด ์ฌ์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
Helm์ด ์ค์น๋์ง ์์ ๊ฒฝ์ฐ ์๋ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ Helm์ ์ค์นํฉ๋๋ค.
curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
Helm ์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
helm version
์ถ๋ ฅ ์์
version.BuildInfo{Version:"v3.10.0", GitCommit:"xxxxx", GitTreeState:"clean"}
โ 2.2 Istio Helm Chart ์ ์ฅ์ ์ถ๊ฐ
Helm์ ์ฌ์ฉํ์ฌ Istio๋ฅผ ์ค์นํ๋ ค๋ฉด Istio Helm Chart ์ ์ฅ์๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
์ค๋ช :
- helm repo add istio ...: Istio์ Helm Chart ์ ์ฅ์๋ฅผ ์ถ๊ฐ
- helm repo update: ์ต์ ๋ฒ์ ์ Chart ๋ชฉ๋ก์ ์ ๋ฐ์ดํธ
โ 2.3 Istio ๊ธฐ๋ณธ ์ค์น (Helm ์ฌ์ฉ)
Istio๋ฅผ Helm์ผ๋ก ์ค์นํ๋ ค๋ฉด, ๋จผ์ istio-system ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ ํ ์ค์น๋ฅผ ์งํํฉ๋๋ค.
kubectl create namespace istio-system
helm install istio-base istio/base -n istio-system
helm install istiod istio/istiod -n istio-system
์ค๋ช :
- kubectl create namespace istio-system: Istio์ ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ ๋ค์์คํ์ด์ค ์์ฑ
- helm install istio-base ...: Istio์ ๊ธฐ๋ณธ ์ปดํฌ๋ํธ(CRD ๋ฑ) ์ค์น
- helm install istiod ...: Istio์ ์ปจํธ๋กค ํ๋ ์ธ(Pilot, Citadel ๋ฑ) ์ค์น
โ 2.4 Istio Ingress Gateway ์ถ๊ฐ ์ค์น (์ต์ )
Ingress Gateway๋ ํจ๊ป ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
helm install istio-ingress istio/gateway -n istio-system
์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get pods -n istio-system
๐น 3. Istioctl์ ์ฌ์ฉํ Istio ์ค์น
โ 3.1 Istioctl ์ค์น
Istioctl์ Istio์ ๊ณต์ CLI ๋๊ตฌ์ด๋ฉฐ, ๊ฐํธํ ๋ช ๋ น์ด๋ก Istio๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.18.0 sh -
cd istio-1.18.0
export PATH=$PWD/bin:$PATH
Istioctl์ด ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
istioctl version
์ถ๋ ฅ ์์
client version: 1.18.0
control plane version: 1.18.0
โ 3.2 Istio ๊ธฐ๋ณธ ์ค์น (Istioctl ์ฌ์ฉ)
Istioctl์ ์ฌ์ฉํ์ฌ Istio๋ฅผ ์ค์นํ๋ ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
istioctl install --set profile=default -y
์ค๋ช :
- istioctl install --set profile=default: ๊ธฐ๋ณธ ์ค์ ์ผ๋ก Istio๋ฅผ ์ค์น
- -y: ์ฌ์ฉ์ ์ ๋ ฅ ์์ด ์๋์ผ๋ก ์งํ
์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get pods -n istio-system
โ 3.3 Istio Ingress Gateway ์ถ๊ฐ ์ค์น (์ต์ )
Istio Ingress Gateway๋ฅผ ์ถ๊ฐ๋ก ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
istioctl install --set profile=default --set components.ingressGateways.enabled=true -y
์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get svc -n istio-system
๐น 4. ์ค์น ํ ๊ฒ์ฆ ๋ฐ ํ ์คํธ
โ 4.1 Istio ๋ค์์คํ์ด์ค ํ์ธ
Istio๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋์๋์ง ํ์ธํ๋ ค๋ฉด, Istio๊ฐ ๋ฐฐํฌ๋ ๋ค์์คํ์ด์ค(istio-system)๋ฅผ ์กฐํํฉ๋๋ค.
kubectl get namespaces
์ถ๋ ฅ ์์
NAME STATUS AGE
default Active 10h
istio-system Active 5m
โ 4.2 Istio ์๋น์ค ํ์ธ
Istio์ ์ฃผ์ ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get svc -n istio-system
์ถ๋ ฅ ์์
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istiod ClusterIP 10.96.0.1 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 5m
istio-ingressgateway LoadBalancer 10.96.0.2 34.68.12.34 80:31380/TCP,443:31390/TCP 5m
์ค๋ช :
- istiod: Istio ์ปจํธ๋กค ํ๋ ์ธ์ ํต์ฌ ์๋น์ค
- istio-ingressgateway: Istio์ Ingress Gateway ์๋น์ค
๐ ๊ฒฐ๋ก
- Istio๋ Helm ๋๋ Istioctl์ ์ฌ์ฉํ์ฌ ์ค์นํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ๋ฐฉ์์๋ ์ฅ๋จ์ ์ด ์์ต๋๋ค.
- Helm์ ์ค์ ์ ์ ์ฐ์ฑ์ด ๋์ ์ปค์คํ ๊ตฌ์ฑ์ด ํ์ํ ๋ ์ ๋ฆฌํ๋ฉฐ, Istioctl์ ๊ฐํธํ๊ฒ ์ค์นํ ์ ์๋ ๊ณต์ ๋ฐฉ์์ ๋๋ค.
- ์ค์น ํ Istio ๋ค์์คํ์ด์ค ๋ฐ ์๋น์ค ์ํ๋ฅผ ํ์ธํ์ฌ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ๊ฒ์ฆํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.