Awesome Kubernetes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37
At a glance
Powered by AI
Some key takeaways from the document are that Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It was inspired by Google's internal container management system called Borg.

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery.

Kubernetes traces its history back to Google's internal container clustering system called Borg. Kubernetes 1.0 was first released on July 21, 2015.

Table

of Contents
Introduction 1.1

2
Introduction

Awesome-Kubernetes

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!

What is Kubernetes? :ship:


Kubernetes is an open-source system for automating deployment, scaling, and
management of containerized applications. It groups containers that make up an
application into logical units for easy management and discovery.

3
Introduction

Source: What is Kubernetes

History
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. Kubernetes 1.0 was released on
July 21 2015, after being first announced to the public at Dockercon in June 2014.

Roadmap
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.

Featured On
https://cloud.google.com/community/
https://www.freecodecamp.org/news/a-friendly-introduction-to-kubernetes-
670c50ce4542/

Menu
Awesome-Kubernetes
What is Kubernetes? :ship:

4
Introduction

History
Date of Birth
Roadmap
Featured On
Menu
Starting Point
Installers
Main Resources
Release Notes
Useful Articles
Cloud Providers
Logging
Monitoring
Security
Authentication
Networking
CI/CD
Deep Learning
Certifications
Devops Tools
Others
Managed Kubernetes
Cluster Managers
Developer Platform
Enterprise Kubernetes Products
Public/Private Cloud
PaaS
Interactive Learning Environments
MOOC Courses / Tutorials
Courses
Tutorials
Case Studies
Persistent Volume Providers
Container Storage Interface Plugins
Cluster API Providers
Developer Libraries/ Scripts
Python
Jenkins
Projects
Related Software

5
Introduction

Package Managers
Monitoring Services
Testing
Continuous Delivery
Serverless Implementations
Operators
Custom Schedulers
Container Support
Database
Networking
Service mesh
RPC
Secret generation and management
Web applications
Desktop applications
Mobile applications
API/CLI adaptors
Application deployment orchestration
Configuration
Security
Load balancing
Big Data
Machine Learning
Service Discovery
Operating System
YAML/JSON Config
Static Analysis
Tuning
Backup and Disaster Recovery
Policy Management
Plugins
Debug
Benchmark Tools
Raspberry Pi
Books
Certifications
Slide Presentations
Videos
Main Account
Other Useful Videos

6
Introduction

CI/CD Videos
Interesting Twitter Accounts
Amazing People
Meetup Groups
Connecting with Kubernetes
Conferences
Contributing
License

Starting Point
A place that marks the beginning of a journey

Kubernetes Community Overview and Contributions Guide by Ihor Dvoretskyi


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
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
Docker Kubernetes Lab Handbook by Peng Xiao
Curated Resources for Kubernetes
Kubernetes Comic by Google Cloud Platform
Kubernetes 101: Pods, Nodes, Containers, and Clusters by Dan Sanche
An Introduction to Kubernetes by Justin Ellingwood
Kubernetes and everything else - Introduction to Kubernetes and it's context by Rinor
Maloku
Installation on Centos 7
Setting Up a Kubernetes Cluster on Ubuntu 18.04
Cloud Native Landscape

7
Introduction

Installers
Bootkube - CoreOS - Cloud Agnostic
Breeze - CentOS - Cloud Agnostic
Conjure-up - Ubuntu - Cloud Agnostic
Docker for MAC - Run Kubernetes and Docker locally on your MAC (Edge Channel)
Docker for Windows - Run Kubernetes and Docker locally on your Windows PC (Edge
Channel)
eksctl - The official CLI for Amazon EKS
Juju - Ubuntu - Cloud Agnostic
KubeSphere - Install Kubernetes and KubeSphere in multiple instances in an easy way,
including full-stack cloud-native softwares, e.g. istio, ES, Prometheus, Fluent Bit,
SonarQube, Jenkins.
k3s - Lightweight Kubernetes. Easy to install, half the memory, all in a binary less than
40mb
k3d - A tool for running k3s clusters in container nodes
kind - A tool for running local Kubernetes clusters using Docker container “nodes”
Kops - OS Agnostic - AWS
Kube-ansible - OS Agnostic - Cloud Agnostic
Kube-aws - CoreOS - AWS
Kube-deploy
Kubeadm - OS Agnostic - Cloud Agnostic
KubeNow - Ubuntu - Cloud Agnostic
Kubernetes-Saltstack - systemd OS - Cloud Agnostic
Kubespray - OS Agnostic - Cloud Agnostic
Kubicorn - OS Agnostic - Cloud Agnostic
Kublr - OS Agnostic - On-Prem - Cloud Agnostic
Linode - CoreOS - Linode
matchbox - CoreOS - Network boot and provision Container Linux clusters (e.g. etcd3,
Kubernetes, more).
MetalK8s - CentOS - On-Prem - Cloud Agnostic - Apache-2.0
MicroK8s - A single package of k8s that installs on 42 flavours of Linux
Minikube - Run Kubernetes locally
RKE - OS Agnostic - Cloud Agnostic
sealos - Simple kubernetes HA installer
Simplekube - systemd OS - Cloud Agnostic
Supergiant - CoreOS - Cloud Agnostic
Terraform - CoreOS - AWS
Typhoon - Container Linux - Cloud Agnostic
aks-engine - AKS Engine is the easiest way to provision a self-managed Kubernetes

