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.
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.
kubernetes / minikube
Run Kubernetes locally
minikube
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.
Features
minikube runs the latest stable release of Kubernetes, with support for standard Kubernetes features like:
-
LoadBalancer - using
minikube tunnel
- Multi-cluster - using
minikube start -p <name>
- NodePorts - using
minikube service
- Persistent Volumes
- Ingress
-
Dashboard -
minikube dashboard
-
Container runtimes -
minikube start --container-runtime
- Configure apiserver and kubelet options via command-line flags
- Supports common CI environments
As well as developer-friendly features:
- Addons - a marketplace for developers to share configurations for running services on minikube
- NVIDIA GPU support - for machine learning
- Filesystem mounts
For more information, see the official minikube website
Installation
See the Getting Started Guide
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.
kubernetes / kube-state-metrics
Add-on agent to generate and expose cluster-level metrics.
Overview
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
kubernetes / dashboard
General-purpose web UI for Kubernetes clusters
Kubernetes Dashboard
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.
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
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
Now access Dashboard at:
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.
kubernetes / kops
Kubernetes Operations (kops) - Production Grade K8s Installation, Upgrades, and Management
kOps - Kubernetes Operations
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
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.
kubernetes-sigs / kubespray
Deploy a Production Ready Kubernetes Cluster
Deploy a Production Ready Kubernetes Cluster
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
#
β¦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.
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!
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.
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!
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
β¦
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 π
A sneak peek of our tweets π
SigNoz@signozhqA Kubernetes cluster is made of control plane nodes and worker nodes. And the nodes are made up of a number of components with specific functionalities π
Thread π§΅ππ»
#kubernetes #devops #docker14:00 PM - 28 Feb 2022
Top comments (1)
Check out keda if you have a chance.