A curated list for awesome kubernetes sources Inspired by @sindresorhus' awesome
"Talent wins games, but teamwork and intelligence wins championships."
-- Michael Jordan
Without the help from these amazing contributors, building this awesome-repo would never has been possible. Thank You very much guys !!
Thanks to Gitbook.This awesome list can now be downloaded and read in the form of a book.Check it out --> https://www.gitbook.com/book/ramitsurana/awesome-kubernetes/ .Keep Learning Keep Sharing !!
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
If you are interested in becoming a maintainer for the awesome kubernetes list.Please drop me a mail at firstname.lastname@example.org with your name and github id.Thanks
What is Kubernetes?
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions. Using the concepts of "labels" and "pods", it groups the containers which make up an application into logical units for easy management and discovery.
Source: What is Kubernetes
Kubernetes is known to be a descendant of Google's system BORG
The first unified container-management system developed at Google was the system we internally call Borg. It was built to manage both long-running services and batch jobs, which had previously been handled by two separate systems: Babysitter and the Global Work Queue. The latter’s architecture strongly influenced Borg, but was focused on batch jobs; both predated Linux control groups.
Source: Kubernetes Past
Date of Birth:
Kubernetes celebrates its birthday every year on 21st July.The project was born in the year 2015.
The awesome-kubernetes will now soon be available in the form of different releases and package bundles, It means that you can download the awesome kubernetes release up to a certain period of time, The release for awesome kubernetes 2015 bundle is released.Checkout the releases column for more info.Stay tuned for more updates.
- Starting Point
- Main Resources
- Useful Articles
- Cloud Providers
- Case Studies
- Persistent Volume Providers
- Related Projects
- Container Support
- Raspberry Pi
- Slide Presentations
- Interactive Learning Environments
- Interesting Twitter Accounts
- Amazing People
- Meetup Groups
- Connecting with Kubernetes
A place that marks the beginning of a journey
- Are you Ready to Manage your Infrastructure like Google?
- Google is years ahead when it comes to the cloud, but it's happy the world is catching up
- An Intro to Google’s Kubernetes and How to Use It by Laura Frank
- Getting Started on Kubernetes by Rajdeep Dua
- Kubernetes: The Future of Cloud Hosting by Meteorhacks
- Kubernetes by Google by Gaston Pantana
- Key Concepts by Arun Gupta
- Application Containers: Kubernetes and Docker from Scratch by Keith Tenzer
- Learn the Kubernetes Key Concepts in 10 Minutes by Omer Dawelbeit
- Top Reasons Businesses Should Move to Kubernetes Now by Mike Johnston
- The Children's Illustrated Guide to Kubernetes by Deis
- The ‘kubectl run’ command by Michael Hausenblas
Official resources from the Kubernetes team
A piece of writing included with others in a newspaper, magazine, or other publication
- Kubernetes: Getting Started With a Local Deployment
- Installation on Centos 7
- Packaging Multiple Resources together
- An Introduction to Kubernetes by Justin Ellingwood
- Scaling Docker with Kubernetes by Carlos Sanchez
- Creating a Kubernetes Cluster to Run Docker Formatted Container Images by Chris Negus
- Containerizing Docker on Kubernetes !! by Ramit Surana
- Running Kubernetes Example on CoreOS, Part 1 by Kelsey Hightower
- Play With Kubernetes Quickly Using Docker
- 1 command to Kubernetes with Docker compose by Sebastien Goasguen
- Nginx Server Deployment using Kubernetes by Rajdeep Dua
- What even is a kubelet? by Kamal Marhubi
- Kubernetes from the ground up: the API server by Kamal Marhubi
- Kubernetes 101 – Networking by Jon Langemak
- Dynamic Kubernetes installation/configuration with SaltStack by Jon Langemak
- Deploying Kubernetes with SaltStack by Jon Langemak
- Logging in Kubernetes with Fluentd and Elasticsearch by Jon Langemak
- Corekube: Running Kubernetes on CoreOS via OpenStack by Mike Metral
- Networking Kubernetes Clusters on CoreOS with Weave by Weaveworks
- CoreOS + Kubernetes Step By Step by Coreos
- Deploying to Kubernetes with Panamax by Brian DeHamer
- Deploy Kubernetes with a Single Command Using Atomicapp by Jason Brooks
- Deploying a Bare Metal Kubernetes Cluster by James Kyle
- AWS Advent 2014 - CoreOS and Kubernetes on AWS by Tim Dsyinger
- Kubernetes and AWS VPC Peering by Ben Straub
- Deploy a Kubernetes development cluster with Juju! by Matt Bruzek
- Try Kubernetes with Vagrant by Christoph Hartmann
- Keycloak on Kubernetes with OpenShift 3 by Marko Strukelj
- Kubernetes clusters with Oh-My-Vagrant by James
- Fleet Unit Files for Kubernetes on CoreOS by Michael Hamrah
- Kubernetes on AWS by CoreOS
- Testing Kubernetes on AWS by Alan Will
- Kubernetes: First steps on Amazon AWS by Remco
- Kubernetes Container Orchestration through Java APIs by Keith Tenzer
- Containers at Scale with Kubernetes on OpenStack by Keith Tenzer
- Installing cAdvisor and Heapster on bare metal Kubernetes by Jon Langemak
- Docker Clustering Tools Compared: Kubernetes vs Docker Swarm
- Comparison of Networking Solutions for Kubernetes
- Why Docker and Google Kubernetes Are Like PaaS Done Right
- Kubernetes Authentication plugins and kubeconfig by Jon Langemak
- Kubernetes with SaltStack revisited by Jon Langemak
- Kubernetes Authentication - OpenID Connect by Michael Ward
- Logging - Kafka topic by namespace by Michael Ward
- Achieving CI/CD with Kubernetes by Ramit Surana
- Kubernetes Monitoring Guide by JM Saponaro
- GCE - Google Compute Engine [default]
- [GKE] - Google Container Engine
- AWS - Amazon EC2
- Azure - Microsoft Azure
- Vsphere - VMWare VSphere
- Rackspace - Rackspace
Study of Various different case studies
- Building a Bank with Kubernetes
- Bringing Pokemon Go to Google Cloud
- Monitoring Kubernetes at Wayblazer
Persistent Volume Providers
List of some Persistent Volume Providers for Kubernetes.Check out Kubernets Experimental for more info
More Stuff Coming Soon
Kubernetes-related projects that you might find helpful
Projects built to make life with Kubernetes even better, more powerful, more scalable
Hypernetes is a secure, multi-tenant Kubernetes distro. Simply put,
Hypernetes = Bare-metal + Hyper + Kubernetes + KeyStone + Cinder + Neutron.
It envisions a future of "Container-as-a-Service without IaaS". The idea is to combine the orchestration power in Kubernetes and the runtime isolation in Hyper to build the truly secure multi-tenant CaaS platform.
Built by Deis and Inspired by Homebrew, apt, and NPM. Helm is a tool for working with Kubernetes-powered applications. Helm makes it easy run apps and services inside Kubernetes.
A central design concept in Kubernetes to cluster Kubernetes across several regions.
Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.
kmachine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them just like docker-machine
spread is a command line tool that builds and deploys a Docker project to a Kubernetes cluster in one command. The project's goals are to:
- Enable rapid iteration with Kubernetes
- Be the fastest, simplest way to deploy Docker to production
- Work well for a single developer or an entire team (no more broken bash scripts!)
Supergiant is open-source and built on Kubernetes. It provisions "cost-based" server resources, load balancers, and block-level storage automatically to support stateful apps at scale with less hardware expense. The goals of the project are to make launching, managing, and scaling Kubernetes as easy as possible.
Kubernetes as a Filesystem.Its written in Python, because Python is still cool and has a solid FUSE library available for it. The fusepy library has some simple examples showing how to implement loopback and memory file systems.
KubeSpray is a tool to deploy a kubernetes cluster with Ansible.
Bootkube is a helper tool for launching self-hosted Kubernetes clusters.When launched, bootkube will act as a temporary Kubernetes control-plane (api-server, scheduler, controller-manager), which operates long enough to bootstrap a replacement self-hosted control-plane.Additionally, bootkube can be used to generate all of the necessary assets for use in bootstrapping a new cluster. These assets can then be modified to support any additional configuration options.
It provides a Kubernetes cluster configured to run locally and optimized for rapid development.It is a single executable container process built for usage with spread.
CLI tool to manage Kubernetes Secrets easily
Node-level autoscaler for Kubernetes on AWS EC2 that is designed for batch jobs.
Commercial Platform for Kubernetes.Check out Stackpoint blog
Deploying a high-availability Kubernetes cluster, in minutes. Built on Terraform, CoreOS and Ansible.Recipes for bootstrapping HA Kubernetes clusters on any cloud or on-premise.Checkout https://github.com/Capgemini/kubeform
Script to help with the management of the deployment files. The script will just query hiera for the variables detected, replace them and create a new deployment output. The files can be in any of the kubernetes supported formats (json, yaml, yml).
Connect to kubernetes services running in your cluster directly through a VPN. Also allows you to easily route kubernetes services back to applications running on a VPN client.
kube-lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt.
To maintain regular surveillance over kubernetes
- Console: It is a general purpose, web-based UI for Kubernetes clusters. It allows to manage applications running in the cluster, troubleshoot them, as well as, manage the cluster itself.
- Datadog: Datadog is a hosted monitoring and metrics platform, with built in support for Kubernetes and Docker. Their Kubernetes integration pulls in Docker and Kubernetes events, converts labels and pod names into tags, as well as pulls metrics from Docker and CAdvisor. This allows you to build application dashboards and alerts that display data across pods, Nodes, and services.
- Heapster: Heapster enables Container Cluster Monitoring and Performance Analysis. Heapster currently supports Kubernetes and CoreOS natively. It can be extended to support other cluster management solutions easily. Heapster collects and interprets various signals like compute resource usage, lifecycle events, etc, and exports cluster metrics via REST endpoints.
- Kubedash: Performance analytics UI for Kubernetes Clusters. The goal of Kubedash is to allow the user or an administrator of a Kubernetes cluster to easily verify and understand the performance of a cluster and jobs running within it through intuitive visualizations of aggregated metrics, derived stats and event patterns. It is not intended to be a general-purpose Kubernetes UI. Instead, kubedash uses multiple sources of information to summarize and provide high-level analytic information to users and to the cluster administrator.
- Kube-ui: Container Cluster Manager from Google Web UI
- Prometheus: Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company.
- Sysdig Open Source: Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Sysdig is scriptable in Lua and includes a command line interface and a powerful interactive UI, csysdig, that runs in your terminal.
- Sysdig Monitoring: A distributed monitoring service built on top of open source sysdig. It provides metrics analysis, dashboarding, alerting, and exploration with a native integration into Kubernetes.
- Weave Scope: Weave Scope is a visualization, and monitoring tool for Docker and Kubernetes. It provides a top down view into your app as well as your entire infrastructure, and allows you to diagnose any problems with your distributed containerized app, in real time, as it being deployed to a cloud provider.
Kubernetes Platform as a Service providers
OpenShift is Red Hat's Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment. With OpenShift you have a choice of offerings, including online, on premise, and open source project options.
Deis Workflow is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Workflow builds upon Kubernetes and Docker to provide a lightweight PaaS with a Heroku-inspired workflow.
Build-test-deploy automated workflow software designed to make production environments more stable and life better for engineers
Fabric8 DevOps provides a completely integrated open source DevOps platform which works out of the box on any Kubernetes or OpenShift environment, The entire platform is modular and based on microservices so you can use as much or as little of Fabric8 DevOps as you wish!
Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.
- Jenkins-Kubernetes Plugin by Carlos Sanchez
- Automated Image Builds with Jenkins, Packer, and Kubernetes
- On-demand Jenkins slaves with Kubernetes and the Google Container Engine
- Jenkins setups for Kubernetes and Docker Workflow
CI Tool for deploying with kubernetes.
A list of linux containers supported by kubernetes.
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.Check out awesome-docker for more info.
rkt is the next-generation container manager for Linux clusters. Designed for security, simplicity, and composability within modern cluster architectures, rkt discovers, verifies, fetches, and executes application containers with pluggable isolation. rkt can run the same container with varying degrees of protection, from lightweight, OS-level namespace and capabilities isolation to heavier, VM-level hardware virtualization.
Some of the awesome findings and experiments on using Kubernetes with Raspberry Pi.Checkout Kubecloud
A written or printed work consisting of pages glued or sewn together along one side and bound in covers that provide us with information
- Kubernetes: Up and Running by Kelsey Hightower
- Docker and Kubernetes Under the Hood (Chinese) by Harry Zhang, Jianbo Sun and ZJU SEL lab
- Kubernetes: Scheduling the Future at Cloud Scale by Dave K. Rensin
- Kubernetes in Action by Marko Lukša
- Kubernetes Cookbook by Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou Carol Hsu
- Getting Started with Kubernetes by Jonathan Baier
A slide is a single page of a presentation created with software such as PowerPoint or OpenOffice Impress.
- Architecture Overview by enakai00
- Package your Java EE Application using Docker and Kubernetes by Arun Gupta
- Scaling Jenkins with Docker and Kubernetes by Carlos Sanchez
- An Introduction to Kubernetes by Imesh Gunaratne
- Musings on Mesos: Docker, Kubernetes, and Beyond. by Timothy St. Clair
- Cluster management with Kubernetes by Satnam Singh
- A brief study on Kubernetes and its components by Ramit Surana
- Moving to Kubernetes - Tales from SoundCloud by Tobias Schmidt
- Kubernetes Scaling SIG (K8Scale) by Bob Wise
- Network oriented Kubernetes intro by Salv Orlando
- Zero downtime-java-deployments-with-docker-and-kubernetes by Arjan Schaaf
- Kubernetes and CoreOS @ Athens Docker meetup by Mist.io
- Achieving CI/CD with Kubernetes by Ramit Surana
A recording of moving visual images made digitally or on videotape.
Other Useful Videos
- Google I/O 2014 - Containerizing the Cloud with Docker on Google Cloud Platform by Google Developers
- Container Orchestration using CoreOS and Kubernetes by Kelsey Hightower
- A Technical Overview of Kubernetes by Bredan Burns
- Docker Containers and Kubernetes with Brian Dorsey by Brian Dorsey
- Alpaca Kubernetes on AWS by Adrien Lemaire
- Arun Gupta: Package your Java applications using Docker and Kubernetes by Arun Gupta
- "Managing Containers at Scale with CoreOS and Kubernetes" by Kelsey Hightower by Kelsey Hightower
- Kubernetes: The Journey So Far - Greg DeMichillie by Greg DeMichillie
- DevNation 2015 - Paul Bakker - Kubernetes: Beyond the basics by Paul Bakker
Interactive Learning Environments
Learn Kubernetes using an interactive environment without requiring downloads or configuration
Interesting Twitter Accounts
Twitter is quick, it’s easy to communicate on, and is a very valuable social channel for a brand or business if you use it to its full potential, By following these news aggregators, rolling news channels, and companies, you can get the inside scoop of a story long before it hits the mainstream news outlets.
- Google Cloud Platform
- Kube Con
- Engine Yard
- DevOps Summit
- Bredan Burns, Partner Architect at Microsoft
- Kelsey Hightower, Staff Developer Advocate at Google
- Arun Gupta, Vice President, Developer Relations at Couchbase
- Carlos Sanchez, Senior Software Engineer, CloudBees
- Joseph Jacks, Senior Director, Product Management: Kubernetes Platform Engineering at Apprenda
- Joe Beda, Co-founder and Technical Lead for Kubernetes
- Patrick Reilly, CEO at Kismatic, Inc. / Advisor at Mesosphere, Inc
- Brandon Philips, CTO at CoreOS
- Eric Tune, Senior Staff Engineer at Google
- Tim Hockin, Senior Staff SW Engineer / Engineering Manager at Google
An awesome way to connect with kubernauts around the globe
Connecting with Kubernetes
A list of companies supporting Kubernetes
Some must to go and attend conferences on kubernetes
Contributions are most welcome!
This list is just getting started, please contribute to make it super awesome.
Check out the Contributing Guidelines.
awesome-kubernetes by Ramit Surana is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.