구성

구성 (Configuration)

Cilium 인스턴스가 어떻게 설정되는지, 그리고 설치 후 설정을 어떻게 바꾸는지 설명할게요. Helm 값을 통해 설정되고, cilium-config ConfigMap에 저장되는 흐름을 이해하면 운영이 훨씬 편해져요.

출처: Configuration

본문

여러분의 Cilium 설치는 하나 이상의 Helm 값으로 구성돼요 (Helm Reference 참고). 이 Helm 값들은 설치의 각 컴포넌트(예: cilium-agent, cilium-operator)의 인자로 변환되고, ConfigMap에 저장돼요.

cilium-config ConfigMap

이 인자들은 공유 ConfigMap인 cilium-config에 저장돼요 (단, 앞의 --는 없어요). 예를 들어, 전형적인 설치는 다음과 같은 모습일 수 있어요.

$ kubectl -n kube-system get configmap cilium-config -o yaml
data:
  agent-not-ready-taint-key: node.cilium.io/agent-not-ready
  auto-direct-node-routes: "false"
  (output continues)

변경하기 (Making Changes)

실행 중인 설치의 구성을 변경하는 방법은 세 가지가 있어요.

  • helm upgrade를 통한 방법

헬름에 새 값을 제공해 기존 설치에 적용하면 돼요. rollOutCiliumPods=true 값을 설정하면 에이전트 파드가 점진적으로 재시작돼요.

  • cilium config set을 통한 방법

Cilium CLI는 cilium-config ConfigMap의 개별 값을 갱신할 수 있어요. 기본적으로 구성이 변경되면 Cilium Agent 파드가 재시작돼요. 점진적으로 재시작하려면 cilium config set --restart=false ...를 실행하고 변경 사항을 반영하기 위해 에이전트 파드를 직접 삭제하면 돼요.

  • CiliumNodeConfig 객체를 통한 방법

Cilium은 노드 집합 단위의 구성도 지원해요. 자세한 내용은 Per-node configuration 페이지를 참고하세요. 이 경우 변경 사항을 적용하려면 파드를 직접 삭제해야 해요.

적용되지 않은 ConfigMap 변경 감지 (Detecting unapplied ConfigMap changes)

많은 Cilium 구성 변경은 에이전트 재시작이 있어야 적용되기 때문에, cilium-config ConfigMap을 갱신한 뒤에는 실행 중인 에이전트의 설정이 원하는 상태와 더 이상 일치하지 않는 창(window)이 생겨요. Cilium은 이 차이를 보이게 만드는 Prometheus 메트릭을 노출해요. 자세한 내용은 ConfigMap drift detection을 참고하세요.

핵심 에이전트 (Core Agent)

  • API Rate Limiting

  • Administrative API Enablement

  • ConfigMap drift detection

  • Per-node configuration

  • SCTP support (beta)

  • VLAN 802.1q support

  • Argo CD로 배포된 Cilium 문제 해결 (Troubleshooting Cilium deployed with Argo CD)

보안 (Security)

  • 이미지 서명 검증 (Verifying Image Signatures)

  • 소프트웨어 자재 명세서 (Software Bill of Materials)

더 알아보기 (Learn more)