Kubernetes maxPods int32还包括其默认pod

问题描述 投票:0回答:1

我想在任何kubernetes节点上将允许的最大pod(我的应用程序需要/创建)设置为'3'(在默认命名空间中)。

当我在maxPods: 3中设置/var/lib/kubelet/config.yaml时,看起来它还包括kubernetes内部(namespace: 'kube-system')在此数字中隐藏的吊舱。换句话说,除非我将maxPods设置为7(在也是Master的节点上),否则无法在默认命名空间中创建任何应用程序窗格。

我的节点(我将node1.co.com上的maxPods设置为'8',我只能在默认命名空间中获得2个应​​用程序窗口):

$ kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, cap: .status.capacity}'
{
  "name": "node1.co.com",
  "cap": {
    "cpu": "2",
    "ephemeral-storage": "8649700Ki",
    "hugepages-2Mi": "0",
    "memory": "8007036Ki",
    "pods": "8"
  }
}
{
  "name": "node2.co.com",
  "cap": {
    "cpu": "2",
    "ephemeral-storage": "8649700Ki",
    "hugepages-2Mi": "0",
    "memory": "8009324Ki",
    "pods": "9"
  }
}

任何其他pod都处于暂挂状态:

$ kubectl create -f single-node-deployement4.yaml
$ kubectl get pods -o=wide --all-namespaces | grep Pending

default       single-node-deployment4-585466c56c-sszdz                  0/1     Pending     0          17s     <none>           <none>                                  <none>           <none>

$ kubectl get pods -o = wide --all-namespaces | grep OutOf

kube-system   coredns-86c58d9df4-7gb5d                                        0/1     OutOfpods   0          7d19h   <none>           node1.co.com   <none>           <none>
kube-system   coredns-86c58d9df4-t6rcj                                        0/1     OutOfpods   0          7d19h   <none>           node1.co.com   <none>           <none>

kubernetes内部pod的数量是不变的,我可以假设最多有三个pod,我可以设置'maxPods: 9'或者有更好的方法来设置maxPods吗?

kubernetes kubeadm
1个回答
0
投票

我想你可以达到同样的效果

  • 限制每个命名空间的#Pods
  • 不要在主节点上安排

通过一起使用这些Kubernetes政策/功能:

  1. ResourceQuota(对象计数配额)
  2. Node Taint

例:

根据对象计数创建资源配额:

  • kubectl create namespace limited

# Source: object-count-quota.yaml apiVersion: v1 kind: ResourceQuota metadata: name: object-counts spec: hard: pods: "3"

  • kubectl create -f ./object-count-quota.yaml -n limited
  • kubectl describe resourcequota -n limited

使主节点不可调度:

  • kubectl taint nodes master-node key=value:NoSchedule
© www.soinside.com 2019 - 2024. All rights reserved.