8
Introduction

cluster on Azure.

Main Resources
Official resources from the Kubernetes team

Kubernetes Documentation
Kubernetes Source
Kubernetes Troubleshooting

Release Notes
Official release notes from the Kubernetes team on Stable Kubernetes Releases

Kubernetes-1.18
Kubernetes-1.17
Kubernetes-1.16
Kubernetes-1.15
Kubernetes-1.14
Kubernetes-1.13
Kubernetes-1.12
Kubernetes-1.11
Kubernetes-1.10
Kubernetes-1.9
Kubernetes-1.8
Kubernetes-1.7
Kubernetes-1.6
Kubernetes-1.5
Kubernetes-1.4
Kubernetes-1.3
Kubernetes-1.2

Useful Articles
A piece of writing included with others in a newspaper, magazine, or other publication

Cloud Providers

9
Introduction

Kubernetes on AWS by CoreOS


AWS Advent 2014 - CoreOS and Kubernetes on AWS by Tim Dsyinger
Kubernetes and AWS VPC Peering by Ben Straub
Testing Kubernetes on AWS by Alan Will
Kubernetes: First steps on Amazon AWS by Remco
Manage Kubernetes Clusters on AWS Using Kops
Production grade Kubernetes on AWS: Primer (Part 1) by Guy Maliar
Production grade Kubernetes on AWS: 4 tools that made our lives easier (Part 2) by
Guy Maliar
Production grade Kubernetes on AWS: 3 tips for networking, ingress and microservices
(Part 3) by Guy Maliar
Production grade Kubernetes on AWS: 3 lessons learned scaling a cluster (Part 4) by
Guy Maliar
Continuous Deployment with Google Container Engine and Kubernetes
Creating a Kubernetes Cluster on DigitalOcean with Python and Fabric
Deploy a Kubernetes development cluster with Juju! by Matt Bruzek
Containers at Scale with Kubernetes on OpenStack by Keith Tenzer

Logging
Logging in Kubernetes with Fluentd and Elasticsearch by Jon Langemak
Logging - Kafka topic by namespace by Michael Ward

Monitoring
Kubernetes Monitoring Guide by JM Saponaro
Installing cAdvisor and Heapster on bare metal Kubernetes by Jon Langemak
How to Monitor Kubernetes: A 4-Part Series
Kubernetes Web UIs in 2019

Security
Kubernetes Security Guide - RBAC, TLS, Security policy, Network policy, etc.
Handling Sensitive Data In A Docker Application with Kubernetes Secrets by John
Kariuki
How to Create and Use Kubernetes Secrets by Mohamed Ez Ez
Kubernetes Security Best Practices
Running Vault and Consul on Kubernetes by Michael Herman

Authentication

10
Introduction

Kubernetes Authentication plugins and kubeconfig by Jon Langemak


Kubernetes Authentication - OpenID Connect by Michael Ward
Kubernetes authentication via GitHub OAuth and Dex by Amet Umerov

Networking
Enable IPv6 on Kubernetes with Project Calico by Valentin Ouvrard
Kubernetes in IPV6-only by Valentin Ouvrard
Kubernetes 101 – Networking by Jon Langemak
Kubernetes with OpenStack Cloud Provider: Current state and upcoming changes (part
1 of 2)
Comparison of Networking Solutions for Kubernetes
IPVS-Based In-Cluster Load Balancing Deep Dive

CI/CD
GitOps: High-Velocity CI/CD for Kubernetes
Achieving CI/CD with Kubernetes by Ramit Surana
Jenkins declarative pipelines with Kubernetes
Adding CI/CD to your Spring Boot app with Jenkins X and Kubernetes by Matt Raible
using Jenkins X
DOCKER & KUBERNETES : JENKINS-X ON EKS
Continuous Integration and Delivery to AWS Kubernetes using Semaphore
CI/CD for Microservices on DigitalOcean Kubernetes using Semaphore
How to Release Faster with Continuous Delivery for Google Kubernetes using
Semaphore
CircleCI
Kubernetes Deployments: The Ultimate Guide by Jérôme Petazzoni

Deep Learning
Automate deep learning training with Kubernetes GPU-cluster

Certifications
How to pass the Certified Kubernetes Administrator (CKA) exam on the first attempt

Devops Tools
Kubernetes with SaltStack revisited by Jon Langemak
Try Kubernetes with Vagrant by Christoph Hartmann

11
Introduction

Cluster Consul using Kubernetes API


Dynamic Kubernetes installation/configuration with SaltStack by Jon Langemak
Deploying Kubernetes with SaltStack by Jon Langemak

Others
Packaging Multiple Resources together
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
Quay: Introducing an Application Registry for Kubernetes by Antoine Legrand
Play With Kubernetes Quickly Using Docker
1 command to Kubernetes with Docker compose by Sebastien Goasguen
What even is a kubelet? by Kamal Marhubi
Kubernetes from the ground up: the API server by Kamal Marhubi
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
Kubernetes clusters with Oh-My-Vagrant by James
Fleet Unit Files for Kubernetes on CoreOS by Michael Hamrah
Kubernetes Container Orchestration through Java APIs by Keith Tenzer
Docker Clustering Tools Compared: Kubernetes vs Docker Swarm
Kubernetes Production Patterns (and Anti-Patterns)
Introducing Kubic Project
Three post learn k8s
Kubernetes tips & tricks
Running Flask on Kubernetes
Deploying Node Apps the "Right" Way by Dan Pastusek
Simplify your research experiments with Kubernetes by Parmentier Laurent
Self-registering compact k3OS clusters to Rancher Server via cloud-init by James D.
Bohrman
Benchmarking 5 Popular Load Balancers: Nginx, HAProxy, Envoy, Traefik, and ALB

