DEV Community

Cover image for ๐Ÿ”ฅ5 Must have tools to install on your Kubernetes cluster โœจ๏ธ๐Ÿš€
Eden Federman for Odigos

Posted on

๐Ÿ”ฅ5 Must have tools to install on your Kubernetes cluster โœจ๏ธ๐Ÿš€

TL;DR

This article lists five must-have tools for developers to install on their Kubernetes cluster. ๐ŸŽ‰

Feel free to explore these projects, star the repositories, and contribute to your favorites. ๐Ÿ˜‰

Without any further ado, let's get started. ๐Ÿƒโ€โ™‚๏ธ๐Ÿ’จ

Let's start


1. Odigos

๐Ÿ’ก Distributed tracing without code changes.

Odigos - Observability control plane

Odigos is an open-source observability control plane that enables organizations to create and maintain their observability pipeline.

Odigos automatically generates telemetry data in OpenTelemetry format to any Observability backend, without any code change. ๐Ÿ˜ป.

It automatically instruments our application, eliminating the need to set up OpenTelemetry or anything on our own. Odigos handles it all. ๐Ÿคฏ

All this is possible because of the following:

  • Automated Instrumentation ๐Ÿ‘พ: Odigos enables automated instrumentation of applications with OpenTelemetry and eBPF, eliminating the need for code modifications.

  • Universal Observability Tool Compatibility ๐Ÿค: It smoothly integrates with various observability tools, providing comprehensive support and efficient collector management.

We've recently published an article on implementing Odigos, check it out here.

๐ŸŒŸ Star Odigos


2. Argo CD

๐Ÿ’ก Declarative GitOps CD for Kubernetes.

Argo CD Working

Argo CD is a powerful GitOps CD tool that can help automate and simplify the deployment and management of Kubernetes applications ๐Ÿš€.

Argo CD main feature include a web UI ๐Ÿ’ป, CLI, rollback capabilities, and simplified monitoring.

Why use Argo CD over traditional CD tools? ๐Ÿค”

  • Git as single source of truth ๐Ÿคซ: Argo CD uses Git as a single aource of truth for app and infrastructure configuration. It makes it easy to track changes and rollback deployment if something goes wrong.

  • Friendly web UI ๐Ÿ’ป: Argo CD provides a dashboard to manage and get status of all the deployed applications.

  • Easy Rollbacks ๐Ÿ”„: The cluster is synced with a separate git repository so we just need to revert the changes in git and the cluster will be automatically synced with the git repository.

  • Disaster Recovery ๐ŸŒ‹: In case of a disaster just point the git repository to the newly created cluster and it will have all the configs of previous cluster.

These features makes it accessible for both beginners and experienced Kubernetes users.

In short, Argo CD is a GitOps CD tool for Kubernetes โ˜ธ๏ธ that uses Git as the single source for app and infastructure configurations and provides easy rollbacks, dashboard, and disaster recovery capabilities.

๐ŸŒŸ Argo CD on GitHub


3. Nginx Ingress Controller

๐Ÿ’ก Specialized load balancer for Kubernetes environments.

Nginx Ingress Controller Working

It is a most widely used ingress controller for Kubernetes. โ˜ธ๏ธ It uses Nginx as a reverse proxy and load balancer.

It runs ๐Ÿƒโ€โ™‚๏ธ in a Kubernetes environment with Nginx Plus or Nginx Open Source instances.

The key responsibilities of Nginx Ingress Controller are ๐Ÿ‘‡:

  • Load balance traffic to containers ๐Ÿ“ฆ in the Kubernetes cluster. It monitors Kubernetes ingress resources and routes traffic to the appropriate Kubernetes services and pods.

  • Handles networking, traffic management ๐Ÿ‘ฎโ€โ™‚๏ธ, communication and security ๐Ÿ”’.

  • Deploys resources based on its configuration ๐Ÿ“ and automatically updates rules based on ingress resource definitions.

In short, It manages traffic, security and dynamically adjusts routing based on Kubernetes ingress resources and configurations.

๐ŸŒŸ Nginx Ingress Controller on GitHub


4. AWS Controller for Kubernetes

๐Ÿ’ก Manage AWS services using Kubernetes.

AWS Controllers for Kubernetes

ACK, short for AWS Controllers for Kubernetes, is a set of custom controllers enabling integration between AWS services and Kubernetes clusters that let you directly manage AWS services from Kubernetes ๐Ÿ˜ฎ.

ACK makes it simple to build scalable and highly-available Kubernetes applications that utilize AWS services. It provides a unified way to manage our application and it's dependencies โœจ๏ธ.

