限制每个节点的Pod数量

时间:2020-02-24 14:34:37

标签: kubernetes kubectl kubeadm

我试图限制群集中每个节点的Pod数量。 我设法通过配置文件从kubeadm init中为每个节点添加了全局限制:

add_filter( 'template_include', 'portfolio_page_template', 99 );

function portfolio_page_template( $template ) {
   global $wp;
   $current_url_path =  home_url( $wp->request );
   $url_pattern = '/(^homes[\/\w]*)/gim'

   if ( is_page()  && preg_match($pattern, $current_url_path)) {
      $new_template = locate_template( array( 'home-page-template.php' ) );

      if ( '' != $new_template ) {
         return $new_template ;
      }
   }

   return $template;
}

这不是很好,因为该限制甚至适用于主节点(正在运行多个kube系统吊舱,并且吊舱的数量可能会增加10个以上)。 我想将默认值保留在init上,并在每个节点上的join处更改该值。 我发现了一些东西:

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
networking:
  podSubnet: <subnet>
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
maxPods: 10

但是,即使没有错误/警告出现,似乎maxPods的值也被忽略了。我可以为该特定节点创建10个以上的容器。 此外,apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration maxPods: 10 --- apiVersion: kubeadm.k8s.io/v1beta1 kind: JoinConfiguration discovery: bootstrapToken: apiServerEndpoint: "<api_endpoint>" token: "<token>" unsafeSkipCAVerification: true kubectl get node <node> -o yaml的默认值(110)。 我该如何进行操作才能使每个节点都应用此pod限制?

我想提一下,我具有与Kubernetes相关的基本知识/有限知识。

谢谢!

2 个答案:

答案 0 :(得分:6)

/var/lib/kubelet处有一个config.yaml文件。当您运行kubeadm join时,此配置文件是从kube-system命名空间中的kubelet配置映射生成的。文件的部分内容如下。

apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: false
  webhook:
    cacheTTL: 0s
    enabled: true
  x509:
    clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
  mode: Webhook
  webhook:
    cacheAuthorizedTTL: 0s
    cacheUnauthorizedTTL: 0s
clusterDNS:
- 10.96.0.10
maxPods: 10

您可以更改该文件并添加maxPods参数,然后在节点上重新启动kubelet。

sudo systemctl restart kubelet 

当前在kubeadm联接中无法传递kubelet配置文件。

答案 1 :(得分:1)

您还可以使用kubelet --max-pods选项设置每个节点的最大Pod数量。