Managed Kubernetes
Platform9
OpenShift Online

12
Introduction

Eldarion Cloud
NetApp Kubernetes Service (formerly StackPoint Cloud)
Hasura
ELASTX
Nirmata

Cluster Managers
Cisco Container Platform

Gardener - Alibaba, AWS, Azure, GCP, and OpenStack cluster manager


Gravity - Formerly Telekube
Kqueen
Kubermatic
KubeSphere - Full-stack and easy-to-use container platform, with awesome user
experience and wizard UI, supports installing on Linux and Kubernetes.
Kublr - AWS, Azure, GCP, vSphere, vCloud Director, and On-Prem cluster manager
PKS - Cluster manager by Pivotal, VMWare and Google
Rancher

Developer Platform
DevSpace - Build, test and run code directly inside any Kubernetes cluster

Draft - A tool for developers to create cloud native applications with Kubernetes
Eclipse Che - Cloud development workspaces with SSH and multi-user support
Garden - Orchestrates your development workflows to make developing microservices
faster and easier
Knative - Platform to build, deploy, and manage modern serverless workloads
Okteto - Develop directly in any Kubernetes cluster. No commit, build or push required
Mantl - A modern platform for rapidly deploying globally distributed services
Spring Cloud Kubernetes - Spring Cloud integration with Kubernetes
VAMP - Cloud-Native Release Management & Orchestration
Tilt - Manages local development instances for teams that deploy to Kubernetes

Enterprise Kubernetes Products


Canonical Distribution of Kubernetes - CDK

Docker EE - Docker Enterprise Edition 2.0


IBM Cloud Private
Kublr - Kubernetes for the Enterprise - multi-cloud and on-prem Kubernetes operations

13
Introduction

center
NetApp Kubernetes Service
OpenShift - Container Platform
SUSE Container as a Service
WorldSibu-Forma - Multi-cloud Remote Blockchain Infrastructure Orchestrator with
Kubernetes

Public/Private Cloud
Alibaba Cloud - Alibaba Cloud Container Service for Kubernetes
AWS EKS - Amazon Elastic Container Service
Azure AKS - Azure Kubernetes Service
DigitalOcean - DigitalOcean Kubernetes
GKE - Google Kubernetes Engine
IKS - IBM Cloud Kubernetes Service
OKE - Oracle Kubernetes Engine
OVH Managed Kubernetes - OVH Managed Kubernetes
Rackspace - Rackspace
VMware Cloud PKS

PaaS
Kubernetes Platform as a Service providers

Alauda Container Platform

Eldarion Cloud
Hasura
Kel
KubeSail - An easy, free way to try Kubernetes
KubeSphere - Full-stack and easy-to-use container platform, with awesome user
experience and wizard UI.
Kyma - A platform for extending apps with serverless functions. It provides a selection of
cloud-native projects glued together to simplify the creation and management of
services.
OpenShift Online/Dedicated/Container Platform
OpenShift Origin (OKD)
Rancher
RIO - Kubernetes based MicroPaaS
teresa - Simple PAAS that runs on top of Kubernetes.
WSO2

14
Introduction

Z.A.R.V.I.S. - Deploy Github projects to managed Kubernetes for free

Interactive Learning Environments


Learn Kubernetes using an interactive environment without requiring downloads or
configuration

Katacoda
Kubernetes Bootcamp
Magic Sandbox
Play with Kubernetes

MOOC Courses / Tutorials


List of available free online courses(MOOC) and tutorials

Courses
Scalable Microservices with Kubernetes at Udacity
Introduction to Kubernetes at edX
Just Enough Kubernetes to be Dangerous

Tutorials
Kubernetes Tutorials by Kubernetes Team

Kubernetes By Example by OpenShift Team


Kubernetes Tutorial by Tutorialspoint
Imperative vs. Declarative — a Kubernetes Tutorial by Adrien Trouillaud
Learning Kubernetes, The Chinese Taoist Way

Case Studies
Study of Various different case studies

Building a Bank with Kubernetes


Bringing Pokemon Go to Google Cloud
Monitoring Kubernetes at Wayblazer
Major League Soccer Monolith to Kubernetes Transition

15
Introduction

Using Kubernetes on AWS


Kubernetes at Github
Kubernetes the hard way (installation from scratch)
Kubernetes Failure Stories

Persistent Volume Providers


List of some Persistent Volume Providers for Kubernetes.Check out Persistent Volume
Providers for more info

AWS
CephRBD
GCE
Glusterfs
Hitachi
HPE
Kube-Aliyun
Linode
Microsoft
NetApp Trident
OpenEBS
OpenStack Cinder
Portworx
Pure Storage
QuoByte
Rancher Longhorn
Rook
StorageOS
Stork

Container Storage Interface Plugins


List of some Container Storage Interface plugins for Kubernetes. Check out Kubernetes-CSI
Drivers for a complete list

Alibaba Cloud
AWS EBS
AWS EFS
AWS FSx for Lustre

16
Introduction

