In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-27 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)06/02 Report--
When Docker became a popular trend, Kubernetes developed rapidly and became the most commonly used container orchestration tool. So the question is, why is Kubernetes important? What is Kubernetes? When will you use it? How to use it? This article will be summarized one by one according to the main points!
1. Why is Kubernetes important?
Before the advent of Kubernetes, we all agreed that containers were the best tool for cloud management platform application deployment. Containers provide a new perspective for software development and operation and maintenance. by using containers, software developers can easily package applications into distributed components or migrate an application as a whole. unlike traditional virtual machines, complex plug-ins need to be installed.
When the whole world begins to move towards distributed architecture, when enterprises become more dependent on network and computing, and when single applications begin to migrate to micro-services, our users prefer to expand key functions separately through micro-services. and be able to handle millions of customer business. As a result, tools such as Docker container, Mesos and AWS ECS appear in the enterprise application directory, which provide better consistency, portability and easier operation for users to create and deploy micro services.
However, once enterprise applications become more mature and complex, you need to run multiple containers on multiple machines. Users need to determine how many containers to match, how the containers are stored, the amount of data stored, performance requirements, and so on. It would be a nightmare if all these tasks are counted manually.
In order to solve the choreography requirements of containers, Kubernetes came into being!
2. What is Kubernetes?
When container management became the most important requirement of the Docker era, Google made a bold decision to open up its internal project Borg. In order to further enhance container management capabilities, Google has developed Kubernetes. This is an open source project that automates, deploys and manages container application processes on a large scale.
As a result, in mid-2014, Kubernetes was officially born and grew into an open source community in a very short time, attracting engineers from Google, Red Hat and many other companies.
Kubernetes, K8s for short, is an abbreviation made by using 8 instead of 8 characters "ubernete". To put it simply, kubernetes is an open source container management system for managing containerized applications on multiple hosts in the cloud platform. The goal of Kubernetes is to make it easy and efficient to deploy containerized applications. Kubernetes provides a new mechanism for application deployment, planning, updating and maintenance.
Some functions of kubernetes include managing container clusters, providing tools to deploy applications, expanding applications as needed, managing changes to existing container applications, and optimizing the use of underlying hardware under containers. In addition, kubernetes can also manage cross-machine containers and solve the communication problem between Docker cross-machine containers.
In fact, Kubernetes provides more content than the basic framework, and users can choose different application frameworks, languages, monitoring tools, types of log management, and so on. Although kubernetes cannot be used entirely as a service platform, it is definitely a complete PaaS.
3. What is the specific application scenario of Kubernetes?
How Kubernetes works
KubernetesMaster: provides a cluster management control center, which is the main control unit to manage the workload and communication between systems. The Master component can run on any node in the cluster. But for simplicity, it is common to start all Master components on one VM/ machine, and the user container is not run on that VM/ machine.
Etcd: an open source high-performance key storage system for configuration sharing and service discovery, developed by the CoreOS team and a core component of CoreOS. Kubernetes uses "Etcd" to store the configuration data of the cluster and coordinate the build within the cluster.
API- server: a central control system that receives and modifies REST requests and serves as the front end of the control cluster. In addition, this is the only thing that communicates with the Etcd cluster, ensuring that the data is stored in Etcd.
Scheduler: is a key role that determines when a task is scheduled to run and which nodes can be executed during a task run. The node that is determined to execute will be sent by scheduler to worker via MQ or FaaS for execution. Tasks of different services are scheduled by an independent scheduler and sent to the specified Worker.
Controller: is a controller that runs many different controller processes in the background to control the shared state of the cluster and to perform routine tasks. When any change occurs to the service, the controller discovers the change and starts working in the new state.
Worker Node: also known as a Kubernetes or Minion node, it contains communication information between the network between the management containers (such as Docker) and the master node, and allocates resources to the container as planned
Kubelet: Kubelet ensures that all containers in the node are running and healthy. Kubelet is responsible for the creation of the pod and whether it is the desired state. If Node fails, Controller will observe the change and start pod on another healthy pod.
Container: the lowest level of microservice, placed in pod and requires an external IP address to view external processes.
Kube Proxy: acts as a network agent and load balancer. In addition, it forwards the request to an isolated network in the cluster and is primarily responsible for providing proxies for Pod objects.
CAdvisor: acts as an assistant to monitor and collect data on resource usage and performance metrics on each node.
Advantages of Kubernetes:
1) simple deployment and more open
Kubernetes can run containers on one or more cloud environments, virtual machines, or bare metal, which means it can be deployed on any infrastructure. In addition, it is compatible with multiple platforms, making multi-cloud strategies highly flexible and available.
2) stronger workload capacity and scalability
Kubernetes provides several major features for application extensions, such as horizontal scaling, automatic scaling, manual scaling, replicable controller-created Pods, and so on. In addition, Kubernetes provides more powerful high availability, health check, flow control and load balancer, automatic rollout and rollback, and so on.
To sum up, Kubernetes has laid a more solid foundation for the development of cloud applications. Kubernetes, like other management and orchestration tools, such as Marathon's Apache Mesos, Docker Swarm and AWS EC2, provides great features, but the weight of other tools is smaller than Kubernetes.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.