[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค] Kind + Cilium CNI ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ• (1)

kind ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋กœ์ปฌ์—์„œ ๋„์ปค๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ณธ๋‹ค.

๊ทผ๋ฐ ์ด์ œ ๋„คํŠธ์›Œํฌ cni๋Š” cilium์„ ๊ณ๋“ค์ธ ๋ฒ„์ „์ด๋‹ค.

์‚ฌ์ „ ํ™˜๊ฒฝ ์…‹ํŒ…

brew install orbstack

 

๋งฅ๋ถ์— ๋„์ปค ๋ฐํƒ‘์ด ์—†์–ด์„œ orbstack์„ ์„ค์น˜ํ•ด์ฃผ์—ˆ๋‹ค!

์˜คํ”ˆ์Šคํƒ ์œ„์— VM์„ ์ฃผ๋กœ ์šด์˜ํ•ด๋ณธ ์ž…์žฅ์œผ๋กœ์จ... ๋„์ปค๊ฐ€ VM ๋ณด๋‹ค ์•„๋ฌด๋ž˜๋„ ๊ฐ€๋ณ๋‹ค๋ณด๋‹ˆ.. ๋„์ปค ๋ฐ์Šคํฌํƒ‘์ด ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋„๊ตฌ์ธ์ค„ ์•Œ์•˜๋Š”๋ฐ, ๋„์ปค ๋ฐํƒ‘๋ณด๋‹ค ํ›จ์”ฌ ๊ฒฝ๋Ÿ‰ํ™”๋œ orbstack์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ์—ˆ๋‹ค!

 

kind, cilium cli ์„ค์น˜

brew install kind

brew install cilium-cli

cilium version
cilium-cli: v0.17.0 compiled with go1.24.0 on darwin/arm64
cilium image (default): v1.17.0
cilium image (stable): v1.17.1
cilium image (running): 1.17.1

 

kind ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•

ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ

cat > cilium.yaml << EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker

networking:
  disableDefaultCNI: true # kind cni ์„ค์น˜ X
  kubeProxyMode: "none" # kube-proxy ์„ค์น˜ X
EOF

kind create cluster --name cilium --config cilium.yaml

 

Kind๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์ฒด CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋Š”๋ฐ, ์ด ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•˜๋ฉด Kind๊ฐ€ ๊ธฐ๋ณธ cni์ธ kindnet์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

Cilium์€ kube-proxy ์—†์ด eBPF ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, kube-proxy๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ์ง์ ‘ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

kind create cluster --name cilium --config cilium.yaml
Creating cluster "cilium" ...
 โœ“ Ensuring node image (kindest/node:v1.32.2) ๐Ÿ–ผ
 โœ“ Preparing nodes ๐Ÿ“ฆ ๐Ÿ“ฆ ๐Ÿ“ฆ ๐Ÿ“ฆ
 โœ“ Writing configuration ๐Ÿ“œ
 โœ“ Starting control-plane ๐Ÿ•น๏ธ
 โœ“ Installing StorageClass ๐Ÿ’พ
 โœ“ Joining worker nodes ๐Ÿšœ
Set kubectl context to "kind-cilium"
You can now use your cluster with:

kubectl cluster-info --context kind-cilium

Not sure what to do next? ๐Ÿ˜…  Check out https://kind.sigs.k8s.io/docs/user/quick-start/

 

kubectl config use-context kind-cilium
kubectl cluster-info

 

์Šคํ„ฐ๋””๋ฅผ ํ•˜๊ณ  ์žˆ์–ด์„œ aws ํด๋Ÿฌ์Šคํ„ฐ๋„ ๊ฐ™์ด ์žˆ๋Š” ์ƒํ™ฉ์ธ๋ฐ,

kubectl๋กœ kind๋กœ ๊ตฌ์ถ•ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด use-context๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

cilium ์„ค์น˜

export API_SERVER_IP=$( kubectl get nodes -l node-role.kubernetes.io/control-plane -o yaml \
   | yq '.items[0].status.addresses[] | select(.type=="InternalIP").address' )

cilium install --version 1.17.1 -n kube-system \
  --set kubeProxyReplacement=true \
  --set k8sServiceHost=${API_SERVER_IP} \
  --set k8sServicePort=6443

 

์‹ค๋ฆฌ์›€์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๋…ธ๋“œ ip์ธ k8sServiceHost, k8sServicePort (6443) ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค.

๋กœ์ปฌ ip๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๋…ธ๋“œ์˜ ์ธํ„ฐ๋„ ip๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

 

k get nodes
NAME                   STATUS   ROLES           AGE   VERSION
cilium-control-plane   Ready    control-plane   49m   v1.32.2
cilium-worker          Ready    <none>          48m   v1.32.2
cilium-worker2         Ready    <none>          48m   v1.32.2
cilium-worker3         Ready    <none>          48m   v1.32.2

 

cilium status
    /¯¯\
 /¯¯\__/¯¯\    Cilium:             OK
 \__/¯¯\__/    Operator:           OK
 /¯¯\__/¯¯\    Envoy DaemonSet:    OK
 \__/¯¯\__/    Hubble Relay:       disabled
    \__/       ClusterMesh:        disabled

DaemonSet              cilium                   Desired: 4, Ready: 4/4, Available: 4/4
DaemonSet              cilium-envoy             Desired: 4, Ready: 4/4, Available: 4/4
Deployment             cilium-operator          Desired: 1, Ready: 1/1, Available: 1/1
Containers:            cilium                   Running: 4
                       cilium-envoy             Running: 4
                       cilium-operator          Running: 1
                       clustermesh-apiserver
                       hubble-relay
Cluster Pods:          3/3 managed by Cilium

 

์‹ค๋ฆฌ์›€์ด ๊ตฌ์„ฑ๋˜๊ธฐ ๊นŒ์ง€ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ 5๋ถ„ ์•ˆ์— ok๋กœ ๋ณ€ํ•œ๋‹ค.