Ceph
Cinder
Cloudscale
DigitalOcean
Ember
Google Compute Engine Persistent Disk
Intel PMEM-CSI
KaDalu - Gluster
Linode Block Storage
Longhorn
NetApp Trident
Nexenta
OpenSDS
OpenStack Cinder
Portworx
Quobyte
S3
Vault
VMware vSphere

Cluster API Providers


List of some Cluster API providers for Kubernetes. Check out Kubernetes-CAPI Providers
for more info

Bootstrap
Kubeadm

Infrastructure
AWS

Azure
Metal3-io
DigitalOcean
GCP
IBM Cloud
OpenStack
VMware vSphere

17
Introduction

Developer Libraries/ Scripts


List of some libraries & scripts for executions and good referrals

Python
Pykube

Jenkins
Jenkinsfile with Helm, Go, Docker, Kubectl, JNLP

Projects
Kubernetes-related projects that you might find helpful

Related Software
Projects built to make life with Kubernetes even better, more powerful, more scalable

Ambassador - API Gateway built on the Envoy Proxy


Argo - The Workflow Engine for Kubernetes
Bitnami Kubernetes Production Runtime
Client Libraries
Escalator - A batch or job optimized horizontal autoscaler for Kubernetes
Fission Workflows - Workflow-based serverless function composition
Forecastle - A dashboard which dynamically discovers and provides a launchpad to
access applications deployed on Kubernetes
Git Webhook Proxy - A proxy to let webhooks reach running services behind a firewall
Hypernetes
Ingress Monitor Controller - Watches ingress endpoints and automatically registers
liveness alerts on the configured uptime checker
k8s-label-rules-webhook - An admission webhook to enforce standards for labels of
resources being created in your k8s cluster
kmachine
KEDA - Kubernetes-based Event Driven Autoscaling
kube-fledged - A K8S add-on for creating and managing a cache of container images
directly on cluster worker nodes

18
Introduction

kube-openvpn
Kubeform
Kubefuse
Kubefwd - Bulk port forwarding Kubernetes services for local development.
Kubernetes Cluster Federation (previously Ubernetes)
Kubernetes Ec2 Autoscaler
Kubic-Project
Reloader - Auto-load updates of ConfigMaps and Secrets into pods for Deployments,
StatefulSets and DaemonSets
Telepresence - Locally develop/debug services against a remote Kubernetes cluster
krane - A command-line tool that helps you ship changes to a Kubernetes namespace
and understand the result
ktunnel - A command-line tool that establishes a reverse tunnel between Kubernetes
and your cluster, use it to locally develop/debug services or integrate with local
resources.
k8s-platform-lcm - A faster and easier way to manage the lifecycle of applications and
tools, running and living around your Kubernetes platform

Package Managers
CNAB - CNABs facilitate the bundling, installing and managing of container-native apps
- and their coupled services.
Helm - For further information, please check out - Awesome Helm.
Cloudsmith - A fully managed package management SaaS, with first-class support for
public and private Kubernetes registries (Docker + Helm Charts, plus many others).

Monitoring Services
To maintain regular surveillance over kubernetes

Console
BotKube - App that helps you monitor your Kubernetes cluster, debug critical
deployments & gives recommendations for the standard practices
Datadog
Dynatrace - Kubernetes cluster and workload monitoring
eventrouter - simple introspective kubernetes service that forwards events to a specified
sink.
Goldpinger display, monitor and alert on inter-cluster connectivity
Grafana Kubernetes App

19
Introduction

Heapster
kail - Kubernetes Log Viewer. Streams logs from all containers of all matching pods.
Kubebox - Terminal console for Kubernetes
Kubecost - monitor resources following their financial cost
Kubedash - Deprecated repository is archived and read-only
Kubernetes Operational View - read-only system dashboard for multiple K8s clusters
K8Dash - Realtime K8S alternative dashboard
Kubernetes Web View - list and view all Kubernetes resources (incl. CRDs) with
permalink-friendly URLs in a plain-HTML frontend
Kubespy - Tools for observing Kubernetes resources in real time, powered by Pulumi.
Kubetail
Kubewatch
Netdata - Open-source Kubernetes monitoring. Deploy via a Netdata Helm chart.
Netsil
New Relic - Kubernetes monitoring and visualization service.
NexClipper - An open source software for monitoring Kubernetes and containers.
Outcold Solutions - monitoring Kubernetes, OpenShift and Docker in Splunk Enterprise
and Splunk Cloud (metrics and log forwarding)
Prometheus
Searchlight
StatusBay - Kubernetes deployment visibility (inc. Slack notifications, metrics and
checks enrichment, resources consolidation, etc)
Sysdig Monitoring
Sysdig Open Source
The Elastic Stack - An open-source solution for monitoring and visualising K8s metrics,
logs, application traces and more.
Weave Scope
kube-state-metrics - Simple service that listens to the Kubernetes API server and
generates metrics about the state of the objects.
loki - Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation
system inspired by Prometheus.
Loghouse - Efficiently store big amounts of your logs (in ClickHouse database), process
them using a simple query language and monitor them online through web UI.

Testing
Test your applications running on Kubernetes

chaoskube - periodically kills random pods in your Kubernetes cluster


k8s-testsuite - Helm chart for network and loadtesting of a Kubernetes cluster

20
Introduction

kboom - The Kubernetes scale & soak load tester


