구성
구성 (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)