Kubernetes is a cloud tool for deploying and managing multiple docker containers at once which was developed by Google. Docker containers are like a virtual machine, but they don’t need to have the full OS code for each one of them, so they’re lighter weight and easier to deploy. A docker container instance (an image) can have its own file system, code, environmental variables, etc so that it can run anything that a linux machine can. It’s useful for people who are trying to run large, scalable systems. For example, if someone was trying to develop a website with an IDE inside of it, they could run code in a docker image and then access the results from there so that they aren’t trying to run the code on their own machine. Kubernetes would manage the docker images and automates that process to make it easy. Someone can programmatically work with Docker images by using Kubernetes. It’s a very important tool for DevOps and Cloud engineering.
Google, the developer of Kubernetes, uses it to orchestrate code running on Google Cloud Platform. I run a data dashboard that I’m working on using App Engine, which uses a docker image container to deploy serverless code. This means that I don’t have to pay a lot of money to use it as docker images require less space and resources than a traditional virtual machine.
The anatomy of a Kubernetes deployment is fairly simple. There is the Kubernetes master, which is what manages all of the different docker instances (these are called a Kubernetes cluster). There’s the api server, which can be used to connect with the Kubernetes cluster using REST requests. There’s the pod, which schedules the cluster. Then, there are the nodes, which are each separate machine that can run docker containers. Persistent storage is difficult with Kubernetes, but attainable as well.
Log in or sign up for Devpost to join the conversation.