kind - A single node cluster to run your CI tests against thats ready in 30 seconds
k3d - Quickly create single- or multi-node k3s clusters in containerized nodes
kube-monkey - Chaos Monkey for Kubernetes clusters
Kubeadm-dind-cluster - multi-node test cluster based on kubeadm
Litmus - Chaos engineering for stateful workloads on Kubernetes
PowerfulSeal - kills targeted pods and machines to test your software reliability
Sonobuoy - Diagnostic tool that runs Kubernetes conformance tests
Test-Infra
KubeInvaders - Gamified Chaos engineering tool for Kubernetes Clusters. It is like
Space Invaders but alien ships are pods.
predator - Distributed performance testing platform for Kubernetes
Octopus - Octopus is a testing framework that allows you to run integration tests defined
as Docker images on a Kubernetes cluster.
chaos-mesh - A Chaos Engineering Platform for Kubernetes

Continuous Delivery
Build-test-deploy automated workflow software designed to make production environments
more stable and life better for engineers

Jenkins
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
Lab: Build a Continuous Deployment Pipeline with Jenkins and Kubernetes
Jenkins Operator - Kubernetes native Jenkins operator
Jenkins X - automated CI/CD for Kubernetes with GitOps Promotion and Preview
Environments on Pull Requests using best of breed OSS tools like: Jenkins, Helm,
Skaffold, Kaniko, Knative Build, Knative Pipeline and Prow
Apollo - Open Source application providing teams with self service UI for creating and
deploying their services to Kubernetes.
Argo CD - Declarative continuous deployment for Kubernetes.
autoapply - Automatically apply changes from a Git repository to a Kubernetes cluster
Buildkite - Lean CI/CD cloud hosted control plane with agents on your infrastructure.
Codefresh - Kubernetes CI/CD platform (with private Docker and Helm Chart
repositories)
GitLab
k8s-deploy-helper - Framework to easily deploy Kubernetes applications via GitLab.

21
Introduction

kb8or
Keel
Kit
Kontinuous
KubeCI
Razee
Shippable
Shipper - Kubernetes native multi-cluster canary or blue-green rollouts using Helm.
Spinnaker
Vili
Weave Flux – GitOps reconcoliation operator
Wercker
Werf - GitOps tool with advanced features to build images and deploy them to
Kubernetes. Integrates with any existing CI system.

Serverless Implementations
FaaS-netes
Fission
Funktion
Iron.io
Kubeless
Nuclio
OpenFaaS
OpenWhisk
Virtual Kubelet - Allows nodes to be backed by other services and providers.

Operators
Cert manager
Cert Operator
cert-manager
Container Linux Update Operator
Couchbase
DB Operator
Elasticsearch
etcd
Istio
K8s Operator Workshop

22
Introduction

Kafka
Kong API
kooper - Simple Go library to create Kubernetes operators and controllers
Kubernetes Operators
KubeVirt
Kured - Kured (Kubernetes Reboot Daemon) is a Kubernetes daemonset that performs
safe automatic node reboots
Memcached
MongoDB
MySQL
Operator Kit
Operator SDK
OperatorHub.io - A new home for the Kubernetes community to share Operators
PostgreSQL
PostgreSQL - manage PostgreSQL clusters using StatefulSets and Patroni.
Prometheus
Addon-operator - adds hooks and values to helm charts in order to enhance the
capabilities of helm and transform charts into smart modules that configure themselves
and respond to changes in the cluster.
Shell-operator - a tool for running event-driven scripts in a Kubernetes cluster.

Custom Schedulers
bashScheduler - Written in bash
escheduler - Written in elixir
firmament
ksched - Experimental flow based scheduler
Scheduler - Cost based scheduler
Sticky Node Scheduler

Container Support
A list of linux containers supported by kubernetes.

Docker
Rkt
Rktnetes
rktlet - Rkt implementation of a Kubernetes
containerd

23
Introduction

cri-containerd - Containerd-based implementation of Kubernetes Container Runtime


Interface
CRI-O
Hyper.sh/frakti - Hypervisor-based container runtime
virtlet - Kubernetes CRI implementation for running VM workloads
infranetes
Kata Containers

Database
Apache Ignite - Memory-centric distributed database, caching, processing platform
Cassandra / DataStax
CockroachDB
CrateDB
Hazelcast
Minio
MongoDB
RDS - Provision RDS databases via CRD from Kubernetes
Vitess - Horizontal scaling of MySql by Youtube
YugabyteDB - Horizontally scalable, Postgres-compatible SQL database.

Networking
AWS VPC CNI - Networking plugin using Elastic Network Interfaces
Calico
Canal by Tigera
Cilium
Cisco ACI - CNI plugin from Cisco support ACI fabrics
CNI-Genie
cni-ipvlan-vpc-k8s
Contiv
External DNS - To control DNS records dynamically via Kube resources
Goldpinger display, monitor and alert on inter-cluster connectivity
illuminatio is a tool for automatically testing kubernetes network policies
Infoblox
Kube-router
KubeIP Set static ip for nodes on GKE (useful for whitelisting ips)
kubernetes-network-policy-recipes
Kuryr

24
Introduction

