2015-11-30 2 views
1

Из performance test report мы можем найти, что может поддерживать 100 узлов.Как установить 100 узлов кластера кубернетов

Чтобы выполнить тот же тест, я установил 100 узлов kubernetes, но kube-apiserver стал медленным, когда кластер настроен. Это означало, что когда я набрал kubectl get nodes, он приостановлен и не может ответить.

Чтобы найти причину, я Chech подсоединения kube-apiserver и нашел там около 660+ ESTABLISHED соединения на порт 8080 (я использовал небезопасный порт apiserver), и когда я останавливаюсь несколько (около 20) рабов, то apiserver восстановлен общий. Поэтому я думал, что причиной замедленияявляется слишком большой параллелизм.

Так что мне интересно, как Google установил кластер из 100 узлов? Что-то не так в моей работе?

PS: --max-requests-inflight из kube-apiserver установлен в 0.

ответ

1

Док связывание описывает методологию, используемую (в частности, мастер-VM размера). Кластер создается в Google Compute Engine с использованием сценария cluster/kube-up.sh по умолчанию из репозитория, и все настройки по умолчанию подразумеваются этим.

Насколько велика ваша компания? Если это действительно мало, возможно, что он может бороться с большим количеством узлов и стручков.

+0

ок, спасибо для вашего пациента. Я также подумал об аппаратной производительности мастера, как вы сказали, но я действительно хочу знать, использует ли Google некоторые компоненты балансировки нагрузки, такие как 'nginx' перед' apiserver' ... –

+0

Как сказал Алекс, тест был выполненный со стандартным сценарием kube-up.sh, который не настраивает балансировку нагрузки перед apirusver. Вместо этого он просто использует более мощную машину для запуска основных компонентов. –

+0

ОК, спасибо, это очень полезно для меня! –

0

Это то, что используется, чтобы сделать кластер и от управлять ею с помощью 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 
Смежные вопросы