DEV Community

Cover image for 7 essential Kubernetes GitHub Projects you should know about πŸ”₯πŸš€
Ankit Anand ✨
Ankit Anand ✨

Posted on • Edited on

7 essential Kubernetes GitHub Projects you should know about πŸ”₯πŸš€

Kubernetes is complex to learn, deploy and manage. But it is also a powerful container orchestration engine for automating deployment, scaling and management of containerized application. So the way forward is to make Kubernetes easier.

Twitter CTA

Here's a list of 7 open-source GitHub projects to help you in your Kubernetes journey:

1. Minikube

⭐ Github stars: 23.4k

Most of us know this one. Minikube implements a local Kubernetes cluster on macOS, Linux, and Windows for you to practice and learn.

GitHub logo kubernetes / minikube

Run Kubernetes locally

minikube

Actions Status GoReport Widget GitHub All Releases Latest Release OpenSSF Best Practices OpenSSF Scorecard

minikube logo

minikube implements a local Kubernetes cluster on macOS, Linux, and Windows. minikube's primary goals are to be the best tool for local Kubernetes application development and to support all Kubernetes features that fit.

screenshot

Features

minikube runs the latest stable release of Kubernetes, with support for standard Kubernetes features like:

As well as developer-friendly features:

For more information, see the official minikube website

Installation

See the Getting Started Guide

πŸ“£ Please fill out our fast 5-question survey so…

2. kube-state-metrics

⭐ Github stars: 3.6k

kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. It exposes raw data unmodified from the Kubernetes API. You can use it to monitor details like state of nodes, pods and jobs.

GitHub logo kubernetes / kube-state-metrics

Add-on agent to generate and expose cluster-level metrics.

Overview

Build Status Go Report Card Go Reference govulncheck OpenSSF Best Practices OpenSSF Scorecard

kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. (See examples in the Metrics section below.) It is not focused on the health of the individual Kubernetes components, but rather on the health of the various objects inside such as deployments, nodes and pods.

kube-state-metrics is about generating metrics from Kubernetes API objects without modification. This ensures that features provided by kube-state-metrics have the same grade of stability as the Kubernetes API objects themselves. In turn, this means that kube-state-metrics in certain situations may not show the exact same values as kubectl, as kubectl applies certain heuristics to display comprehensible messages. kube-state-metrics exposes raw data unmodified from the Kubernetes API, this way users have all the data they require and perform heuristics as they see fit.

The metrics are exported on the HTTP endpoint /metrics on…

3. Kubernetes Dashboard

⭐ Github stars: 10.9k

Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters provided by Kubernetes. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself.

To deploy Dashboard, execute following command:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
Enter fullscreen mode Exit fullscreen mode

GitHub logo kubernetes / dashboard

General-purpose web UI for Kubernetes clusters

Kubernetes Dashboard

Go Report Card Coverage Status License

Introduction

Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself.

As of version 7.0.0, we have dropped support for Manifest-based installation. Only Helm-based installation is supported now. Due to multi-container setup and hard dependency on Kong gateway API proxy it would not be feasible to easily support Manifest-based installation.

Additionally, we have changed the versioning scheme and dropped appVersion from Helm chart. It is because, with a multi-container setup, every module is now versioned separately. Helm chart version can be considered an app version now.

Dashboard UI workloads page

Installation

Kubernetes Dashboard supports only Helm-based installation currently as it is faster and gives us better control over all dependencies required by Dashboard to run. We now use a single-container, DBless Kong installation as a gateway that connects all our containers…

4. KOPS

⭐ Github stars: 13.8k

KOPS stands for Kubernetes operations, an open-source project used to set up production-ready Kubernetes clusters very easily and quickly. It can help you create, destroy, upgrade and Kubernetes cluster, and can also provision the necessary cloud infrastructure.

GitHub logo kubernetes / kops

Kubernetes Operations (kOps) - Production Grade k8s Installation, Upgrades and Management

kOps - Kubernetes Operations

CI GitHub release (latest SemVer) Go Report Card GoDoc Widget

The easiest way to get a production grade Kubernetes cluster up and running.

What is kOps?

We like to think of it as kubectl for clusters.

kops will not only help you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes cluster, but it will also provision the necessary cloud infrastructure.

AWS (Amazon Web Services) and GCP (Google Cloud Platform) are currently officially supported, with DigitalOcean, Hetzner and OpenStack in beta support, and Azure in alpha.

