【问题标题】:How do you increase maximum pods per node in K3S?您如何增加 K3S 中每个节点的最大 pod 数?
【发布时间】:2021-01-26 01:16:40
【问题描述】:

我尝试在安装时使用以下设置每个 pod 的最大节点数:

curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--max-pods 250" sh -s -

但是,K3s 服务器将无法加载。看来--max-pods 标志已被kubernetes docs 弃用:

--max-pods int32 默认:110

(已弃用:此参数应通过配置文件设置 由 Kubelet 的 --config 标志指定。看 https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ 了解更多信息。)

那么对于 K3s,kubelet 配置文件在哪里,可以/应该使用上述方法设置它吗?

【问题讨论】:

    标签: kubernetes rancher k3s


    【解决方案1】:

    documentation 中所述,可以通过以下方式设置 Kubelet 的配置参数 磁盘上的配置文件。

    注意:使用磁盘配置文件,我们只能设置我们想要覆盖的 Kubelet 配置参数的子集,所有其他 Kubelet 配置值都保留为内置默认值, 除非被标志覆盖。


    我创建了简单的配置文件来覆盖maxPods 值(默认110):

    apiVersion: kubelet.config.k8s.io/v1beta1
    kind: KubeletConfiguration
    maxPods: 250
    

    然后我们必须在K3s 安装期间将此配置文件作为参数传递(我建议指定绝对路径名):

    curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--kubelet-arg=config=<KUBELET_CONFIG_FILE_LOCATION>" sh -
    

    最后我们可以检查maxPods是否等于250

    # kubectl describe nodes <NODE_NAME> | grep -i pod
      pods:               250
      pods:               250
    PodCIDR:                      10.42.0.0/24
    PodCIDRs:                     10.42.0.0/24
    

    另外你可以找到有趣的讨论here,相信你能找到另一种方法来解决你的问题。

    【讨论】:

    • 是的,刚刚测试了它,它工作了!非常感谢。这个配置 yaml 是在运行 k3s 安装脚本时导入的,还是仍然被引用并且可以编辑?
    • @Kyle 将变量值简单地复制到cat /etc/systemd/system/k3s.service,在k3s服务启动时读取配置文件。
    【解决方案2】:

    要使用增加的 max-pods 更新现有安装,请将 kubelet 配置文件添加到 k3s 关联位置,例如 /etc/rancher/k3s/kubelet.config

    apiVersion: kubelet.config.k8s.io/v1beta1
    kind: KubeletConfiguration
    maxPods: 250
    

    编辑 /etc/systemd/system/k3s.service 以更改 k3s 服务器参数:

    ExecStart=/usr/local/bin/k3s \
        server \
            '--disable' \
            'servicelb' \
            '--disable' \
            'traefik' \
            '--kubelet-arg=config=/etc/rancher/k3s/kubelet.config'
    

    重新加载 systemctl 以获取服务更改:

    sudo systemctl daemon-reload

    重启k3s:

    sudo systemctl restart k3s

    kubectl describe &lt;node&gt;检查describe节点的输出并寻找可分配的资源:

    Allocatable:
      cpu:                32
      ephemeral-storage:  199789251223
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             131811756Ki
      pods:               250
    

    还有一条消息指出,可分配节点限制已在事件中更新:

    Events:
      Type     Reason                   Age    From        Message
      ----     ------                   ----   ----        -------
      Normal   Starting                 20m    kube-proxy  Starting kube-proxy.
      Normal   Starting                 20m    kubelet     Starting kubelet.
    ...
      Normal   NodeNotReady             7m52s  kubelet     Node <node> status is now: NodeNotReady
      Normal   NodeAllocatableEnforced  7m50s  kubelet     Updated Node Allocatable limit across pods
      Normal   NodeReady                7m50s  kubelet     Node <node> status is now: NodeReady
    

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 1970-01-01
      • 2023-01-20
      • 2020-07-08
      • 2015-09-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多