An Ansible-based playbook that automates the deployment of highly available Kubernetes clusters using kubeadm and official Helm charts with best practices for on-prem environments.
Fully fledged (HA) Kubernetes Cluster using official kubeadm, ansible and helm. Tested on RHEL/CentOS/Ubuntu with support of http_proxy, dashboard installed, ingress controller, heapster - using official helm charts
This tool is designed for system administrators and DevOps engineers who want to deploy and manage production-grade Kubernetes clusters on-premises or in private environments using kubeadm. It simplifies cluster setup, addon installation, and scaling while ensuring enterprise readiness with support for proxies, private registries, and HA configurations.
This project is best suited for on-premises Kubernetes deployments and requires familiarity with Ansible, kubeadm, and Helm. It emphasizes simplicity by relying solely on kubeadm and official Helm charts, avoiding custom addons. Users should prepare their environment with proper networking, proxy, and private registry configurations if applicable. The tool supports scaling and HA setups without downtime, making it suitable for production use. LDAP authentication and logging stack integration are planned for future releases.
Clone the repository from https://github.com/ReSearchITEng/kubeadm-playbook
Prepare your inventory file to define cluster nodes and roles
Configure optional settings such as docker_setup, private registries, and proxy if needed
Run the Ansible playbook to deploy the Kubernetes cluster and addons
Use Helm to manage additional addons as defined in addons.ymlansible-playbook -i inventory.ini site.yml
Runs the main Ansible playbook to deploy the Kubernetes cluster and configured addons
helm install <addon> <official-helm-chart>
Installs or manages Kubernetes addons using official Helm charts as configured by the playbook