我们在 Amazon AWS 上的 Kubernetes 上运行容器。此集群是通过 kube-up 脚本集创建的。一切都已正确配置并运行良好。然而,我们遇到了一个问题 - 我们的大型服务器 c4.xlarges 仅允许运行 40 个 pod。这对我们来说是一个很小的数字,因为我们正在运行许多小型 pod,其中一些很少使用。有没有办法从 salt master 或启动配置中提高此限制?实现此目的的最佳途径是什么?
谢谢。
答案1
修复了!就我所知,我认为我也做了一个很好的修复。我是 Salt 的新手,但现在感觉我已经掌握了相当多的内容。它比我想象的要简单得多,也不那么吓人,真的是一个很棒的工具。无论如何,开始修复:
Kubernetes 使用 salt 来配置 master 和 minions。Salt 的配置文件位于/srv/salt
。查看文件后top.sls
,我找到了kubelet
文件夹(我们需要更改传递给 kubelet 的标志)。浏览该文件夹,我们找到了文件init.sls
,指向kubelet.service
使用 进行salt://kubelet/default
配置的文件。完美,这就是文件/srv/salt/kubelet/default
。真恶心。很多超级条件,但一切都归结为最后一行DAEMON_ARGS=...
如果我们想以正确的方式执行此操作,请修改最后一行以添加另一个变量:
{% set max_pods = "--max-pods=" + pillar.get('kubelet_max_pods', '40') %}
DAEMON_ARGS="{{daemon_args}} {{api_servers_with_port}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{config}} {{manifest_url}} --allow_privileged={{pillar['allow_privileged']}} {{pillar['log_level']}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{configure_cbr0}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{max_pods}}"
(注意我们的新变量 max_pods)
此配置文件可以访问我们的支柱文件,即 salt 的“配置”文件。它们位于 中的 salt 配置旁边 /srv/pillar
。验证所有这些配置都已传递到所有主机后,我们可以修改一个。我认为它最适合cluster-params.sls
:
kubelet_max_pods: '80'
我杀死了旧节点,现在我们的节点每个主机最多有 80 个 pod,而不是默认的。