Linen
Multus-cni - Multi-homed pod cni
Network-Controller - Open vSwitch, Multiple network interfaces that associate with
Kubernetes pods
NSX-T - CNI plugin supporting load balancing and distributed firewalls.
Nuage
OpenContrail
OpenVSwitch
Romana
Weave Net
Submariner: Cross-Cluster Network Connectivity for Kubernetes - Submariner enables
direct networking between pods in different Kubernetes clusters on prem or in the cloud.

Service mesh
Consul
Envoy
Istio
Linkerd
Weave Mesh
Maesh: Simpler Service Mesh - Maesh is a straight-forward, easy to configure, and non-
invasive service mesh that allows visibility and management of the traffic flows inside
any Kubernetes cluster.
Kuma: The Universal Service Mesh - Build, Secure and Observe your modern Service
Mesh.

RPC
gRPC

Secret generation and management


CyberArk Conjur Kubernetes Authenticator - Secure your Kubernetes-deployed
applications with CyberArk Conjur
k8sec
Kamus - A GitOps, zero-trust solution for secrets encryption/decryption solution.
kube-lego
kubernetes-vault

25
Introduction

kubesec - Secure Secret management


Sealed Secrets
Secure GitOps Using Weave Cloud Deploy And Bitnami's Sealed Secrets
Vault auth plugin backend: Kubernetes
Vault controller

Web applications
Kubernator
Kubernetes Resource Report - report Kubernetes cluster and pod resource requests vs
usage and generate static HTML
Kubeapps - A web-based UI for deploying and managing applications in Kubernetes
clusters
Kubevious - An open source UI to make Kubernetes configuration and state obvious
and safe.
Polaris - An open source dashboard for Kubernetes best practices
Octant - A web-based, highly extensible platform for developers to better understand the
complexity of Kubernetes clusters.

Desktop applications
Kubernetic
Kube Forwarder – An open source Kubernetes port forwarding manager
Kontena Lens - The Ultimate Dashboard For Kubernetes.

Mobile applications
Cabin
Cockpit

API/CLI adaptors
awesome-kubectl-plugins - Curated list of kubectl plugins.
click - A CLI focused REPL for quickly interacting with Kubernetes objects.
Ksql
kube-prompt - Interactive kubernetes client built using go-prompt.
kube-ps1 - Kubernetes prompt helper for bash and zsh.

26
Introduction

Kube-shell - Integrated shell for working with the Kubernetes CLI


kube-tmux - Kubernetes tmux plugin to display the current context and namespace
Kubectl Aliases - Aliases for Kubectl
kubectl-plugins - A collection of kubectl plugins handling everything from easy context
switches to connecting to a container as any user (root included) via exec. Slightly
tailored towards GKE users.
kubectl-trace - Schedule bpftrace programs on your kubernetes cluster using this
kubectl plugin
kubectld
kubectx - switch between clusters on kubectl
Kubefuse
kubens - switch between namespaces on kubectl
kubensx - Simpler Cluster/User/Namespace switching for Kubernetes (featuring
interactive mode and wildcard/fuzzy matching).
kubeplay
Kubesh - Work around kubectl
Kui - Hybrid CLI/GUI alternative to kubectl
StackStorm
stern - Multi pod and container log tailing
Vikube - Kubernetes operations from Vim, in Vim
K9s - Kubernetes CLI To Manage Your Clusters In Style!
tubectl - Kubernetes CLI on steroids with pattern matching
webkubectl - A web based tool helps you to manage kubernetes credentials and run
kubectl command in web browser.

Application deployment orchestration


AppController
Brigade - Event Based Scripting using JavaScript
Deployment manager
ElasticKube
Gitkube - Build and deploy docker images on Kubernetes using git push .
IBM UrbanCode
Kb8or
Nulecule
Psykube
Skaffold - Command line tool that facilitates continuous development for Kubernetes
applications.
kubedog - Kubedog is a library and cli utility that allows watching and following

27
Introduction

kubernetes resources in CI/CD deploy pipelines.


kapp - simple deployment tool focused on the concept of "Kubernetes application" — a
set of resources with the same label

Configuration
Ansible
Chef
Habitat
Jsonnet
K8comp
kapitan - Manage complex deployments using jsonnet and jinja2
kenv
Kompose
Konfd
Ktmpl
kubecfg - Combines jsonnet and kubectl to let you declare systems in an easy to
override way
kubediff
kubegen
kustomize - Customization using partial specs
Pulumi - Provides a SDK for k8s deployments targeting on-premises clusters and major
cloud vendors' managed services.
Puppet
Saltstack
Cue - A data constraint language which aims to simplify tasks involving defining and
using data. Cue is a superset of JSON
ytt - YAML templating tool that works on YAML structure allowing you to focus on your
data instead of how to properly escape it.
kosko - Write Kubernetes manifests in JavaScript and validate against Kubernetes
OpenAPI definitions.

Security
Aquasec
Authenticator - A tool for using AWS IAM credentials to authenticate to a Kubernetes
cluster
Calico Network Policy (from Tigera) - Widely adopted open source implementation
unifying Kubernetes Network Policy and Istio Application Policy.

28
Introduction

Dex - OpenID and OAuth for Kubernetes


