설치

설치 (Installation)

Cilium Ingress Controller를 Helm 또는 Cilium CLI로 활성화하는 방법을 안내해요. Ingress Controller, 전용 Envoy 구성, 그리고 proxy 로드 밸런싱 백엔드를 Envoy로 설정하는 방법을 다뤄요.

출처: Installation

본문

Helm으로 활성화하기 — Cilium Ingress Controller는 helm 플래그 ingressController.enabled를 true로 설정해서 활성화할 수 있어요. 새 설치에 대해서는 Installation using Helm을 참고해주세요.

helm upgrade cilium cilium/cilium --version 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set ingressController.enabled=true \
   --set ingressController.loadbalancerMode=dedicated
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

helm upgrade cilium oci://quay.io/cilium/charts/cilium 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set ingressController.enabled=true \
   --set ingressController.loadbalancerMode=dedicated
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

--set ingressController.default=true 플래그를 설정하면 Cilium이 기본 ingress 컨트롤러가 될 수 있어요. 그러면 ingressClass가 설정되지 않아도 ingress 항목이 생성돼요.

Ingress 지원 없이 envoy 트래픽 관리 기능만 사용하려면 --enable-envoy-config 플래그만 활성화하면 돼요.

helm upgrade cilium cilium/cilium --version 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set envoyConfig.enabled=true
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

helm upgrade cilium oci://quay.io/cilium/charts/cilium 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set envoyConfig.enabled=true
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

추가로 프록시 로드 밸런싱 기능은 loadBalancer.l7.backend=envoy 플래그로 구성할 수 있어요.

helm upgrade cilium cilium/cilium --version 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set loadBalancer.l7.backend=envoy
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

helm upgrade cilium oci://quay.io/cilium/charts/cilium 1.20.2 \
   --namespace kube-system \
   --reuse-values \
   --set loadBalancer.l7.backend=envoy
kubectl -n kube-system rollout restart deployment/cilium-operator
kubectl -n kube-system rollout restart ds/cilium

다음으로 Cilium agent와 operator의 상태를 확인할 수 있어요:

$ cilium status

Cilium CLI로 활성화하기 — 최신 버전의 Cilium CLI를 설치해볼게요. Cilium CLI는 Cilium 설치, Cilium 설치 상태 검사, 다양한 기능(예: clustermesh, Hubble) 활성화/비활성화에 사용할 수 있어요.

CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}

CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "arm64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-darwin-${CLI_ARCH}.tar.gz{,.sha256sum}
shasum -a 256 -c cilium-darwin-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-darwin-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-darwin-${CLI_ARCH}.tar.gz{,.sha256sum}

전체 릴리스 페이지를 참고해주세요.

Cilium Ingress Controller는 아래 명령으로 활성화할 수 있어요:

$ cilium install 1.20.2 \
    --set kubeProxyReplacement=true \
    --set ingressController.enabled=true \
    --set ingressController.loadbalancerMode=dedicated

--set ingressController.default=true 플래그를 설정하면 Cilium이 기본 ingress 컨트롤러가 될 수 있어요. 그러면 ingressClass가 설정되지 않아도 ingress 항목이 생성돼요.

Ingress 지원 없이 envoy 트래픽 관리 기능만 사용하려면 --enable-envoy-config 플래그만 활성화하면 돼요.

$ cilium install 1.20.2 \
    --set kubeProxyReplacement=true \
    --set envoyConfig.enabled=true

추가로 프록시 로드 밸런싱 기능은 loadBalancer.l7.backend=envoy 플래그로 구성할 수 있어요.

$ cilium install 1.20.2 \
    --set kubeProxyReplacement=true \
    --set envoyConfig.enabled=true \
    --set loadBalancer.l7.backend=envoy

다음으로 Cilium agent와 operator의 상태를 확인할 수 있어요:

$ cilium status

또한 이후 단계에서 트래픽을 관찰하는 데 사용될 Hubble CLI를 설치하는 것도 권장해요.

더 알아보기 (Learn more)