kubernetes in the container orchestration war is due to its application portability and flexibility in supporting hybrid/multi-cloud deployment methods. Coupled with the concept of openness and scalability, the surrounding communities are very active. Judging from the existing research results, kubernetes has become the standard in the field of container orchestration. But it is not mature and has great potential in many aspects. Here are some aspects:
1. Cluster Federation
kubernetes is a centralized container management tool. Horizontal, cluster management tools include distributed and shared. The difference between representative distributed container management tools such as yarn and kubernetes is that a host of yarn serves as a master to manage containers. The allocation speed is very fast. kubernetes is based on clusters and has better resource allocation. Shared management of borg in Google is used, which is said to be a more advanced distribution method.
As the most popular container management tool at present, kubernetes needs to be split into multiple clusters and managed separately due to bottlenecks in storage and other aspects when the cluster is large. In order to achieve unified management like one cluster when multiple clusters are more than one cluster, the industry has developed the concept of a cluster federation. It is to make multiple clusters at the bottom work like a cluster to the outside. At present, this technology is not very mature, and there is great potential in this regard.
The scheduler module of kubernetes is not very good, so students who are willing to patch kubernetes start from this part. The patch is easily adopted and becomes one of the contributors.
Used in actual large companies. Often, making your own wheels will rewrite this part.
Kubernetes uses etcd as storage, which directly creates a capacity bottleneck in kubernets. So many companies have optimized this. Alibaba has added a layer of tair cache to etcd to use. JD.com replaced etcd with mysql.
Large DNS companies with kubernetes also use very few. Because generally large companies have their own service registration and discovery mechanisms and naming specifications.
The pod-level automatic capacity expansion of kubernetes is divided into two levels: horizontal capacity expansion HPA and vertical capacity expansion VPA to expand the amount of resources that can be used by the capacity container. Horizontal expansion HPA is easy to do, it is to shrink the container and expand it with a larger configuration. Vertical expansion VPA is also called on-site upgrade, which will be troublesome. Because the k8s container itself is a docker process. VPA means that the process does not restart and achieves upgrade.
6. Plug-in
There are not many core functions of kubernetes. Many functions are provided in the form of plug-ins, and users can implement interfaces to make their own plug-ins.
7. Container orchestration
After all the above mature, kubernetes still has the biggest problem. It was born to solve resource utilization. Therefore, it is necessary to further improve resource utilization through algorithms and AI levels. Therefore, learning Go language and algorithm learning are necessary skills for developers related to kubernetes.