In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/01 Report--
This article introduces you what is the essence of k8s, the content is very detailed, interested friends can refer to, hope to be helpful to you.
At present, K8s is a relatively popular content, so what is it, why is it so popular, and what problem does it solve?
When we talk about K8s, we always think of Docker. Yes, if we want to know what problem K8 s solves, we will inevitably go back to Docker, back to the container.
In the development-test-release process, it is the container image that really carries the container information. Therefore, shortly after the success of the Docker project, it quickly moved towards an important reason for "container orchestration": as a cloud service provider or infrastructure provider, as long as I can run the Docker image submitted by users as a container, I can become a bearing point on the container ecosystem, thus precipitating the value of the entire container technology stack on my node. In addition, as long as we look back from my bearer to the makers and users of Docker images, all the service nodes along the path, such as monitoring, security, network, storage, etc., can be brought into full play and profitable.
So, this is an important reason why cloud computing providers are so keen on container technology: I can directly connect with potential users (developers) through container images.
Based on the above, the container has become the absolute protagonist in the field of cloud computing from a gadget in the hands of a developer, while the "container orchestration" technology, which can define container organization and management specifications, has become the hottest technology at present.
So, what is the problem that K8s is trying to solve? Choreography? Dispatch? Or cluster management?
Up to now, there is no fixed answer to this question, because the problem that K8s needs to solve is different at different stages of development. For most users, one thing is certain: now that I have a container image of the application, please help me run the application on a given cluster. Furthermore, I now have a container image that can be applied, so I also hope that K8s can provide me with a series of operation and maintenance capabilities such as routing gateway, monitoring, backup and so on. At this point, we need to talk about the architecture of K8s.
From the figure above, we can see that the architecture of the K8 s project is composed of Master and Node nodes. The Master node (that is, the control node) is composed of three closely cooperative independent components, namely, the kube-apiserver responsible for API services, the kube-scheduler responsible for scheduling, and the kube-controllermanager responsible for container orchestration. On the other hand, the persistent data of the whole cluster is processed by kube-apiserver and saved in Etcd.
The core part of the computing node is a component called kubelet. In the K8 s project, kubelet is mainly responsible for dealing with container runtimes (such as Docker projects). This interaction depends on a remote call interface called CRI (Container Runtime Interface), which defines the core operations of the container runtime. That's why the K8s project doesn't care what container you deploy and what technology you use to implement it, as long as your container can run a standard container image at runtime, it can be connected to the K8s project by implementing CRI.
Because of this, the K8s project does not regard Docker as the core of the whole architecture like various "container cloud" projects of the same period, but only implements it as a container runtime at the bottom.
In fact, there are all kinds of relationships among various tasks running in a large-scale cluster, and the processing of these relationships is the most difficult part of the job scheduling and management system. And this is also the problem that the K8s project should focus on.
The problem that K8s focuses on solving is also easier to understand. Before the popularization of container technology, the traditional virtual machine environment was relatively coarse-grained in dealing with all kinds of relationships. If you are good at discovering, you will often see a lot of unrelated applications deployed in the same virtual machine, just because they occasionally initiate several HTTP requests to each other. More often, when an application is deployed in a virtual machine, you also need to manually maintain many daemons that cooperate with it to handle its log collection, disaster recovery and other auxiliary work.
But when container technology appears, you will find that containers have a unique advantage of "fine granularity" in the division of "functional units": because the essence of containers is just a process.
This means that applications, components, and daemons that used to be crowded in the same virtual machine can be mirrored and run in dedicated containers if you like. They do not interfere with each other, have their own resource quotas and can be scheduled on any machine in the entire cluster. This is also a prerequisite for the landing of the idea of micro-service.
The important problem that the K8s project deals with is the handling of all kinds of relationships. Let's start with a "panorama" of the core functions of the K8s project:
In this picture, we trigger from the most basic concept of containers, and first encounter the problem of "close collaboration" between containers, so we extend to Pod. With Pod, we want to start multiple instances of applications at a time, so we need Deployment, the multi-instance manager of Pod. With such a set of the same Pod, we need to access it in a load-balanced way through a fixed IP address and port, so we have Service.
Having said so much, what is the nature of k8s? Its essence is to provide users with a universal container layout tool. If you have to make a vivid analogy, you can think of it as an operating system.
In the past, what many cluster management projects are good at is to put a container, according to certain rules, to run on an optimal node, which we call "scheduling". But what K8s project is good at is to deal with all kinds of relationships between containers automatically according to the wishes of users and the rules of the whole system. This function is called orchestration.
However, K8s provides users with more than one tool, and its real value lies in providing a set of basic dependencies for building distributed systems based on containers.
Finally, the last map is a summary of the above (is it easier to understand when you see the map):
About what the essence of k8s is shared here, I hope the above content can be of some help to you, can learn more knowledge. If you think the article is good, you can share it for more people to see.
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.