Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Helm charts vs ansible-playbook vs k8s operator in system installation

I have a big and fairly complex system for install into the k8s cluster.

60 microservices and 10 helm charts installed to 5 namespaces.

Currently, we run 5 helm install/upgrade commands with a pause of 30 seconds between commands. However, this strategy incurs a serious load on nodes due to the fact that we pull docker images and start applications. We have a long and not clear execution time(timeline) that often results in timeouts of components such as consul, Elasticsearch, and applications that depend on the aforementioned components.

I would like to hear opinions about ways to turn this situation around. First, here is our approach so far:

  1. Write the script that controls installation by helm charts.
  2. Write an ansible-playbook that runs Helm charts and controls the installation status of components.
  3. Write an ansible-playbook install components (either using Jinja2 templates or Golang templates)
  4. Write the k8s operator that installs components and controls the system status.
like image 953
ozlevka Avatar asked Oct 31 '19 06:10

ozlevka


People also ask

What is Kubernetes operator vs Helm?

Helm charts are YAML code that helps define, install, and upgrade applications on Kubernetes clusters. Kubernetes Operators are application-specific controllers that help handle certain tasks by extending the Kubernetes API's functionality.

What is the difference between Ansible and Kubernetes?

The differences between these two products are profound. Ansible is an IT automation tool that deploys software, configures systems, and organizes more complex IT functions such as rolling updates or continuous deployments. On the other hand, Kubernetes is a system designed to orchestrate Docker containers.

Should I use Helm with Kubernetes?

Helm is the best way to use Kubernetes effectively and efficiently, helm not just only helps developers who want to install some apps on Kubernetes, but it also helps DevOps engineer, they can still create YAML manifest files and use kubectl commands to do deployments.

What is the purpose of Helm charts?

Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.


1 Answers

To answer my own question, I created an installation that can be used as a quick solution to fairly complex installations.

The solution relies on Ansible as an installation orchestrator and Helm as a package manager.

You can browse my github repo contains the code.

like image 67
ozlevka Avatar answered Oct 18 '22 18:10

ozlevka