ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

如何在 K3s 集群上安装 Cilium 并禁用默认 CNI 与内置网络策略

2026/9/13 1:50:22 拓冰建站 浏览量
如何在 K3s 集群上安装 Cilium 并禁用默认 CNI 与内置网络策略 如何在 K3s 集群上安装 Cilium 并禁用默认 CNI 与内置网络策略【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium要在 K3s 上跑 Cilium关键动作发生在安装 K3s 控制面节点的那一刻必须让 K3s 禁用自带的默认 CNI 插件和内置网络策略执行器这样 Cilium 才能接管容器网络与策略。Cilium 目前在 K3s 上支持 amd64 和 arm64 两种架构。本文按「装 K3s → 配置访问 → 装 Cilium CLI → 安装 Cilium → 验证」的顺序走一遍完整流程所有命令都来自 K3s 安装文档 与 K3s 要求文档。安装 K3s Master 节点并关闭默认网络组件第一步是安装 K3s master 节点并通过INSTALL_K3S_EXEC传入启动参数同时禁用默认 CNI 插件与内置网络策略执行器curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC--flannel-backendnone --disable-network-policy sh -官方文档对这条命令的要求是正常安装 K3s但必须关闭默认 CNI 插件支持和内置网络策略执行器以便之后在其上叠加安装 Cilium。如果计划以 kubeproxy-free 模式运行 Cilium文档额外要求在INSTALL_K3S_EXEC中加上--disable-kube-proxy参数这是一个可选分支默认路径不需要。安装完成后Cilium 在 K3s 上的默认配置为数据面使用 Encapsulation 模式IPAM 使用 Cluster Pool数据存储使用 Kubernetes CRD。可选加入 Agent 节点K3s 可以单机运行也可以组成多节点集群用于本地多节点数据面测试。如果需要加入 agent 节点先在 master 节点上的/var/lib/rancher/k3s/server/node-token文件中找到 node-token然后在 agent 节点上执行加入命令把${MASTER_IP}替换为 master 节点 IP、${NODE_TOKEN}替换为上面取到的 tokencurl -sfL https://get.k3s.io | K3S_URLhttps://${MASTER_IP}:6443 K3S_TOKEN${NODE_TOKEN} sh -单机测试可以跳过这一节。配置集群访问后续步骤中的 Cilium CLI 通过 kubeconfig 文件访问集群。K3s 的 kubeconfig 位于/etc/rancher/k3s/k3s.yaml需要先设置KUBECONFIG环境变量export KUBECONFIG/etc/rancher/k3s/k3s.yaml安装 Cilium CLICilium CLI 用于安装 Cilium、检查安装状态以及开启或关闭功能。Linux 环境下按以下命令安装最新版命令会下载二进制包、校验 sha256 后解压到/usr/local/bin其中sudo tar需要 root 权限CILIUM_CLI_VERSION$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt) CLI_ARCHamd64 if [ $(uname -m) aarch64 ]; then CLI_ARCHarm64; 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}macOS 有对应的安装命令架构判断条件为arm64而非aarch64包名为cilium-darwin-${CLI_ARCH}.tar.gz校验命令为shasum -a 256 -c详见 CLI 安装文档。安装 Cilium在 master 节点上执行安装命令。这里有一条针对 K3s 的必选配置K3s 默认 podCIDR 是10.42.0.0/16因此要加--setipam.operator.clusterPoolIPv4PodCIDRList10.42.0.0/16让 Cluster Pool IPAM 与之对齐cilium install --version {v} --setipam.operator.clusterPoolIPv4PodCIDRList10.42.0.0/16命令中的{v}是文档里的占位符替换为你要安装的 Cilium Helm chart 版本号。如果你是在 Rancher Desktop 中运行文档提示可能需要额外覆盖 CNI 二进制路径加上参数--set cni.binPath/usr/libexec/cni。验证安装安装完成后先用cilium status --wait等待并检查状态文档给出的示例输出如下文档示例其中的版本号与副本数以你的实际环境为准$ cilium status --wait /¯¯\ /¯¯\__/¯¯\ Cilium: OK \__/¯¯\__/ Operator: OK /¯¯\__/¯¯\ Hubble: disabled \__/¯¯\__/ ClusterMesh: disabled \__/ DaemonSet cilium Desired: 2, Ready: 2/2, Available: 2/2 Deployment cilium-operator Desired: 2, Ready: 2/2, Available: 2/2 Containers: cilium-operator Running: 2 cilium Running: 2 Image versions cilium quay.io/cilium/cilium:v1.9.5: 2 cilium-operator quay.io/cilium/operator-generic:v1.9.5: 2判断标准是Cilium: OK、Operator: OK且 DaemonSet 与 Deployment 的 Ready 数量与期望一致。接着运行连通性测试验证集群网络是否正常工作$ cilium connectivity test ℹ️ Monitor aggregation detected, will skip some flow validation steps ✨ [k8s-cluster] Creating namespace for connectivity check... (...) ------------------------------------------------------ Test Report ------------------------------------------------------ ✅ 69/69 tests successful (0 warnings)以上为文档示例输出测试数量会随版本变化成功的标志是报告结尾的 tests successful 计数没有失败项。如果连通性测试部署失败并提示 too many open files文档给出的处理办法是提高宿主机的inotify资源限制文档引用了 kind 的已知问题条目作为参考。限制与下一步K3s 架构支持范围amd64 与 arm64。如果安装过程中出现问题文档指向 Kubernetes 安装故障排查章节以及 Cilium Slack 社区寻求帮助。安装验证通过后文档给出的下一步包括启用 Hubble 可观测能力CLI 与 UI、通过 HTTP 策略做入门示例、以及了解 clustermesh 多集群组网参见 下一步文档。【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考