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가 하나니 마음이 편안.