详细对比当前项目中的这些配置文件中的 cilium 的配置项,仅分析他们的区别之处
contrib/terraform/aws/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/exoscale/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/hetzner/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/nifcloud/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/openstack/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/upcloud/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
contrib/terraform/vsphere/sample-inventory/group_vars/k8s_cluster/k8s-net-cilium.yml
extra_playbooks/inventory/local/group_vars/k8s_cluster/k8s-net-cilium.yml
extra_playbooks/inventory/sample/group_vars/k8s_cluster/k8s-net-cilium.yml
extra_playbooks/roles/network_plugin/cilium/defaults/main.yml # cilium 原生配置
Kubespray 项目中 Cilium 配置文件对比分析
经过详细对比分析,我发现以下关键结果:
📋 配置文件类型分类
-
示例配置文件组 (完全相同)
- 所有 k8s-net-cilium.yml 文件
MD5:
f162ed803902ee03f3e420f658fb1fdb -
原生配置文件组 (完全相同)
MD5:
ef1166a45aed7fe2f3c9a6ae9430338e
🔍 主要差异分析
示例配置文件 vs 原生配置文件 的关键区别:
1. 基础配置差异
| 配置项 | 示例配置 | 原生配置 | 说明 |
|---|---|---|---|
cilium_debug | 注释状态 | false | 原生配置明确禁用调试 |
cilium_mtu | "" (注释) | "0" | 原生配置设置为自动检测 |
cilium_enable_ipv4/ipv6 | 注释状态 | 使用变量 {{ ipv4_stack }}/{{ ipv6_stack }} | 原生配置动态设置 |
2. 身份分配模式差异
| 配置项 | 示例配置 | 原生配置 | 影响 |
|---|---|---|---|
cilium_identity_allocation_mode | kvstore (注释) | crd | 原生配置使用 CRD 模式,更现代化 |
3. 资源限制差异
| 配置项 | 示例配置 | 原生配置 |
|---|---|---|
cilium_memory_limit | 注释状态 | 500M |
cilium_cpu_limit | 注释状态 | 500m |
cilium_memory_requests | 注释状态 | 64M |
cilium_cpu_requests | 注释状态 | 100m |
4. 功能特性差异
| 功能 | 示例配置 | 原生配置 | 说明 |
|---|---|---|---|
cilium_kube_proxy_replacement | partial (注释) | false | 原生配置保守,示例配置激进 |
cilium_preallocate_bpf_maps | 注释状态 | false | 原生配置明确禁用 |
cilium_ipam_mode | kubernetes (注释) | cluster-pool | 不同的 IP 分配模式 |
5. 原生配置独有功能
原生配置包含更多高级特性:
- Bandwidth Manager:
cilium_enable_bandwidth_manager - BGP 控制平面: 完整的 BGP 配置选项
- 高级网络:
cilium_enable_host_legacy_routing - 监控: Hubble 相关的详细配置
- 证书管理:
cilium_certgen_args - 性能调优:
cilium_bpf_map_dynamic_size_ratio: "0.0025"
6. 配置管理差异
| 特性 | 示例配置 | 原生配置 |
|---|---|---|
| 配置状态 | 大部分为注释模板 | 实际生效的默认值 |
| 用途 | 用户参考和自定义 | Ansible role 的默认行为 |
| 复杂度 | 简化配置选项 | 完整功能配置 |
📝 总结
- 所有示例配置文件完全相同 - 无论是 AWS、Exoscale、Hetzner 等不同云提供商的配置都是一致的
- 示例配置更偏向于模板 - 大多数选项被注释,便于用户根据需要自定义
- 原生配置更完整成熟 - 包含生产环境所需的默认值和高级功能
- 主要区别体现在默认值和功能完整性上 - 原生配置提供了更多企业级特性
这种设计使得用户可以从简单的示例配置开始,然后根据需要参考原生配置来启用更多高级功能。