Kubernetes logo
Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops
7.3K
5.8K
+ 1
544

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.
Kubernetes is a tool in the Container Tools category of a tech stack.
Kubernetes is an open source tool with 58K GitHub stars and 20.3K GitHub forks. Here’s a link to Kubernetes's open source repository on GitHub

Who uses Kubernetes?

Companies
1445 companies reportedly use Kubernetes in their tech stacks, including Google, Slack, and Shopify.

Developers
5594 developers on StackShare have stated that they use Kubernetes.

Kubernetes Integrations

Docker, Microsoft Azure, Ansible, Vagrant, and Google Compute Engine are some of the popular tools that integrate with Kubernetes. Here's a list of all 125 tools that integrate with Kubernetes.

Why developers like Kubernetes?

Here’s a list of reasons why companies and developers use Kubernetes
Kubernetes Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose Kubernetes in their tech stack.

Yshay Yaacobi
Yshay Yaacobi
Software Engineer · | 27 upvotes · 159.7K views
atSolutoSoluto
Docker Swarm
Docker Swarm
Kubernetes
Kubernetes
Visual Studio Code
Visual Studio Code
Go
Go
TypeScript
TypeScript
JavaScript
JavaScript
C#
C#
F#
F#
.NET
.NET

Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

See more
GitHub
GitHub
nginx
nginx
ESLint
ESLint
AVA
AVA
Semantic UI React
Semantic UI React
Redux
Redux
React
React
PostgreSQL
PostgreSQL
ExpressJS
ExpressJS
Node.js
Node.js
FeathersJS
FeathersJS
Heroku
Heroku
Amazon EC2
Amazon EC2
Kubernetes
Kubernetes
Jenkins
Jenkins
Docker Compose
Docker Compose
Docker
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Tim Specht
Tim Specht
‎Co-Founder and CTO at Dubsmash · | 14 upvotes · 38.7K views
atDubsmashDubsmash
Kubernetes
Kubernetes
Amazon EC2
Amazon EC2
Heroku
Heroku
Python
Python
#ContainerTools
#PlatformAsAService

Since we deployed our very first lines of Python code more than 2 years ago we are happy users of Heroku. It lets us focus on building features rather than maintaining infrastructure, has super-easy scaling capabilities, and the support team is always happy to help (in the rare case you need them).

We played with the thought of moving our computational needs over to barebone Amazon EC2 instances or a container-management solution like Kubernetes a couple of times, but the added costs of maintaining this architecture and the ease-of-use of Heroku have kept us from moving forward so far.

Running independent services for different needs of our features gives us the flexibility to choose whatever data storage is best for the given task.

#PlatformAsAService #ContainerTools

See more
Jake Stein
Jake Stein
CEO at Stitch · | 13 upvotes · 70K views
atStitchStitch
Go
Go
Clojure
Clojure
JavaScript
JavaScript
Python
Python
Kubernetes
Kubernetes
AWS OpsWorks
AWS OpsWorks
Amazon EC2
Amazon EC2
Amazon Redshift
Amazon Redshift
Amazon S3
Amazon S3
Amazon RDS
Amazon RDS

Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

See more
Kir Shatrov
Kir Shatrov
Production Engineer at Shopify · | 13 upvotes · 67.4K views
atShopifyShopify
Memcached
Memcached
Redis
Redis
MySQL
MySQL
Google Kubernetes Engine
Google Kubernetes Engine
Kubernetes
Kubernetes
Docker
Docker

At Shopify, over the years, we moved from shards to the concept of "pods". A pod is a fully isolated instance of Shopify with its own datastores like MySQL, Redis, Memcached. A pod can be spawned in any region. This approach has helped us eliminate global outages. As of today, we have more than a hundred pods, and since moving to this architecture we haven't had any major outages that affected all of Shopify. An outage today only affects a single pod or region.

As we grew into hundreds of shards and pods, it became clear that we needed a solution to orchestrate those deployments. Today, we use Docker, Kubernetes, and Google Kubernetes Engine to make it easy to bootstrap resources for new Shopify Pods.

See more
Emanuel Evans
Emanuel Evans
Senior Architect at Rainforest QA · | 12 upvotes · 80.8K views
atRainforest QARainforest QA
Terraform
Terraform
Helm
Helm
Google Cloud Build
Google Cloud Build
CircleCI
CircleCI
Redis
Redis
Google Cloud Memorystore
Google Cloud Memorystore
PostgreSQL
PostgreSQL
Google Cloud SQL for PostgreSQL
Google Cloud SQL for PostgreSQL
Google Kubernetes Engine
Google Kubernetes Engine
Kubernetes
Kubernetes
Heroku
Heroku

We recently moved our main applications from Heroku to Kubernetes . The 3 main driving factors behind the switch were scalability (database size limits), security (the inability to set up PostgreSQL instances in private networks), and costs (GCP is cheaper for raw computing resources).

We prefer using managed services, so we are using Google Kubernetes Engine with Google Cloud SQL for PostgreSQL for our PostgreSQL databases and Google Cloud Memorystore for Redis . For our CI/CD pipeline, we are using CircleCI and Google Cloud Build to deploy applications managed with Helm . The new infrastructure is managed with Terraform .

Read the blog post to go more in depth.

See more

Kubernetes's Features

  • Lightweight, simple and accessible
  • Built for a multi-cloud world, public, private or hybrid
  • Highly modular, designed so that all of its components are easily swappable

Kubernetes Alternatives & Comparisons

What are some alternatives to Kubernetes?
Docker Swarm
Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.
Nomad
Nomad is a cluster manager, designed for both long lived services and short lived batch processing workloads. Developers use a declarative job specification to submit work, and Nomad ensures constraints are satisfied and resource utilization is optimized by efficient task packing. Nomad supports all major operating systems and virtualized, containerized, or standalone applications.
OpenStack
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
Rancher
Rancher is an open source container management platform that includes full distributions of Kubernetes, Apache Mesos and Docker Swarm, and makes it simple to operate container clusters on any cloud or infrastructure platform.
Docker Compose
With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.
See all alternatives

Kubernetes's Followers
5795 developers follow Kubernetes to keep up with related blogs and decisions.
Sai Kiran
Xiaohan Wang
harshad09
Dmytro Kabachenko
Mujahed Altahleh
Husni Adil Makmur
fede r1c0
Fiona Anderson
Joko Slameto
Richard Musiol