개요
Cilium은 eBPF 데이터 플레인을 기반으로 하는 클라우드 네이티브 네트워킹, 관측성 및 보안 솔루션입니다. L3-L7 네트워크 정책과 kube-proxy를 대체할 수 있는 분산 로드 밸런싱을 지원하며, 심층적인 트래픽 가시성을 제공하고 overlay와 네이티브 라우팅, 멀티 클러스터 상호 연결 및 서비스 메시를 지원합니다.
README 미리보기
.. raw:: html\n\n \n \n \n \n\n|cii| |go-report| |clomonitor| |artifacthub| |slack| |go-doc| |rtd| |apache| |bsd| |gpl| |fossa| |gateway-api| |codespaces|\n\nCilium is a networking, observability, and security solution with an eBPF-based\ndataplane. It provides a simple flat Layer 3 network with the ability to span\nmultiple clusters in either a native routing or overlay mode. It is L7-protocol\naware and can enforce network policies on L3-L7 using an identity-based security\nmodel that is decoupled from network addressing.\n\nCilium implements distributed load balancing for traffic between pods and to\nexternal services, and is able to fully replace kube-proxy, using efficient\nhash tables in eBPF, allowing for almost unlimited scale. It also supports\nadvanced functionality like integrated ingress and egress gateways, bandwidth\nmanagement, and service mesh, and provides deep network and security visibility and monitoring.\n\nA new Linux kernel technology called eBPF_ is at the foundation of Cilium. It\nsupports dynamic insertion of eBPF bytecode into the Linux kernel at various\nintegration points such as: network IO, application sockets, and tracepoints to\nimplement security, networking, and visibility logic. eBPF is highly efficient\nand flexible. To learn more about eBPF, visit `eBPF.io`_.\n\n.. image:: Documentation/images/cilium-overview.png\n :alt: Overview of Cilium features for networking, observability, service mesh, and runtime security\n\n.. raw:: html\n\n \n \n \n \n \n \n \n \n \n \n \n \n\nStable Releases\n===============\n\nThe Cilium community maintains minor stable releases for the last three minor\nCilium versions. Older Cilium stable versions from minor releases prior to that\nare considered EOL.\n\nFor upgrades to new minor releases, please consult the `Cilium Upgrade Guide`_.\n\nListed below are the actively maintained release branches along with their latest\npatch
FAQ (1)
문제 해결워커 노드에서 동일 노드의 Cilium ingress 서비스로 연결할 때 'upstream connect error or disconnect/reset before headers' 오류가 발생하며 실패하는 이유는 무엇인가요?
이는 Cilium 1.17.6에서 도입된 것으로 확인된 리그레션이며, 1.18.x, 1.19.x 및 1.20.0-pre에서도 여전히 존재합니다. Cilium ingress(또는 hostNetwork envoy를 사용하는 Gateway API)가 kubeProxyReplacement와 함께 활성화된 경우, node-A의 파드 또는 프로세스가 동일한 node-A에서 실행 중인 백엔드 파드의 ingress LoadBalancer IP에 접근할 수 없습니다. 다른 노드에서의 연결은 정상적으로 작동합니다. Envoy는 HTTP 503 'upstream connect error or disconnect/reset before headers. reset reason: connection timeout'을 반환합니다. 해결 방법: Cilium 1.17.5로 다운그레이드하면 되며, 보고자는 이 방법이 동일 노드 ingress 연결을 복원한다는 것을 확인했습니다. 예: helm upgrade cilium cilium/cilium --version 1.17.5 -n kube-system -f values.yaml. 아직 근본 원인에 대한 수정이 릴리스되지 않았습니다(GitHub issue #44529는 해결되지 않은 상태입니다). 영향을 받는 경우 cilium sysdump로 진단 정보를 수집하여 해당 이슈에 첨부해 주시면 유지보수자들의 조사에 도움이 됩니다.