IT 관련 끄적끄적

Local Cluster에 Cilium 설치

kani 2025. 6. 15. 19:15

 

 

 

pod network과 service는 겹치지 않을 것으로 입력

sudo kubeadm init   --pod-network-cidr=10.0.0.0/16   --service-cidr=10.96.0.0/12

 

 

cliium download 

 curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
 sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin

 

 

설치

  cilium install
  cilium status

 

 

몇몇 옵션을 위해 한번 수정한다.

helm upgrade --install cilium cilium/cilium \
  --namespace kube-system \
  --version 1.17.4 \
  --set kubeProxyReplacement=true \
  --set k8sServiceHost=<Control Plane IP> \
  --set k8sServicePort=6443 \
  --set ingressController.enabled=true \
  --set ingressController.ingressClassName=cilium \
  --set ingressController.loadbalancerMode=dedicated

 

GCP나 AWS의 EKS, GKE 같은 Managed Cluster에는 없어도 되는 작업으로 보인다. (클라우드 환경에서 자동으로 값을 감지 한다고 한다.) 

 

 

ingress를 생성하면 cilium이 자동으로 ingressController.loadbalancerMode=dedicated 로 설정하면 ingress 생성시 자동으로 cilium이 loadbalanacer를 생성해줘야했는데 이부분이 이루어지지 않아. 한참 해맷다.. -_ㅜ  kubeProxyReplacement=true가 문제였든..

 

출처  : https://docs.cilium.io/en/stable/network/servicemesh/ingress/#prerequisites

 

 

 

 

일단 연습용이기에 shared로 수정하자

helm upgrade --install cilium cilium/cilium \
  --namespace kube-system \
  --version 1.17.4 \
  --set kubeProxyReplacement=true \
  --set k8sServiceHost=<ControlPlane IP> \
  --set k8sServicePort=6443 \
  --set ingressController.enabled=true \
  --set ingressController.ingressClassName=cilium \
  --set ingressController.loadbalancerMode=shared

 

 

 

$ k -n kube-system get svc | grep cilium-ingress
cilium-ingress   LoadBalancer   10.105.130.135   192.168.1.240   80:32009/TCP,443:31584/TCP   98m


$ nslookup test.kani.im
Server:         10.255.255.254
Address:        10.255.255.254#53

Non-authoritative answer:
Name:   test.kani.im
Address: 192.168.1.240

 

LB가 하나니 마음이 편안.