Guard - Authenticaton webhook server with support for Github, Gitlab, Google, Azure
and LDAP (AD) as identity providers.
kiam - Allows cluster users to associate AWS IAM roles to Pods.
kube-bench - The Kubernetes Bench for Security is a Go application that checks
whether Kubernetes is deployed according to security best practices.
kube-hunter - Hunt for security weaknesses in Kubernetes clusters.
kube-psp-advisor - Help building an adaptive and fine-grained pod security policy.
kube2iam - Provides different AWS IAM roles for pods running on Kubernetes
kubeaudit - Helps you audit your Kubernetes clusters against common security controls
Kubesec.io
Pomerium - a zero-trust identity-aware access proxy inspired by BeyondCorp.
Rakkess - Kubectl plugin to show an access matrix for all available resources.
Sysdig Falco
Sysdig Secure
Tigera Secure Cloud Edition
Tigera Secure Enterprise Edition
Trireme
Twistlock

Load balancing
Avi Networks - Software Load Balancer | Intelligent WAF | Elastic Service Mesh
AWS ALB Ingress Controller
Cloudflare Warp Ingress
Contour - Kubernetes ingress controller for Lyft's Envoy proxy
F5 Big IP Controller
Gimbal - Platform capable of routing traffic to multiple Kubernetes and OpenStack
clusters
Gloo - Envoy-based API gateway and ingress controller
HAProxy Ingress
Linode NodeBalancer Ingress
MetalLB - load-balancer implementation for bare metal Kubernetes clusters, using
standard routing protocols.
Porter - a load balancer which is designed for a bare metal Kubernetes cluster. It's
implemented by physical switch, and uses BGP and ECMP to achieve optimal
performance and HA.
NGINX Ingress Controller
Nginx Plus

29
Introduction

Skipper - HTTP router and reverse proxy for service composition, including use cases
like Kubernetes Ingress
Traefik
Voyager - Secure HAProxy based Ingress Controller
Yggdrasil - Envoy Control Plane for Kubernetes Multi-cluster Ingress

Big Data
Kube-Yarn
Spark

Machine Learning
FfDL - Deep Learning Platform offering TensorFlow, Caffe, PyTorch etc. as a Service on
Kubernetes
kubeflow - Machine Learning Toolkit for Kubernetes.
mxnet-operator - Tools for ML/MXNet on Kubernetes.
Polyaxon - An open source platform for reproducible machine learning and deep
learning on kubernetes
seldon-core - Open source framework for deploying machine learning models on
Kubernetes
TensorFlow k8s

Service Discovery
Consul
Kelsey Hightower Consul
Bridge between Kubernetes and Consul

Operating System
CoreOS
GCI
k3OS
LinuxKit
Talos
RancherOS - A lightweight, secure Linux distribution, built from containers to run

30
Introduction

containers well.

YAML/JSON Config
kompose
ksonnet-lib
kube-libsonnet - Generic library of Kubernetes objects for Jsonnet/Kubecfg with object
to array mapping for painless overrides.
kubegen
kubeval

Static Analysis
kube-score - Kubernetes object analysis with recommendations for improved reliability
and security
popeye - Kubernetes cluster resource sanitzer

Tuning
Ktune

Backup and Disaster Recovery


Velero - Utility for managing backup and restore of Kubernetes clusters. Formerly
Heptio Ark.
K8up - Kubernetes and OpenShift Backup Operator based on restic
burry.sh - Cloud Native backup and recovery for etcd, zookeeper and consul
kube-backup - Sync kubernetes state to git.

Policy Management
Kyverno - Kubernetes Native Policy Management

Plugins
Krew - Plugin Manager

31
Introduction

Kboom
View-utilization

Debug
Kubectl-Debug

Benchmark Tools
Kubestone

Raspberry Pi
Some of the awesome findings and experiments on using Kubernetes with Raspberry Pi.

Check out Kubecloud


Setting up a Kubernetes on ARM cluster
Setup Kubernetes on a Raspberry Pi Cluster easily the official way! by Mathias Renner
and Lucas Käldström
How to Build a Kubernetes Cluster with ARM Raspberry Pi then run .NET Core on
OpenFaas by Scott Hanselman
Building a microcloud with a few Raspberry Pis and Kubernetes by Preetam D'Souza

Books
A written or printed work consisting of pages glued or sewn together along one side and
bound in covers that provide us with information

Cloud Native DevOps with Kubernetes by John Arundel, Justin Domingus (blog)
DevOps with Kubernetes by Hideto Saito, Hui-Chuan Chloe Lee, Cheng-Yang Wu
Docker and Kubernetes Under the Hood (Chinese) by Harry Zhang, Jianbo Sun and
ZJU SEL lab
Docker in Action, Second Edition by Jeff Nickoloff and Stephen Kuenzli
Docker in Practice, Second Edition by Ian Miell & Aidan Hobson Sayers
Getting Started with Kubernetes by Jonathan Baier
Golden Guide to Kubernetes Application Development by Matthew Palmer
Kubernetes Book (OpenSource Book) by Leverege Developers
Kubernetes Cookbook - Second Edition by Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou

32
Introduction

Carol Hsu
Kubernetes Design Patterns and Extensions by Onur Yilmaz
Kubernetes Handbook (OpenSource Book in Chinese) by Pengfei Ni
Kubernetes Handbook (OpenSource Book in Chinese) by Jimmy Song
Kubernetes in Action by Marko Lukša
Kubernetes: Scheduling the Future at Cloud Scale by Dave K. Rensin
Kubernetes: Up and Running by Kelsey Hightower
Mastering Kubernetes by Gigi Sayfan
OpenShift in Action by Jamie Duncan & John Osborne
Playing with Java Microservices on Kubernetes and OpenShift by Nebrass Lamouchi
The DevOps 2.3 Toolkit: Kubernetes by Viktor Farcic
Learn Azure in a Month of Lunches, Second Edition by Iain Foulds
Learn Docker in a Month of Lunches by Elton Stoneman

