如何设置 100 个节点的 kubernetes 集群
How to set up a 100 nodes kubernetes cluster
从performance test report可以看出kubernetes
可以支持100个节点。
为了做同样的测试,我设置了一个 100 个节点的 kubernetes
集群,但是 kube-apiserver
在设置集群时变慢了。这意味着当我输入 kubectl get nodes
时,它暂停并且无法得到任何响应。
为了找到原因,我检查了kube-apiserver
的连接,发现8080端口上有大约660+个ESTABLISHED连接(我使用了apiserver的不安全端口),当我停止一些(大约20个) ) 奴隶, apiserver
恢复普通。所以我认为kube-apiserver
变慢的原因是并发太大。
所以我想知道 Google 是如何设置 100 个节点的集群的?我的工作有问题吗?
PS: kube-apiserver
的--max-requests-inflight
已经设置为0.
您 link 的文档描述了所使用的方法(特别是主 VM 大小)。该集群是在 Google Compute Engine 中使用存储库中的默认 cluster/kube-up.sh 脚本创建的,其中包含所有默认设置。
您使用的母版有多大?如果它真的很小,它可能会遇到很多节点和 pods.
这就是用于创建集群并使用 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
从performance test report可以看出kubernetes
可以支持100个节点。
为了做同样的测试,我设置了一个 100 个节点的 kubernetes
集群,但是 kube-apiserver
在设置集群时变慢了。这意味着当我输入 kubectl get nodes
时,它暂停并且无法得到任何响应。
为了找到原因,我检查了kube-apiserver
的连接,发现8080端口上有大约660+个ESTABLISHED连接(我使用了apiserver的不安全端口),当我停止一些(大约20个) ) 奴隶, apiserver
恢复普通。所以我认为kube-apiserver
变慢的原因是并发太大。
所以我想知道 Google 是如何设置 100 个节点的集群的?我的工作有问题吗?
PS: kube-apiserver
的--max-requests-inflight
已经设置为0.
您 link 的文档描述了所使用的方法(特别是主 VM 大小)。该集群是在 Google Compute Engine 中使用存储库中的默认 cluster/kube-up.sh 脚本创建的,其中包含所有默认设置。
您使用的母版有多大?如果它真的很小,它可能会遇到很多节点和 pods.
这就是用于创建集群并使用 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