Can I see it in action?

Installing and launching a Kubernetes cluster hosted on AWS, GCE, DigitalOcean, Hetzner, OpenStack, Azure

See Getting Started

Documentation

Documentation is in the /docs directory, and can be seen at kops.sigs.k8s.io.

Releases and kubernetes Release Compatibility

See Releases and versioning

Getting Involved and Contributing

See Contributing

Office Hours

kOps maintainers set aside one hour every other week for public office hours. This time is…




5. Kubespray

⭐ Github stars: 11.9k

Kubespray is used for Kubernetes cluster lifecycle management. It works with public cloud, on-premises, bare-metal, and test environment solutions.

GitHub logo kubernetes-sigs / kubespray

Deploy a Production Ready Kubernetes Cluster

Deploy a Production Ready Kubernetes Cluster

Kubernetes Logo

If you have questions, check the documentation at kubespray.io and join us on the kubernetes slack, channel #kubespray You can get your invite here

  • Can be deployed on AWS, GCE, Azure, OpenStack, vSphere, Equinix Metal (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal
  • Highly available cluster
  • Composable (Choice of the network plugin for instance)
  • Supports most popular Linux distributions
  • Continuous integration tests

Quick Start

Below are several ways to use Kubespray to deploy a Kubernetes cluster.

Ansible

Usage

Install Ansible according to Ansible installation guide then run the following steps:

# Copy ``inventory/sample`` as ``inventory/mycluster``
cp -rfp inventory/sample inventory/mycluster
# Update Ansible inventory file with inventory builder
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

# Review and change parameters under ``inventory/mycluster/group_vars``
cat inventory/mycluster/group_vars/all/all.yml
cat
…
Enter fullscreen mode Exit fullscreen mode

6. K9s

⭐ Github stars: 15.5k

K9s provides a terminal UI to interact with your Kubernetes clusters. It makes it easier to navigate, observe and manage your applications with the terminal.

GitHub logo derailed / k9s

🐢 Kubernetes CLI To Manage Your Clusters In Style!

k9s

K9s - Kubernetes CLI To Manage Your Clusters In Style!

K9s provides a terminal UI to interact with your Kubernetes clusters The aim of this project is to make it easier to navigate, observe and manage your applications in the wild. K9s continually watches Kubernetes for changes and offers subsequent commands to interact with your observed resources.


Note...

K9s is not pimped out by a big corporation with deep pockets. It is a complex OSS project that demands a lot of my time to maintain and support. K9s will always remain OSS and therefore free! That said, if you feel k9s makes your day to day Kubernetes journey a tad brighter, saves you time and makes you more productive, please consider sponsoring us! Your donations will go a long way in keeping our servers lights on and beers in our fridge!

Thank you!


Go Report Card golangci badge codebeat badge Build Status Docker Repository on Quay release License Releases


Screenshots

  1. Pods
  2. Logs
  3. Deployments

Demo Videos/Recordings

7. Popeye

⭐ Github stars: 3.3k

Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources and configurations. It is a readonly tool, it does not alter any of your Kubernetes resources.

GitHub logo derailed / popeye

πŸ‘€ A Kubernetes cluster resource sanitizer

Popeye: Kubernetes Live Cluster Linter

Popeye is a utility that scans live Kubernetes clusters and reports potential issues with deployed resources and configurations As Kubernetes landscapes grows, it is becoming a challenge for a human to track the slew of manifests and policies that orchestrate a cluster Popeye scans your cluster based on what's deployed and not what's sitting on disk. By linting your cluster, it detects misconfigurations, stale resources and assists you to ensure that best practices are in place, thus preventing future headaches. It aims at reducing the cognitive overload one faces when operating a Kubernetes cluster in the wild. Furthermore, if your cluster employs a metric-server, it reports potential resources over/under allocations and attempts to warn you should your cluster run out of capacity.

Popeye is a readonly tool, it does not alter any of your Kubernetes resources in any way!




Go Report Card codebeat badge Build Status release license docker GitHub stars Releases


Screenshots

Console

JSON

HTML

You…


I hope you enjoyed this list. I will be coming up with more such amazing resources soon.

We share more DevOps content on our Twitter handle. If you liked this, let's be friends on Twitter πŸ‘‹

Twitter CTA

A sneak peek of our tweets πŸ‘‡

Top comments (1)

Collapse
 
alexstaroselsky profile image
Alexander Staroselsky

Check out keda if you have a chance.