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.

30 lines
1.5 KiB

  1. Large deployments of K8s
  2. ========================
  3. For a large scaled deployments, consider the following configuration changes:
  4. * Tune [ansible settings](http://docs.ansible.com/ansible/intro_configuration.html)
  5. for `forks` and `timeout` vars to fit large numbers of nodes being deployed.
  6. * Override containers' `foo_image_repo` vars to point to intranet registry.
  7. * Override the ``download_run_once: true`` to download container images only once
  8. then push to cluster nodes in batches. The default delegate node
  9. for pushing images is the first kube-master. Note, if you have passwordless sudo
  10. and docker enabled on the separate admin node, you may want to define the
  11. ``download_localhost: true``, which makes that node a delegate for pushing images
  12. while running the deployment with ansible. This maybe the case if cluster nodes
  13. cannot access each over via ssh or you want to use local docker images as a cache
  14. for multiple clusters.
  15. * Adjust the `retry_stagger` global var as appropriate. It should provide sane
  16. load on a delegate (the first K8s master node) then retrying failed
  17. push or download operations.
  18. * Tune parameters for DNS related applications (dnsmasq daemon set, kubedns
  19. replication controller). Those are ``dns_replicas``, ``dns_cpu_limit``,
  20. ``dns_cpu_requests``, ``dns_memory_limit``, ``dns_memory_requests``.
  21. Please note that limits must always be greater than or equal to requests.
  22. For example, when deploying 200 nodes, you may want to run ansible with
  23. ``--forks=50``, ``--timeout=600`` and define the ``retry_stagger: 60``.