How to set up a 100 nodes kubernetes cluster

11/30/2015

From the performance test report we can find that the kubernetes can support 100 nodes.

To do the same test, I have set up a 100 nodes kubernetes cluster, but the kube-apiserver became slow when the cluster is set up. That meant when I typed kubectl get nodes, it suspended and can not get any respond.

To find the reason, I chech the connections of kube-apiserver and found there were about 660+ ESTABLISHED connections on port 8080 (I used the insecure port of apiserver), and when I stop some(about 20) slaves, the apiserver recovered common. So I thought the reason for kube-apiserver becoming slow is the too large concurrency.

So I am wonder how the Google set up a 100 nodes cluster? Is there something wrong in my work?

PS: The --max-requests-inflight of kube-apiserver has been set to 0.

-- Sun Gengze
kubernetes

2 Answers

11/30/2015

That's what is used to make cluster and from that govern it using kubernetes

def make_cluster(CID, mach_type, nof_machs, ZID):
    """
    Given machine type and # of machines, creates cluster

    Parameters
    ------------

    CID: string
        cluster id

    mach_type: string
        machine type

    nof_machs: integer
        number of machines

    ZID: string
        zone id

    returns: integer
        return code from gcloud call
    """

    cmd = "gcloud container clusters create {0} --machine-type {1} --zone {3} --num-nodes {2}".format(CID, mach_type, nof_machs, ZID)

    rc = subprocess.call(cmd, shell=True)
    return rc
-- Severin Pappadeux
Source: StackOverflow

11/30/2015

The doc you link to describes the methodology used (specifically the master VM size). The cluster is created in Google Compute Engine using the default cluster/kube-up.sh script from the repository, with all the default settings implied by that.

How large is the master that you're using? If it's really small, it's possible that it could struggle with a lot of nodes and pods.

-- Alex Robinson
Source: StackOverflow