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:
The goal is to promote an ecosystem of components and tools to reduce the burden of applications running in public or private clouds.
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 use containers? We can compare through the following two figures:
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.
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:
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.
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.
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.
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.
JeffLv - December 2, 2019
Alibaba Developer - January 14, 2020
Alibaba Clouder - June 9, 2020
Alibaba Clouder - November 7, 2019
Alibaba Developer - May 8, 2019
Alibaba Developer - June 30, 2020
Alibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.Learn More
Accelerate and secure the development, deployment, and management of containerized applications cost-effectively.Learn More
A secure image hosting platform providing containerized image lifecycle managementLearn More
Accelerate software development and delivery by integrating DevOps with the cloudLearn More
More Posts by Alibaba Clouder