DEV Community

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

Posted on • Updated 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

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 that we can learn how & why…

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 GoDoc

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

Continuous Integration Continuous Deployment Go Report Card Coverage Status GitHub release License

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.

Dashboard UI workloads page

Getting Started

IMPORTANT: Read the Access Control guide before performing any further steps. The default Dashboard deployment contains a minimal set of RBAC privileges needed to run.

Install

To deploy Dashboard, execute following command:

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

Alternatively, you can install Dashboard using Helm as described at https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard.

Access

To access Dashboard from your local workstation you must create a secure channel to your Kubernetes cluster. Run the following command:

kubectl proxy
Enter fullscreen mode Exit fullscreen mode

Now access Dashboard at:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

Create An Authentication Token (RBAC)

To find out how to create sample user and log in follow Creating sample user guide.

NOTE:

  • Kubeconfig Authentication method does not support external identity providers or certificate-based authentication.
  • Metrics-Server has to…

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

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) is currently officially supported, with DigitalOcean, GCE, and OpenStack in beta support, and Azure and AliCloud in alpha.

Can I see it in action?

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

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 used to gather with…

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

To deploy the cluster you can use :

Ansible

Usage

# Install dependencies from ``requirements.txt``
sudo pip3 install -r requirements.txt
# 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 inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml

# 
…
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...

As you may know 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, please consider sponsoring us or purchase a K9sAlpha license. 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


Documentation

Please refer to our…

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 - A Kubernetes Cluster Sanitizer

Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources and configurations. It sanitizes your cluster based on what's deployed and not what's sitting on disk. By scanning your cluster, it detects misconfigurations and helps 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


Installation

Popeye is available on Linux, OSX and Windows platforms.

  • Binaries for Linux, Windows and Mac are available as tarballs in the release page.

  • For OSX/Unit using Homebrew/LinuxBrew

    brew install
    …
    Enter fullscreen mode Exit fullscreen mode

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 πŸ‘‡

Discussion (1)

Collapse
alexstaroselsky profile image
Alexander Staroselsky

Check out keda if you have a chance.