需要 eBPF 网络、替换 kube-proxy、细粒度网络策略、Hubble 流量观测或跨集群网络。Cilium 适合对性能、安全和可观测性有要求的 Kubernetes 集群。
cilium install --dry-run
cilium status --wait
helm repo add cilium https://helm.cilium.io
helm install cilium cilium/cilium \
--namespace kube-system \
--set kubeProxyReplacement=true \
--set k8sServiceHost=<API_SERVER_HOST> \
--set k8sServicePort=<API_SERVER_PORT> \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true
如果集群已有 kube-proxy,先不要直接替换;先用 Cilium 的 chaining 模式或在新集群验证。
验证连通性:
cilium connectivity test
cilium status
kubectl -n kube-system get pods -l k8s-app=cilium
kubectl apply -f - <<'EOF'
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-frontend
namespace: demo
spec:
endpointSelector:
matchLabels:
app: backend
ingress:
- fromEndpoints:
- matchLabels:
app: frontend
toPorts:
- ports:
- port: "8080"
protocol: TCP
EOF
cilium hubble enable --ui
cilium hubble port-forward &
hubble observe --namespace demo --follow
cilium status 所有组件为 OK。cilium connectivity test 全部通过。k8sServiceHost 和 k8sServicePort 配错,Cilium 无法启动。cilium — 安装、状态、连通性测试和 Hubblehubble — 流量观测kubectl — 查看 Cilium Pod 和网络策略helm — 安装和升级