本文对比了 Calico 的两种主流安装方式:
- 使用 calico.yaml 的 Manifest 安装方式
- 使用 Tigera Operator(tigera-operator.yaml + custom-resources.yaml)安装方式
✅ 1. 使用 Manifest 方式安装(直接部署 calico.yaml
)
这是最基础也最常用的安装方式之一,官方会根据 Kubernetes 版本提供一个适配的 calico.yaml
文件,包含所有必要的组件(如 calico-node、typha、CNI 配置等)。
🌟 特点:
- 部署简单:只需一条命令即可快速部署
- 无需额外组件:不依赖 Operator 等控制器
- 适用于小型集群或快速测试
✅ 安装示例:
shell
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yaml
✅ 优点:
- 快速上手,适合新手或临时环境
- 可查看完整 YAML 文件结构,便于学习 Calico 的组件组成
❌ 缺点:
- 灵活性较差,定制配置需要手动修改大量 YAML 内容
- 不易升级、运维成本较高
✅ 2. 使用 Tigera Operator 安装(tigera-operator.yaml
+ custom-resources.yaml
)
这是 Calico 官方推荐的 声明式安装方式 ,使用 Tigera Operator 管理 Calico 生命周期,并通过 custom-resources.yaml
配置网络参数,如 IP 池、网络策略、CNI 类型等。
🌟 特点:
- 模块化安装:Tigera Operator 会根据自定义资源自动部署所需组件
- 声明式配置:集中管理网络配置(IPAM、BGP、网络策略等)
- 适用于生产环境,支持版本管理和后期维护
✅ 安装步骤:
第一步:安装 Operator
shell
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/tigera-operator.yaml
第二步:应用自定义资源配置
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/custom-resources.yaml
✅ 优点:
- 高度可定制,通过 CRD 管理网络配置
- 易于升级与回滚
- Operator 会自动处理组件部署、更新等工作
❌ 缺点:
- 需要理解 Operator 和 CRD 的概念
- 安装过程相对复杂,排查问题时可能涉及 Operator 日志
🆚 总结对比表:
项目 | Manifest 安装(calico.yaml) | Tigera Operator 安装 |
---|---|---|
安装复杂度 | ⭐⭐ 简单 | ⭐⭐⭐ 中等偏高 |
可定制性 | ⭐⭐ 一般(手动改 YAML) | ⭐⭐⭐⭐ 高(声明式 CRD 配置) |
升级与维护 | ❌ 手动操作 | ✅ Operator 自动处理 |
推荐场景 | 测试环境、小型集群 | 生产环境、中大型集群 |
官方推荐 | ✅ 较为常用 | ✅✅ 官方强烈推荐 |
📌 总结:
- 快速部署测试 :选择 Manifest 安装
- 长期稳定运维 :推荐使用 Tigera Operator + CRD 安装方式