config.yaml.j2 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. {% if ip_type == 'dual-stack' %}
  2. {% if node_ip_v4 is defined and node_ip_v6 is defined %}
  3. {% if node_ip | regex_search(':') %}
  4. # 当主IP是IPv6时,IPv6地址在前
  5. node-ip: "{{ node_ip_v6 }},{{ node_ip_v4 }}"
  6. {% else %}
  7. # 当主IP是IPv4时,IPv4地址在前
  8. node-ip: "{{ node_ip_v4 }},{{ node_ip_v6 }}"
  9. {% endif %}
  10. {% else %}
  11. # 如果没有node_ip_v4和node_ip_v6,使用node_ip作为IPv6,ip_dual_conf作为IPv4
  12. {% if node_ip | regex_search(':') %}
  13. node-ip: "{{ node_ip }},{{ ip_dual_conf }}"
  14. {% else %}
  15. node-ip: "{{ ip_dual_conf }},{{ node_ip }}"
  16. {% endif %}
  17. {% endif %}
  18. {% elif ip_type == 'ipv6' %}
  19. {% if node_ip | regex_search(':') %}
  20. node-ip: "{{ node_ip }}"
  21. {% else %}
  22. node-ip: {{ node_ip }}
  23. {% endif %}
  24. {% else %}
  25. node-ip: {{ node_ip }}
  26. {% endif %}
  27. pause-image: {{ image_repository }}/pause:3.1
  28. {% if high_availability_vip is defined %}
  29. tls-san: {{ high_availability_vip }}
  30. {% endif %}
  31. {% if is_k3s_server %}
  32. flannel-backend: none
  33. disable-network-policy: true
  34. {% if ip_type == 'dual-stack' %}
  35. {% if node_ip | regex_search(':') %}
  36. # 当主IP是IPv6时,使用IPv6 CIDR作为主要CIDR
  37. cluster-cidr: {{ pod_network_cidr }},{{ pod_network_cidr_v4 }}
  38. service-cidr: {{ service_cidr }},{{ service_cidr_v4 }}
  39. {% else %}
  40. # 当主IP是IPv4时,使用IPv4 CIDR作为主要CIDR
  41. cluster-cidr: {{ pod_network_cidr_v4 }},{{ pod_network_cidr }}
  42. service-cidr: {{ service_cidr_v4 }},{{ service_cidr }}
  43. {% endif %}
  44. {% else %}
  45. cluster-cidr: {{ pod_network_cidr }}
  46. service-cidr: {{ service_cidr }}
  47. {% endif %}
  48. cluster-domain: {{ service_dns_domain }}
  49. default-local-storage-path: /opt/k3s/storage
  50. # See:
  51. # - https://github.com/kubernetes/kubernetes/issues/55713#issuecomment-922168158
  52. # - https://github.com/kubernetes/website/issues/39681#issuecomment-1880846778
  53. kube-apiserver-arg:
  54. - "enable-admission-plugins=DefaultTolerationSeconds"
  55. - "default-not-ready-toleration-seconds=10"
  56. - "default-unreachable-toleration-seconds=10"
  57. {% if ip_type == 'ipv6' %}
  58. - "bind-address=::"
  59. - "advertise-address={{ node_ip }}"
  60. {% elif ip_type == 'dual-stack' %}
  61. - "bind-address=0.0.0.0"
  62. - "advertise-address={{ node_ip }}"
  63. {% endif %}
  64. kube-controller-manager-arg:
  65. - "node-monitor-period=4s"
  66. - "node-monitor-grace-period=16s"
  67. {% if ip_type == 'ipv6' %}
  68. - "bind-address=::"
  69. {% elif ip_type == 'dual-stack' %}
  70. - "bind-address=0.0.0.0"
  71. {% endif %}
  72. {% endif %}
  73. node-label:
  74. {% if is_k3s_server %}
  75. - onecloud.yunion.io/controller=enable
  76. {% endif %}
  77. {% if join_as_host %}
  78. - onecloud.yunion.io/host=enable
  79. {% endif %}
  80. {% if enable_lbagent %}
  81. - onecloud.yunion.io/lbagent=enable
  82. {% endif %}
  83. kubelet-arg:
  84. - "pod-manifest-path=/var/lib/rancher/k3s/agent/pod-manifests"
  85. - "eviction-hard=memory.available<200Mi,nodefs.available<1Gi,nodefs.inodesFree<5%,imagefs.available<1Gi"
  86. - "container-log-max-size=100Mi"
  87. - "pod-max-pids=1024"
  88. - "serialize-image-pulls=false"
  89. - "node-status-update-frequency=4s"
  90. - "image-gc-high-threshold=95"
  91. - "image-gc-low-threshold=90"
  92. kube-proxy-arg:
  93. - proxy-mode=ipvs
  94. - ipvs-strict-arp=true
  95. {% if ip_type == 'ipv6' %}
  96. - "bind-address=::"
  97. {% elif ip_type == 'dual-stack' %}
  98. - "bind-address=0.0.0.0"
  99. {% endif %}