mirror of
https://github.com/tomhuang12/awesome-k8s-resources.git
synced 2024-10-01 06:35:50 -04:00
34 KiB
34 KiB
Awesome Kubernetes Resources
A curated list of awesome Kubernetes tools and resources.
Inspired by awesome list and donnemartin/awesome-aws.
The Fiery Meter of Awesomeness
- Repo with 0050+ Stars: 🔥
- Repo with 0200+ Stars: 🔥🔥
- Repo with 0500+ Stars: 🔥🔥🔥
- Repo with 1000+ Stars: 🔥🔥🔥🔥
- Repo with 2000+ Stars: 🔥🔥🔥🔥🔥
Idea taken from donnemartin/awesome-aws.
Contents
- Tools and Libraries
- Command Line Tools
- Cluster Provisioning
- Automation and CI/CD
- Cluster Resources Management
- Secrets Management
- Networking
- Storage
- Testing and Troubleshooting
- Monitoring, Alerts, and Visualization
- Backup and Restore
- Security and Compliance
- Service Mesh
- Development Tools
- Data Processing and Machine Learning
- Miscellaneous
- Guides, Documentations, Blogs, and Learnings
- Contribute
- License
Tools and Libraries
Items with 💚 indicate open source projects.
Command Line Tools
- 💚Kubebox 🔥🔥🔥🔥 - Terminal and Web console for Kubernetes
- 💚K9s 🔥🔥🔥🔥🔥 - K9s provides a terminal UI to interact with your Kubernetes clusters.
- 💚kubediff 🔥🔥🔥 - Kubediff is a tool for Kubernetes to show you the differences between your running configuration and your version controlled configuration.
- 💚Helm 🔥🔥🔥🔥🔥 - Helm is a tool for managing Charts. Charts are packages of pre-configured Kubernetes resources.
- 💚kubeprompt - Isolates KUBECONFIG in each shell and shows the current Kubernetes context/namespace in your prompt
- 💚kubectx + kubens 🔥🔥🔥🔥🔥 -
kubectx
helps you switch between clusters back and forth, andkubens
helps you switch between Kubernetes namespaces smoothly. - 💚kube-shell 🔥🔥🔥🔥 - Kube-shell: An integrated shell for working with the Kubernetes CLI.
- 💚Ktunnel 🔥 - Ktunnel is a CLI tool that establishes a reverse tunnel between a kubernetes cluster and your local machine.
- 💚kubectl-aliases 🔥🔥🔥🔥 - This repository contains a script to generate hundreds of convenient shell aliases for kubectl.
- 💚Kubetail 🔥🔥🔥🔥 - Bash script that enables you to aggregate (tail/follow) logs from multiple pods into one stream.
- 💚stern 🔥🔥🔥🔥🔥 - Stern allows you to tail multiple pods on Kubernetes and multiple containers within the pod.
- 💚kubectl tree 🔥🔥🔥🔥 - A kubectl plugin to explore ownership relationships between Kubernetes objects through owners.
- 💚nova - Nova scans your cluster for installed Helm charts, then cross-checks them against all known Helm repositories.
Cluster Provisioning
- 💚kind 🔥🔥🔥🔥🔥 - kind is a tool for running local Kubernetes clusters using Docker container "nodes".
- 💚k3s 🔥🔥🔥🔥🔥 - Lightweight Kubernetes. Easy to install, half the memory, all in a binary less than 100 MB.
- 💚k3d 🔥🔥🔥🔥 - k3d, like kind, is a tool for running local k3s clusters in docker. It's a single binary about 20 MB. You need to have docker installed.
- 💚eksctl 🔥🔥🔥🔥🔥 -
eksctl
is a simple CLI tool for creating clusters on EKS - Amazon's new managed Kubernetes service for EC2. - 💚kubespray 🔥🔥🔥🔥🔥 - Deploy a production ready Kubernetes cluster
- 💚kops 🔥🔥🔥🔥🔥 -
kops
helps you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes clusters from the command line. - 💚Bootkube 🔥🔥🔥🔥 - Bootkube is a tool for launching self-hosted Kubernetes clusters.
- 💚kube-aws 🔥🔥🔥🔥 -
kube-aws
is a command-line tool to create/update/destroy Kubernetes clusters on AWS. - 💚Minikube 🔥🔥🔥🔥🔥 - minikube implements a local Kubernetes cluster on macOS, Linux, and Windows.
- Kubeadm - kubeadm performs the actions necessary to get a minimum viable cluster up and running.
Automation and CI/CD
- 💚Flux 🔥🔥🔥🔥🔥 - Flux is a tool that automatically ensures that the state of a cluster matches the config in git.
- 💚Argo CD 🔥🔥🔥🔥🔥 - Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
- 💚Argo Rollouts 🔥🔥🔥 - Argo Rollouts controller, uses the Rollout custom resource to provide additional deployment strategies such as Blue Green and Canary to Kubernetes.
- 💚Helm Operator 🔥🔥 - The Helm Operator is a Kubernetes operator, allowing one to declaratively manage Helm chart releases.
- 💚Flagger 🔥🔥🔥🔥🔥 - Flagger is a progressive delivery tool that automates the release process for applications running on Kubernetes.
- 💚Argo Workflows 🔥🔥🔥🔥🔥 - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.
- 💚KEDA 🔥🔥🔥🔥🔥 - KEDA allows for fine grained autoscaling (including to/from zero) for event driven Kubernetes workloads.
- 💚KubeSphere 🔥🔥🔥🔥🔥 - KubeSphere is a distributed operating system providing cloud native stack with Kubernetes as its kernel, and aims to be plug-and-play architecture for third-party applications seamless integration to boost its ecosystem.
- 💚Skaffold 🔥🔥🔥🔥🔥 - Skaffold is a command line tool that facilitates continuous development for Kubernetes applications.
- 💚Apollo 🔥🔥 - Apollo is a simple, lightweight, Continuous Deployment (CD) solution on top of Kubernetes.
- 💚Spinnaker 🔥🔥🔥🔥🔥 - Spinnaker is an open-source continuous delivery platform for releasing software changes with high velocity and confidence.
- 💚Argo Events 🔥🔥🔥 - Argo Events is an event-driven workflow automation framework for Kubernetes which helps you trigger K8s objects, Argo Workflows, Serverless workloads, etc.
- 💚Reloader 🔥🔥🔥🔥 - Reloader can watch changes in
ConfigMap
andSecret
and do rolling upgrades on Pods with their associatedDeploymentConfigs
,Deployments
,Daemonsets
andStatefulsets
.
Cluster Resources Management
- 💚Kruise 🔥🔥🔥🔥 - Kruise consists of several controllers which extend and complement the Kubernetes core controllers for workload management.
- 💚Grafana Tanka 🔥🔥🔥 - The clean, concise and super flexible alternative to YAML for your Kubernetes cluster.
- 💚KubeDirector 🔥🔥 - KubeDirector uses standard Kubernetes (K8s) facilities of custom resources and API extensions to implement stateful scaleout application clusters.
- 💚The Hierarchical Namespace Controller 🔥🔥🔥 - Hierarchical namespaces make it easier to share your cluster by making namespaces more powerful.
Secrets Management
- 💚Kubernetes External Secrets 🔥🔥🔥 - Kubernetes External Secrets allows you to use external secret management systems, like AWS Secrets Manager or HashiCorp Vault, to securely add secrets in Kubernetes.
- 💚Sealed Secrets 🔥🔥🔥🔥🔥 - Encrypt your Secret into a SealedSecret, which is safe to store - even to a public repository.
Networking
- 💚ingress-nginx 🔥🔥🔥🔥🔥 -
ingress-nginx
is an Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer. - 💚kubernetes-ingress 🔥🔥🔥🔥🔥 - An implementation of an Ingress controller for NGINX and NGINX Plus (commercial).
- 💚Calico Networking 🔥🔥🔥🔥 - Calico is an open source networking and network security solution for containers, virtual machines, and bare-metal workloads
- 💚CoreDNS 🔥🔥🔥🔥🔥 - CoreDNS is a fast and flexible DNS server that works on Kubernetes.
- 💚Kong for Kubernetes 🔥🔥🔥🔥 - Configure plugins, health checking, load balancing and more in Kong for Kubernetes Services.
- 💚cert-manager 🔥🔥🔥🔥🔥 - cert-manager is a Kubernetes add-on to automate the management and issuance of TLS certificates from various issuing sources.
- 💚ksniff 🔥🔥🔥 - A kubectl plugin that utilize tcpdump and Wireshark to start a remote capture on any pod in your Kubernetes cluster.
- 💚kubectl trace 🔥🔥🔥 -
kubectl trace
is a kubectl plugin that allows you to schedule the execution of bpftrace programs in your Kubernetes cluster.
Storage
- 💚Rook 🔥🔥🔥🔥🔥 - Rook is an open source cloud-native storage orchestrator for Kubernetes.
- 💚OpenEBS 🔥🔥🔥🔥🔥 - OpenEBS is the most widely deployed and easy to use open-source storage solution for Kubernetes.
- 💚Longhorn 🔥🔥🔥🔥 - Longhorn is a distributed block storage system for Kubernetes.
- Amazon EBS CSI Driver - The Amazon Elastic Block Store Container Storage Interface (CSI) Driver provides a CSI interface used by Container Orchestrators to manage the lifecycle of Amazon EBS volumes.
- Amazon EFS CSI Driver - The Amazon Elastic File System Container Storage Interface (CSI) Driver implements the CSI specification for container orchestrators to manage the lifecycle of Amazon EFS filesystems.
- Amazon FSx for Lustre CSI Driver - The Amazon FSx for Lustre Container Storage Interface (CSI) Driver implements CSI specification for container orchestrators (CO) to manage lifecycle of Amazon FSx for Lustre filesystems.
Testing and Troubleshooting
- 💚kube-monkey 🔥🔥🔥🔥 - It randomly deletes Kubernetes (k8s) pods in the cluster encouraging and validating the development of failure-resilient services.
- 💚Kubetest 🔥 - Kubetest is a pytest plugin that makes it easier to manage a Kubernetes cluster within your integration tests.
- 💚Litmus 🔥🔥🔥 - Litmus provides tools to orchestrate chaos on Kubernetes to help SREs find weaknesses in their deployments.
- 💚PowerfulSeal 🔥🔥🔥🔥 - PowerfulSeal injects failure into your Kubernetes clusters, so that you can detect problems as early as possible.
- 💚Kubectl-debug 🔥🔥🔥🔥 -
kubectl-debug
is an out-of-tree solution for troubleshooting running pods, which allows you to run a new container in running pods for debugging purpose. - 💚ksniff 🔥🔥🔥 - A kubectl plugin that utilize tcpdump and Wireshark to start a remote capture on any pod in your Kubernetes cluster.
- 💚k6 🔥🔥🔥🔥🔥 - k6 is a modern load testing tool, building on Load Impact's years of experience in the load and performance testing industry.
- 💚Conftest 🔥🔥🔥🔥 - Conftest helps you write tests against structured configuration data.
- 💚chaoskube 🔥🔥🔥🔥 -
chaoskube
periodically kills random pods in your Kubernetes cluster. - 💚Chaos Mesh 🔥🔥🔥🔥 - Chaos Mesh® is a cloud-native Chaos Engineering platform that orchestrates chaos on Kubernetes environments.
- 💚popeye 🔥🔥🔥🔥🔥 - Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources and configurations.
- 💚kube-score 🔥🔥🔥 -
kube-score
is a tool that performs static code analysis of your Kubernetes object definitions. - 💚KubeInvaders 🔥🔥🔥 - Through KubeInvaders you can stress Kubernetes cluster in a fun way and check how it is resilient.
Monitoring, Alerts, and Visualization
- 💚Prometheus 🔥🔥🔥🔥🔥 - Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system.
- 💚Grafana 🔥🔥🔥🔥🔥 - Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored.
- 💚kube-state-metrics 🔥🔥🔥🔥🔥 - kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.
- 💚Kubernetes Metrics Server 🔥🔥🔥🔥🔥 - Metrics Server is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
- 💚Kubernetes Operational View 🔥🔥🔥🔥 - A tool that aims to provide a common operational picture for multiple Kubernetes clusters.
- 💚Kubernetes Dashboard 🔥🔥🔥🔥🔥 - Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters.
- 💚Thanos 🔥🔥🔥🔥🔥 - Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity.
- 💚Cortex 🔥🔥🔥🔥🔥 - Cortex provides horizontally scalable, highly available, multi-tenant, long term storage for Prometheus.
- 💚Goldilocks 🔥🔥 - This tool creates a vertical pod autoscaler for each deployment in a namespace and then queries them for information.
- 💚Kiali 🔥🔥🔥🔥🔥 - Kiali works with Istio to visualise the service mesh topology.
- 💚Searchlight 🔥🔥 - Searchlight/Icinga periodically runs various checks on a Kubernetes cluster and sends notifications if detects an issue.
- 💚Popeye 🔥🔥🔥🔥🔥 - Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources and configurations.
- 💚kubewatch 🔥🔥🔥🔥 -
kubewatch
is a Kubernetes watcher that currently publishes notification to available collaboration hubs/notification channels. - 💚Sloop 🔥🔥🔥 - Sloop monitors Kubernetes, recording histories of events and resource state changes and providing visualizations to aid in debugging past events.
- 💚BotKube 🔥🔥🔥 - BotKube integration with Slack or Mattermost helps you monitor your Kubernetes cluster, debug critical deployments and gives recommendations for standard practices by running checks on the Kubernetes resources.
- 💚kube-capacity 🔥🔥🔥 - This is a simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster.
- 💚Lens 🔥🔥🔥🔥🔥 - Lens it's an useful, attractive, open source user interface (UI) for working with Kubernetes clusters.
Backup and Restore
- 💚katafygio 🔥 - katafygio discovers Kubernetes objects (deployments, services, ...), and continuously save them as yaml files in a git repository.
- 💚Velero 🔥🔥🔥🔥🔥 - Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes.
Security and Compliance
- 💚kube-bench 🔥🔥🔥🔥🔥 - kube-bench is a Go application that checks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark.
- 💚Gatekeeper 🔥🔥🔥🔥 - Policy controller for Kubernetes
- 💚Konstraint - Konstraint is a CLI tool to assist with the creation and management of constraints when using Gatekeeper.
- 💚kube-hunter 🔥🔥🔥🔥🔥 - kube-hunter hunts for security weaknesses in Kubernetes clusters.
- Kube-Scan 🔥🔥 - Kube-Scan gives a risk score, from 0 (no risk) to 10 (high risk) for each workload.
- 💚Permission manager 🔥🔥🔥 - Permission Manager is an application developed by SIGHUP that enables a super-easy and user-friendly RBAC management for Kubernetes.
- 💚rakkess 🔥🔥🔥 - kubectl plugin to show an access matrix for server resources
- 💚k-rail 🔥🔥 - k-rail is a workload policy enforcement tool for Kubernetes. It can help you secure a multi tenant cluster with minimal disruption and maximum velocity.
- 💚Falco 🔥🔥🔥🔥🔥 - Falco is a behavioral activity monitor designed to detect anomalous activity in your applications. You can use Falco to monitor run-time security of your Kubernetes applications and internal components.
Service Mesh
- 💚Istio 🔥🔥🔥🔥🔥 - An open platform to connect, manage, and secure microservices.
- 💚Linkerd 🔥🔥🔥🔥🔥 - Linkerd is a transparent service mesh, designed to make modern applications safe and sane.
- Consul - HashiCorp's service mesh service that is infrastructure agnostic.
- AWS App Mesh - A service mesh service offered by AWS that works on AWS infrastructure services such as EKS and Fargate.
- 💚Open Service Mesh 🔥🔥🔥🔥 - Open Service Mesh (OSM) is a lightweight, extensible, Cloud Native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments.
Development Tools
- 💚Telepresence 🔥🔥🔥🔥🔥 - Telepresence provides fast, realistic local development for Kubernetes microservices.
- 💚Okteto 🔥🔥🔥🔥 -
okteto
accelerates the development workflow of Kubernetes applications. - 💚Tilt 🔥🔥🔥🔥🔥 - Tilt powers multi-service development and makes sure they behave.
- 💚garden 🔥🔥🔥🔥🔥 - Garden provides production-like Kubernetes testing environments for integration tests, QA, and development.
- 💚kubernix 🔥🔥 - This project aims to provide single dependency Kubernetes clusters for local testing, experimenting and development purposes.
- 💚ko 🔥🔥🔥🔥 -
ko
is a tool for building and deploying Golang applications to Kubernetes. - 💚Makisu 🔥🔥🔥🔥🔥 - Makisu is a fast and flexible Docker image build tool designed for unprivileged containerized environments such as Mesos or Kubernetes.
- 💚Tye 🔥🔥🔥🔥 - Tye is a developer tool that makes developing, testing, and deploying microservices and distributed applications easier.
- 💚kubectl-warp 🔥🔥 - Kubernetes CLI plugin for syncing and executing local files in Pod on Kubernetes
Data Processing and Machine Learning
- 💚Volcano 🔥🔥🔥 - Volcano is a batch system built on Kubernetes.
- 💚Kubeflow 🔥🔥🔥🔥🔥 - Kubeflow is a Cloud Native platform for machine learning based on Google’s internal machine learning pipelines.
- 💚Strimzi 🔥🔥🔥🔥 - Strimzi provides a way to run an Apache Kafka cluster on Kubernetes or OpenShift in various deployment configurations.
Miscellaneous
- 💚Crossplane 🔥🔥🔥🔥🔥 - Crossplane is an open source Kubernetes add-on that extends any cluster with the ability to provision and manage cloud infrastructure, services, and applications.
- 💚Brigade 🔥🔥🔥🔥🔥 - Brigade is the tool for creating pipelines for Kubernetes.
- 💚KubeEdge 🔥🔥🔥🔥🔥 - KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to hosts at the Edge.
- 💚AWS Node Termination Handler 🔥🔥 - A Kubernetes Daemonset to gracefully handle EC2 instance shutdown
- 💚Descheduler for Kubernetes 🔥🔥🔥🔥 - Descheduling pods from nodes based on policies
- 💚Kubeless 🔥🔥🔥🔥🔥 -
kubeless
is a Kubernetes-native serverless framework that lets you deploy small bits of code without having to worry about the underlying infrastructure plumbing. - 💚Agones 🔥🔥🔥🔥🔥 - Agones is a library for hosting, running and scaling dedicated game servers on Kubernetes.
- 💚Shell-operator 🔥🔥🔥 - Shell-operator is a tool for running event-driven scripts in a Kubernetes cluster.
- 💚Kubecost 🔥🔥🔥 - Kubecost models give teams visibility into current and historical Kubernetes spend and resource allocation.
- 💚KubePug 🔥 - A tool to check deprecations before upgrading Kubernetes version
Guides, Documentations, Blogs, and Learnings
Guides
- A Beginner’s Guide to Kubernetes - A comprehensive introduction to Kubernetes architecture
- The Illustrated Children’s Guide to Kubernetes - Graphical explanations of Kubernetes
- 💚Kubernetes The Hard Way 🔥🔥🔥🔥🔥 - Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.
- Troubleshooting Kubernetes deployments - A flow chart to troubleshoot a kubernetes deployment in case of issues
- A Guide to the Kubernetes Networking Model - A in-depth run-through of Kubernetes networking
- Writing Your First Kubernetes Operator - In this article, we’ll see how to build and deploy your first Kubernetes Operator using the Operator SDK.
- Production grade Kubernetes Monitoring using Prometheus - A in-depth guide to deploy Prometheus monitoring solution.
- Configuring HA Kubernetes cluster on bare metal servers with kubeadm - A guide to standing up a HA Kubernetes cluster on bare metal servers with kubeadm.
- Introduction to Using Google Kubernetes Engine; Explain Like I’m Five! - Creating your first managed Kubernetes cluster on Google Kubernetes Engine using Terraform.
- Amazon EKS Best Practices Guide for Security - This guide provides advice about protecting information, systems, and assets that are reliant on EKS while delivering business value through risk assessments and mitigation strategies.
- Amazon EKS Node Drainer - A guide and an example to cordon and evict all evictable pods from an EC2 node being terminated.
- Kubernetes Working Group for Multi-Tenancy - This is a working place for multi-tenancy related proposals and prototypes.
Blogs and Videos
- 10 most common mistakes using kubernetes
- Scaling Kubernetes to 2,500 Nodes
- Kubernetes at Reddit: Tales from Production
- Life of a Packet
- How the Department of Defense Moved to Kubernetes and Istio
- OPA Deep Dive
- Kubernetes Failure Stories
- Service Mesh Comparison
Learnings and Documentations
- Kubernetes API Reference Docs
- kubectl Cheat Sheet
- Katacoda - This is a Kubernetes playground, a safe place designed for experimenting, exploring and learning Kubernetes.
- Play with Kubernetes - Play with Kubernetes is a playground which allows users to run K8s clusters in a matter of seconds.
- Learn Kubernetes Basics - This tutorial provides a walkthrough of the basics of the Kubernetes cluster orchestration system.
- A Beginner’s Guide to Kubernetes - A comprehensive introduction to Kubernetes architecture
- Configuring Redis using a ConfigMap - A walkthrough that provides a real world example of how to configure Redis using a ConfigMap
- Exposing an External IP Address to Access an Application in a Cluster - This guide shows how to create a Kubernetes Service object that exposes an external IP address.
- Example: Deploying PHP Guestbook application with Redis - This tutorial shows you how to build and deploy a simple, multi-tier web application using Kubernetes and Docker.
- StatefulSet Basics - This tutorial provides an introduction to managing applications with StatefulSets.
- Example: Deploying WordPress and MySQL with Persistent Volumes - This tutorial shows you how to deploy a WordPress site and a MySQL database using Minikube.
- Example: Deploying Cassandra with a StatefulSet - This tutorial shows you how to run Apache Cassandra on Kubernetes. Cassandra, a database, needs persistent storage to provide data durability.
- Running ZooKeeper, A Distributed System Coordinator - This tutorial demonstrates running Apache Zookeeper on Kubernetes using StatefulSets, PodDisruptionBudgets, and PodAntiAffinity.
- Set Up a CI/CD Pipeline with Kubernetes - A end-to-end guide to set up a CI/CD Pipeline with Kubernetes.
- How to pass the Certified Kubernetes Administrator (CKA) exam on the first attempt - A guide to pass CKA exam
- Webinar: K8s with OPA Gatekeeper
- Kubectl Kubernetes CheatSheet - A cheatsheet containing many helpful kubectl commands
- Ready-to-use commands and tips for kubectl
- Certified Kubernetes Security Specialist - CKSS - This repository is a collection of resources to prepare for the Certified Kubernetes Security Specialist (CKSS) exam.
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, Tom Huang has waived all copyright and related or neighboring rights to this work.