Certifications
A list of some credible certifications to certify yourself as Kubernetes expert

Certified Kubernetes Administrator (CKA)


Certified Kubernetes Application Developer (CKAD)

Slide Presentations
A slide is a single page of a presentation created with software such as PowerPoint or
OpenOffice Impress.

A brief study on Kubernetes and its components by Ramit Surana


Achieving CI/CD with Kubernetes by Ramit Surana
An Introduction to Kubernetes by Imesh Gunaratne
Architecture Overview by enakai00
Cluster management with Kubernetes by Satnam Singh
Kubernetes and CoreOS @ Athens Docker meetup by Mist.io
Kubernetes Scaling SIG (K8Scale) by Bob Wise
Moving to Kubernetes - Tales from SoundCloud by Tobias Schmidt
Musings on Mesos: Docker, Kubernetes, and Beyond. by Timothy St. Clair
Package your Java EE Application using Docker and Kubernetes by Arun Gupta
Scaling Jenkins with Docker and Kubernetes by Carlos Sanchez
The Top 5 Metrics to Monitor in Kubernetes
Zero downtime-java-deployments-with-docker-and-kubernetes by Arjan Schaaf

33
Introduction

Videos
A recording of moving visual images made digitally or on videotape.

Main Account
Google Developers
Kubernetes

Other Useful Videos


A Technical Overview of Kubernetes by Bredan Burns
Alpaca Kubernetes on AWS by Adrien Lemaire
Arun Gupta: Package your Java applications using Docker and Kubernetes by Arun
Gupta
Container Orchestration using CoreOS and Kubernetes by Kelsey Hightower
DevNation 2015 - Paul Bakker - Kubernetes: Beyond the basics by Paul Bakker
Docker Containers and Kubernetes with Brian Dorsey by Brian Dorsey
Google I/O 2014 - Containerizing the Cloud with Docker on Google Cloud Platform by
Google Developers
Kubernetes-Defined Monitoring
Kubernetes: The Journey So Far - Greg DeMichillie by Greg DeMichillie
Managing Containers at Scale with CoreOS and Kubernetes by Kelsey Hightower
Shanghai '18: KubeCon + CloudNativeCon
Testing Distributed Software on Kubernetes with PowerfulSeal at Kubecon 2017 Austin
by Mikolaj Pawlikowski

CI/CD Videos
Automating CI/CD on Kubernetes with Jenkins X by James Strachan using Jenkins X
with these slides

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.

34
Introduction

Apcera
CoreOS
DevOps Summit
Engine Yard
Google Cloud Platform
Kismatic
Kube Con
KubeFacts
Kubernetes
KubeWeekly
Learnk8s
Skippbox - Acquired by Bitnami
Sysdig

Amazing People
Ahmet Alp Balkan, Software Engineer at Google & Google Kubernetes Engine
Aparna Sinha, Group Product Manager - Kubernetes at Google
Arun Gupta, Principal Open Source Technologist at Amazon Web Services
Brandon Philips, CTO at CoreOS
Brendan Burns, Partner Architect at Microsoft
Brian Grant, Principal Engineer at Google, Lead Architect of Kubernetes
Carlos Sanchez, Senior Software Engineer, CloudBees
Chris Aniszczyk, Chief Operating Officer at Cloud Native Computing Foundation
Eric Tune, Senior Staff Engineer at Google
Ihor Dvoretskyi, Developer Advocate at Cloud Native Computing Foundation
Jessie Frazzelle, Cloud Developer Advocate at Microsoft
Joe Beda, Principal Engineer at VMware. Former Founder and CTO at Heptio
Joseph Jacks, Entrepreneur In Residence at Quantum Corporation
Kelsey Hightower, Staff Developer Advocate at Google
Kris Nova, Creator of Kubicorn
Michelle Noorali, Software Engineer at Microsoft
Paris Pittman, Developer Relations Manager - Kubernetes at Google
Patrick Reilly, Office of the CTO at Cisco, Cisco board of member for CNCF
Tim Hockin, Senior Staff SW Engineer / Engineering Manager at Google

Meetup Groups

35
Introduction

An awesome way to connect with kubernauts around the globe

Amsterdam
Amsterdam #2
Atlanta
Bangalore
Berlin
Boston
Hamburg
Hong Kong
London
Munich
New York
Nuremberg
Paris
Pittsburgh
Pune
San Diego
San Francisco
Seattle
Tunisia
Worldwide

Connecting with Kubernetes


Blog
Community Q&A – The Office Hours
Community
Freenode
Mailing List (developer/contributor discussion)
Mailing List (user discussion and Q&A)
Reddit
Slack
Stackoverflow
Twitter

Conferences

36
Introduction

Some must to go and attend conferences on kubernetes

Container Camp
ContainerDays
Devoxx
Docker Con
GCP Next
Kubecon

Contributing
Contributions are most welcome!

This list is just getting started, please contribute to make it super awesome.

Check out the Contributing Guidelines.

License

awesome-kubernetes by Ramit Surana is licensed under a Creative Commons Attribution-


NonCommercial 4.0 International License.

37

You might also like