4.9 KiB
4.9 KiB
title |
---|
Installing Kubernetes On-premise/Cloud Providers with Kargo |
Overview
This quickstart helps to install a Kubernetes cluster hosted
on GCE, Azure, OpenStack, AWS or Baremetal with
Kargo
tool.
Kargo is a composition of Ansible playbooks, inventory generation CLI tools and domain knowledge for generic OS/Kubernetes clusters configuration management tasks. It provides:
- High available cluster
- Composable (Choice of the network plugin, for instance)
- Support most popular Linux distributions
- Continuous integration tests
To choose a tool which fits your use case the best, you may want to read this comparison to kubeadm and kops.
Creating a cluster
(1/4) Ensure the underlay requirements are met
Checklist
- You must have cloud instances or baremetal nodes running for your future Kubernetes cluster. A way to achieve that is to use the kargo-cli tool.
- Or provision baremetal hosts with a tool-of-your-choice or launch cloud instances, then create an inventory file for Ansible with this tool.
(2/4) Compose the deployment
Checklist
- Customize your deployment by usual Ansible meanings, which is
generating inventory
and overriding default data variables.
Or just stick with default values (Kargo will choose Flannel networking plugin for you
then). This includes steps like deciding on the:
- DNS configuration options
- Networking plugin to use
- Versions of components.
- Additional node groups like bastion hosts or Calico BGP route reflectors.
- Plan custom deployment steps, if any, or use the default composition layer in the
cluster definition file.
Taking the best from Ansible world, Kargo allows users to execute arbitrary steps via the
ansible-playbook
with given inventory, playbooks, data overrides and tags, limits, batches of nodes to deploy and so on. - For large deployments (100+ nodes), you may want to tweak things for best results.
(3/4) Run the deployment
Checklist
- Apply deployment with
kargo-cli tool
or
ansible-playbook
manual commands.
(4/4) (Optional) verify inter-pods connectivity and DNS resolve with Netchecker
Checklist
- Enusre the netchecker-agent's pods can resolve DNS requests and ping each over within the default namespace. Those pods mimic similar behavior of the rest of the workloads and serve as cluster health indicators.
Explore contributed add-ons
See the list of contributed playbooks to explore other deployment options.
What's next
Kargo has quite a few marks on the radar.
Cleanup
To delete your scratch cluster, you can apply the
reset role
with the manual ansible-playbook
command.
Note, that it is highly unrecommended to delete production clusters with the reset playbook!
Feedback
- Slack Channel: #kargo
- GitHub Issues