Limit the number of pods per node

泄露秘密 提交于 2020-05-15 05:28:25

问题


I'm trying to limit the number of pods per each node from my cluster. I managed to add a global limit per node from kubeadm init with config file:

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

This is not quite well because the limit is applied even on master node (where multiple kube-system pods are running and the number of pods here may increase over 10). I would like to keep the default value at init and change the value at join on each node. I have found something:

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

but, even if no error/warning appears, it seems that the value of maxPods is ignored. I can create more than 10 pods for that specific node. Also kubectl get node <node> -o yaml returns status.capacity.pods with its default value (110). How can I proceed in order to have this pods limit applied per each node?

I would like to mention that I have basic/limited knowledge related to Kubernetes.

Thank you!


回答1:


There is a config.yaml file at /var/lib/kubelet. This config file is generated from kubelet config map in kube-system namespace when you run kubeadm join.Partial content of the file is as below.

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

You can change that file and add maxPods parameter and then restart kubelet on the node.

sudo systemctl restart kubelet 

Currently in kubeadm join there is no way to pass a kubelet config file.




回答2:


The only solution I know is to set the maximum number of pods per node with the kubelet --max-pods option.



来源:https://stackoverflow.com/questions/60378117/limit-the-number-of-pods-per-node

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!