How to configure Kubernetes for maximum scalability

Source: Internet
Author: User

Kubernetes is designed to solve the difficulties of managing a large-scale containerized environment. However, this does not mean that kubernetes can be extended in any environment. There are ways to maximize the scalability of kubernetes, and there are some important things and limitations to be aware of when extending kubernetes, which I will explain in this article.


Scale and performance


To extend the Kubernetes cluster, the first thing to note is the balance between scale and performance. For example, Kubernetes 1.6 can be used for clusters of up to 5,000 nodes. However, 5,000 nodes are not the maximum value of the hard limit, it is just a recommended maximum node value. In actual use, the number of nodes can be far more than 5,000, but this will lead to performance degradation.


This is specifically the case: Kubernetes has two service-level targets, and one is to return 99% of the API calls within a second. The other is to start the 99% pods within 5 seconds. Although these goals are not a complete set of performance indicators, they do provide a good benchmark for evaluating common cluster performance. According to Kubernetes, a cluster of more than 5,000 nodes may not be able to achieve these service-level goals.


So one thing to keep in mind is that in some cases you may have to sacrifice some of the performance in order to play kubernetes, and these sacrifices may be worthwhile or not worthwhile for you, depending on your specific deployment scenario.


Quotas (quotas)


One of the major problems you might encounter when building a very large kubernetes cluster is the quota issue. This is especially true for cloud-based nodes, where the cloud service provider typically sets quota limits.


This issue is so important because the deployment of large-scale kubernetes clusters is actually a seemingly simple process. The config-default.sh file has num_nodes settings. On the surface, you can build large clusters by increasing the values associated with this setting. While this is feasible in some cases, it may eventually be subject to quotas. Therefore, before you plan to extend the cluster, it is necessary to communicate with the cloud provider before any existing quotas are available. Cloud providers not only let you know about existing quotas, but at least some cloud vendors will agree to a request to increase the quota limit for the user.


When you evaluate these limits, it is important to note that although quota limits directly limit the number of kubernetes clusters you create, the cluster size limit is more likely to be derived from quotas that are indirectly related to kubernetes. For example, the provider may limit the number of IP addresses that you are allowed to use, or limit the number of virtual machine instances that you create. The good news is that several of the major cloud service providers have had many experiences with kubernetes and should be able to help you solve these problems.


Master Node


In addition to the above limitations, one of the issues to consider is the impact of cluster size on the size and number of primary nodes required. These depend on how the kubernetes is implemented, but it is important to remember that the larger the cluster, the greater the number of primary nodes required, and the higher the functional requirements of those primary nodes.


If you are building a new kubernetes cluster from scratch, this may be an unrelated issue, after all, determining the number of primary nodes needed is a normal phase in the cluster planning process. However, if you are going to expand an existing kubernetes cluster, you need to consider the requirements of the master node more, because the size of the master node is set when the cluster is started and cannot be dynamically adjusted.


Extended add-ons (scaling add-ons)


Another thing that needs our attention is that kubernetes defines the resource limits for the add-ons container. These resource limits ensure that additional components do not consume excessive CPU and memory resources.


The problem with these limitations is that they are defined on a relatively small cluster basis. If you run some add-ons in a large-scale cluster, they may need to use more resources. This is because the add-ons must serve more nodes and therefore require additional resources. If you start to have problems with component-related restrictions, you'll see that the add-ons are killed one by one.


Summarize


Kubernetes clusters can scale massively, but they may experience issues related to quotas and performance. Therefore, before you add a large number of new nodes to your kubernetes cluster, be sure to carefully consider the various requirements that arise from scaling out.


Original source: Rancher Labs

This article is from the "12452495" blog, please be sure to keep this source http://12462495.blog.51cto.com/12452495/1977869

How to configure Kubernetes for maximum scalability

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.