×
Community Blog What is Kubernetes

What is Kubernetes

Kubernetes is a container cluster management system.

Kubernetes Definition

Kubernetes is a container cluster management system. It is an open-source platform that can realize the automatic deployment, automatic expansion and contraction, maintenance, and other functions of container clusters.

With Kubernetes you can:

  • Quickly deploy applications
  • Quickly expand the application
  • Seamlessly connect with new application functions
  • Save resources and optimize the use of hardware resources

The goal is to promote an ecosystem of components and tools to reduce the burden of applications running in public or private clouds.

Kubernetes Features

  • Kubernetes is Portable: support public cloud, private cloud, hybrid cloud, multi-cloud;
  • Kubernetes is Extensible: modular, plug-in, mountable, combinable;
  • Kubernetes Automation: automatic deployment, automatic restart, automatic replication, automatic scaling;

Kubernetes was created and managed by Google in 2014. It is the open-source version of Google's large-scale container management technology for more than 10 years.

Why containers?

Why use containers? We can compare through the following two figures:

compare_containers

The traditional way of application deployment is to install applications through plug-ins or scripts. The disadvantage of this is that the application's operation, configuration, management, and all life cycles will be bound to the current operating system.

This is not conducive to application upgrades/rollbacks and other operations. Of course, some functions can also be implemented by creating virtual machines, but virtual machines are very heavy and not conducive to portability.

The new way is through the deployment of containers. Each container is isolated from others. Each container has its file system, and the processes between the containers will not affect each other, and the computing resources can be distinguished. Compared with virtual machines, containers can be deployed quickly. Since the container is decoupled from the underlying facilities and the machine file system, it can be migrated between different clouds and different versions of operating systems.

The container takes up fewer resources and is fast to deploy. Each application can be packaged into a container image. The one-to-one relationship between each application and the container also gives the container a greater advantage.
Using containers, you can create a container image for your application during the build or release phase.

Because each application does not need to be combined with the rest of the application stack, nor does it depend on the production environment infrastructure. This makes it possible to provide a consistent environment from R&D to testing and production. Similarly, containers are lighter and more "transparent" than virtual machines, which makes them easier to monitor and manage.

Container advantage

  • Quickly create/deploy applications: Compared with VM virtual machines, it is easier to create container images.
  • Continuous development, integration, and deployment: Provide reliable and frequent container image construction/deployment, and use fast and simple rollback (due to image immutability).
  • Separation of development and operation: Create container images in the build or release phase to decouple the application and the infrastructure.
  • Development, testing, and production environment consistency: the consistency of running on the local or external network (production environment).
  • Cloud platform or other operating systems: It can run in Ubuntu, RHEL, CoreOS, on-prem, Google Container Engine, or any other environment.
    Loosely coupled, distributed, elastic, and microservice-oriented: The application is divided into smaller, independent components that can be dynamically deployed and managed.
  • Resource isolation
  • Resource utilization: more efficient

What can be done with Kubernetes?

Containerized applications can be run on physical or virtual machine Kubernetes clusters. Kubernetes can provide a "container-centric infrastructure" to meet some common requirements for running applications in a production environment, such as:

  • Multiple processes (running as containers) work together. (Pod)
  • Storage system mount
  • Distributing secrets
  • App health check
  • Copy of application instance
  • Pod autoscaling/expansion
  • Naming and discovering
  • Load balancing
  • Rolling update
  • Resource monitoring
  • Log access
  • Debug application
  • Provide authentication and authorization

What is Kubernetes not?

Kubernetes is not a traditional PaaS (Platform as a Service) system.

On the other hand, a large number of Paas systems can run on Kubernetes, such as Openshift, Deis, and Gondor. You can build your own Paas platform and integrate it with the CI system of your choice.

Since Kubernetes runs at the application level rather than the hardware level, it provides some common functions provided by the ordinary Paas platform, such as deployment, expansion, load balancing, logging, monitoring, etc. These default functions are optional.

In addition, Kubernetes is more than just an "orchestration system"; it eliminates the need for orchestration. The definition of "arrangement" refers to the execution of a predetermined workflow: first execute A, then B, then C. In contrast, Kubernetes consists of a set of independent composable control processes. How to get from A to C is not important, just achieve the goal. Of course, centralized control is also essential, and the method is more like the process of line dancing. This makes the system easier to use, powerful, flexible, and scalable.

Related Blog

How Kubernetes and Cloud Native's Working out in Alibaba's Systems

By in large, Kubernetes has become the de facto standard for container orchestration engines and nearly everything else that's cloud native. Up to now, Kubernetes has been implemented at Alibaba Group for several years, but the way we used Kubernetes has changed a lot, having gone through four distinct stages.

A Beginner's Guide to Kubernetes

In a nutshell, Kubernetes runs and coordinates applications across machine clusters in a predictable, scalable, and highly available manner. It allows you to determine your applications' behavior and interactions with the outside world.

With Kubernetes interfaces and platform primitives, your applications are defined and managed for flexible, reliable, and powerful utilization.

Related Product

Container Service for Kubernetes

Alibaba Cloud Container Service for Kubernetes (ACK) integrates virtualization, storage, networking, and security capabilities. ACK allows you to deploy applications in high-performance and scalable containers and provides full lifecycle management of enterprise-class containerized applications.

Alibaba Cloud Campaign

Retail Innovation Summit Europe

This half-day online conference will help retail and e-commerce leaders to better address new challenges presented in the digital era under different business scenarios. You can also have a live chat with our experts to benefit from our leading technologies that fuel Alibaba's e-commerce business.

0 0 0
Share on

Alibaba Clouder

2,599 posts | 764 followers

You may also like

Alibaba Clouder

2,599 posts | 764 followers

Related Products