You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.4 KiB

  1. error_log stderr notice;
  2. worker_processes 2;
  3. worker_rlimit_nofile 130048;
  4. worker_shutdown_timeout 10s;
  5. events {
  6. multi_accept on;
  7. use epoll;
  8. worker_connections 16384;
  9. }
  10. stream {
  11. upstream kube_apiserver {
  12. least_conn;
  13. {% for host in groups['kube_control_plane'] -%}
  14. server {{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(fallback_ips[host])) }}:{{ kube_apiserver_port }};
  15. {% endfor -%}
  16. }
  17. server {
  18. listen 127.0.0.1:{{ loadbalancer_apiserver_port|default(kube_apiserver_port) }};
  19. {% if enable_dual_stack_networks -%}
  20. listen [::1]:{{ loadbalancer_apiserver_port|default(kube_apiserver_port) }};
  21. {% endif -%}
  22. proxy_pass kube_apiserver;
  23. proxy_timeout 10m;
  24. proxy_connect_timeout 1s;
  25. }
  26. }
  27. http {
  28. aio threads;
  29. aio_write on;
  30. tcp_nopush on;
  31. tcp_nodelay on;
  32. keepalive_timeout {{ loadbalancer_apiserver_keepalive_timeout }};
  33. keepalive_requests 100;
  34. reset_timedout_connection on;
  35. server_tokens off;
  36. autoindex off;
  37. {% if loadbalancer_apiserver_healthcheck_port is defined -%}
  38. server {
  39. listen {{ loadbalancer_apiserver_healthcheck_port }};
  40. {% if enable_dual_stack_networks -%}
  41. listen [::]:{{ loadbalancer_apiserver_healthcheck_port }};
  42. {% endif -%}
  43. location /healthz {
  44. access_log off;
  45. return 200;
  46. }
  47. location /stub_status {
  48. stub_status on;
  49. access_log off;
  50. }
  51. }
  52. {% endif %}
  53. }