gitmyhub

kubespray

Jinja ★ 19k updated 8h ago

Deploy a Production Ready Kubernetes Cluster

A collection of Ansible automation scripts that set up a production-ready Kubernetes cluster on almost any cloud or bare-metal server with one command.

JinjaAnsiblePythonDockersetup: hardcomplexity 5/5

Kubespray is a set of Ansible playbooks for deploying a production-ready Kubernetes cluster. Ansible is an automation tool that runs tasks on remote machines via SSH; a playbook is a file describing what those tasks should be. Kubernetes is a system for running and managing containerized applications across a group of servers.

The key advantage Kubespray offers is flexibility. It can deploy Kubernetes on AWS, Google Cloud Engine, Azure, OpenStack, vSphere, Equinix Metal bare-metal servers, Oracle Cloud Infrastructure, or plain bare metal — and it supports a long list of Linux distributions including Debian, Ubuntu, CentOS Stream, RHEL, Fedora, Fedora CoreOS, openSUSE, Oracle Linux, Alma Linux, and Rocky Linux.

The cluster it creates is highly available — meaning it is set up so that the failure of individual machines does not bring down the whole system. Network plugins are configurable, with support for calico, cilium, flannel, kube-ovn, kube-router, multus, and kube-vip. Several storage plugins and additional applications like cert-manager, CoreDNS, ArgoCD, Helm, and MetalLB are also handled.

Requirements include Ansible version 2.14 or newer, Python's netaddr library, and target servers that have internet access to pull container images. The minimum supported Kubernetes version is 1.30. Installation can be done via Docker, Ansible directly, or Vagrant for local testing.

Where it fits