Some key features of AWS Controllers for Kubernetes are:

  • Define and use AWS service resources directly from Kubernetes.

  • Take advantage of AWS managed services for our Kubernetes applications without needing to define resources outside of the cluster or run services that provide supporting capabilities like databases ๐Ÿ—„ or message queues.

In short, ACK enables us to manage AWS services directly from Kubernetes and provides a unified way to define and use AWS services from within our Kubernetes cluster.

๐ŸŒŸ AWS Controllers for K8 on GitHub


5. Kyverno

๐Ÿ’ก Policy engine designed for Kubernetes.

Kyverno - K8S policy engine

When deploying things in Kubernetes, like Pods or ConfigMaps, it's important to set rules/policies.

A key practice is avoiding the use of the latest tag for container images in production, as it's often a work-in-progress dev build.

What Kyverno actually does? ๐Ÿง

In Kubernetes, security issue is a big deal, and one of the main reason is misconfigurations. These security issues arise when there are no good rules (policies) in place.

This is where policy manager like Kyverno comes in action. ๐Ÿ˜Ž

๐Ÿšจ NOTE: Kyverno does not work on any other environment other than Kubernetes. If you are looking for a policy management that is vendor agnostic you might consider using something like Open Policy Agent.

Kyverno manages policies, whether they're about security or just good practices, in our Kubernetes setup.

We can create rules for things like the latest tag issue mentioned earlier or focus on security, like making sure your container images are safe in the software supply chain.

In short, Kyverno is a policy engine that helps manage security and best practices by allowing users to manage policies for deployments, addressing issues like misconfigurations and promoting good practices โœ…๏ธ.

๐ŸŒŸ Kyverno on GitHub


If you think of any other helpful projects that I haven't covered in this article, please share them in the comments section below. ๐Ÿ‘‡๐Ÿป

So, that is it for this article. Thank you so much for reading! ๐ŸŽ‰

Top comments (12)

Collapse
 
schollii profile image
schollii • Edited

I have nothing against odigos maybe it really is great at what it does but hopefully it is obvious that this article is an excuse to advertise odigos. I've been working with kubernetes for 6 years and never heard of it despite following the landscape closely. All the other tools are well known and have been around for years. Jaeger is probably the main player in this area but there are many including datadog (which does way more than distributed tracing).

Just to give a different perspective:

I would recommend Crossplane over ACK if there is a "must have" of that type. But there isn't, except this type of integration with cloud provider is far less of a must-have than say external-dns.

An ingress controller is pretty much a must-have, but is Nginx controller the must have? For k8s in AWS the AWS LB controller is better integrated and easier to maintain. Sure if you absolutely need path rewriting the nginx variant of ingress controller will be necessary (in many cases path rewrite can be replaced by wildcard subdomain dns record).

Argocd is a gitops operator. Many k8s devops engineers will find Weave Flux simpler to setup maintain and use than ArgoCD, although there definitely are features of ArgoCD that will make it a better choice for some. And whereas an ingress controller like Nginx or AWS LB are pretty much inevitable, a gitops operator is by no means essential or "must have" as it comes with various pros and cons that must be carefully considered.

Basically the author includes popular tools from the k8s landscape in this article so it'll pop up in feeds, and slips in its #1 position must-haves a tool that is completely new to k8s (summer 2022 makes it such). Not saying it's not good or worth a try, just that putting it in a must-have list is rubbish. A "should check" list, sure. But not a must have!

It's always intriguing to find out what someone thinks are must-haves though.

Collapse
 
grigorkh profile image
Grigor Khachatryan

I've never heard of Odigos before, but it seems like a very useful tool with great potential.

Collapse
 
ari-odigos profile image
Ari
Collapse
 
gerimate profile image
Geri Mรกtรฉ

Great list, thank you for making it!

Collapse
 
nevodavid profile image
Nevo David

Great list!

Collapse
 
bh4skar profile image
Bhaskar Prajapati

Never knew there was something like AWS Controllers for Kubernetes. Much needed thing for me. Thank you for sharing!

Collapse
 
shricodev profile image
Shrijal Acharya

Great listings and very well explained. ๐Ÿ˜ป

Collapse
 
m0n0x41d profile image
Ivan Zakutnii

And deckhouse, of course

Collapse
 
johntellsall profile image
John Mitchell

very useful! Specifically the Odigos tool for developer-level debugging/tracing = <3

Collapse
 
awaist profile image
Awais

Want to learn about Local Development with Kubernetes. Watch the tutorial below. It's really helpful guys.
educationecosystem.com/education_e...