Kubernetes Tools/Istio

[Istio ๊ฐ€์ด๋“œ ep.3] 1๋ถ€ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์„ค์ • #3 | Kubernetes์— Istio ์„ค์น˜ํ•˜๊ธฐ: Helm vs Istioctl

ygtoken 2025. 3. 18. 10:36
728x90

 

๐Ÿ”น ๊ฐœ์š”

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Istio๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
Istio๋Š” Helm ๋˜๋Š” Istioctl์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ฐฉ์‹์€ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ธ€์—์„œ๋Š” Helm๊ณผ Istioctl์„ ๋น„๊ตํ•˜๊ณ , ๊ฐ ์„ค์น˜ ๋ฐฉ๋ฒ•์˜ ํŠน์ง•๊ณผ ์ ˆ์ฐจ๋ฅผ ์„ค๋ช…ํ•œ ํ›„, ์‹ค์ œ Kubernetes ํ™˜๊ฒฝ์—์„œ Istio๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.


๐Ÿ”น 1. Istio ์„ค์น˜ ๋ฐฉ๋ฒ• ๋น„๊ต

โœ… 1.1 Istio ์„ค์น˜ ๋ฐฉ์‹ ๊ฐœ์š”

Istio๋ฅผ Kubernetes์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Helm Chart๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜
  2. 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 ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ์„œ๋น„์Šค ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

 

728x90