kubespray 各云提供商 cilium 配置对比分析

45 阅读3分钟

详细对比当前项目中的这些配置文件中的 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 配置文件对比分析

经过详细对比分析,我发现以下关键结果:

📋 配置文件类型分类

  1. 示例配置文件组 (完全相同)

    MD5f162ed803902ee03f3e420f658fb1fdb

  2. 原生配置文件组 (完全相同)

    MD5ef1166a45aed7fe2f3c9a6ae9430338e

🔍 主要差异分析

示例配置文件 vs 原生配置文件 的关键区别:

1. 基础配置差异

配置项示例配置原生配置说明
cilium_debug注释状态false原生配置明确禁用调试
cilium_mtu"" (注释)"0"原生配置设置为自动检测
cilium_enable_ipv4/ipv6注释状态使用变量 {{ ipv4_stack }}/{{ ipv6_stack }}原生配置动态设置

2. 身份分配模式差异

配置项示例配置原生配置影响
cilium_identity_allocation_modekvstore (注释)crd原生配置使用 CRD 模式,更现代化

3. 资源限制差异

配置项示例配置原生配置
cilium_memory_limit注释状态500M
cilium_cpu_limit注释状态500m
cilium_memory_requests注释状态64M
cilium_cpu_requests注释状态100m

4. 功能特性差异

功能示例配置原生配置说明
cilium_kube_proxy_replacementpartial (注释)false原生配置保守,示例配置激进
cilium_preallocate_bpf_maps注释状态false原生配置明确禁用
cilium_ipam_modekubernetes (注释)cluster-pool不同的 IP 分配模式

5. 原生配置独有功能

原生配置包含更多高级特性:

  • Bandwidth Managercilium_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 的默认行为
复杂度简化配置选项完整功能配置

📝 总结

  1. 所有示例配置文件完全相同 - 无论是 AWS、Exoscale、Hetzner 等不同云提供商的配置都是一致的
  2. 示例配置更偏向于模板 - 大多数选项被注释,便于用户根据需要自定义
  3. 原生配置更完整成熟 - 包含生产环境所需的默认值和高级功能
  4. 主要区别体现在默认值和功能完整性上 - 原生配置提供了更多企业级特性

这种设计使得用户可以从简单的示例配置开始,然后根据需要参考原生配置来启用更多高级功能。