Google Cloud Kubernetes | What is Kubernetes
Kubernetes is an open-source orchestrator that abstracts containers at a higher level so you can better manage and scale your applications. At the highest level, Kubernetes is a set of APIs that you can use to deploy containers on a set of nodes called a cluster.
It facilitated by Cloud Native Computing Foundation (CNCF). This is otherwise called the improved rendition of Borg which was created at Google to oversee both long-running procedures and clump occupations, which was prior dealt with by independent frameworks. Kubernetes accompanies a capacity of computerizing sending, scaling of utilization, and tasks of use compartments across groups. It is fit for making holder driven foundation.
Kubernetes was established by Joe Beda, Brendan Burns, and Craig McLuckie was first reported by Google in mid-2014. The first codename for Kubernetes inside Google was Project 7, a reference the Star Trek ex-Borg character Seven of Nine i.e. The seven spokes on the wheel of the Kubernetes logo are a reference to that codename. Firstly, It composed completely in C++ however, later implemented in Go. Kubernetes v1.0 was discharged on July 21, 2015.
Also, Google joined forces with the Linux Foundation to frame the Cloud Native Computing Foundation (CNCF) and offered Kubernetes as a seed innovation.
The following are some of the important features of Kubernetes:
- Continues development, integration, and deployment
- Containerized infrastructure
- Application-centric management
- Auto-scalable infrastructure
- Environment consistency across development testing and production
- Loosely coupled infrastructure, where each component can act as a separate unit
- The higher density of resource utilization
- Predictable infrastructure which is going to be created
Some of the important objects used in Kubernetes:
- Pods: A Pod is the smallest unit in Kubernetes that you create or deploy. A Pod represents a running process on your cluster as either a component of your application or an entire app. Generally, you only have one container per pod, but if you have multiple containers with a hard dependency, you can package them into a single pod and share networking and storage. The Pod provides a unique network IP and set of ports for your containers, and options that govern how containers should run.
- Node: A node is a working machine in the Kubernetes group which is otherwise called a flunky. They are working units which can be physical, VM, or a cloud occasion. Every node has all the necessary design required to run a unit on it.
- ReplicaSets: A ReplicaSet's motivation is to keep up a steady arrangement of reproduction Pods running at some random time. The ReplicaSets can likewise be supposed to be a gathering instrument that lets Kubernetes keep up the number of occurrences that have been announced for a given case.
- Services: A Service is an abstraction that defines a logical set of Pods and a policy by which to access them. As Deployments create and destroy Pods, Pods get their IP address. But those addresses don't remain stable over time. A Service group a set of Pods and provides a stable endpoint (or fixed IP) for them.
- Deployment: A Deployment represents a group of replicas of the same Pod and keeps your Pods running even when nodes they run on fail. It could represent a component of an application or an entire app. In this case, it's the Nginx web server.
- Namespaces: Kubernetes gives an apportioning of the assets it oversees into non-covering sets called namespaces.
- Volumes: In Kubernetes, a volume can be thought of as an index which is open to the holders in a case. We have various sorts of volumes in Kubernetes and the sort characterizes how the volume is made and its substance. The idea of the volume was available with the Docker, anyway, the main issue was that the volume was a lot of restricted to a specific case. When the life of a unit finished, the volume was additionally lost.
- Secrets: Secrets can be characterized as Kubernetes objects used to store touchy information, for example, client names and passwords with encryption.