【问题标题】:minikube start - howto modify KubeletConfiguration passed to kubeadm?minikube start - 如何修改传递给 kubeadm 的 KubeletConfiguration?
【发布时间】:2021-05-10 14:02:33
【问题描述】:

我想在启动minikube 时将config.yaml 中的值KubeletConfiguration.cpuCFSQuota = false 设置为传递给kubeadm 以关闭CPU 资源检查,但我没有设法通过文档找到执行此操作的选项这里https://minikube.sigs.k8s.io/docs/handbook/config/。我找到的最接近的解决方案是使用选项--extra-config=kubelet.cpu-cfs-quota=false,但kubelet--cpu-cfs-quota 选项已被弃用,不再有效。

任何想法表示赞赏。

环境:

  • Ubuntu 20.04
  • Minikube 1.17.1
  • Kubernetes 1.20.2
  • 驱动程序泊坞窗 (20.10.2)

谢谢, 码头。

【问题讨论】:

    标签: kubernetes minikube kubeadm kubelet


    【解决方案1】:

    minikube start 旁边使用--extra-config=kubelet. 标志是一种不错的方法,但您还需要Set Kubelet parameters via a config file

    正如您已经注意到 --cpu-cfs-quota 标志:

    为指定 CPU 的容器启用 CPU CFS 配额强制执行 限制(已弃用:此参数应通过配置文件设置 由 Kubelet 的 --config 标志指定。

    因此您需要通过创建kubelet 配置文件来设置该参数:

    配置文件必须是 JSON 或 YAML 表示 此结构中的参数。确保 Kubelet 具有读取权限 在文件上。

    以下是此文件的示例:

    apiVersion: kubelet.config.k8s.io/v1beta1
    kind: KubeletConfiguration
    evictionHard:
        memory.available:  "200Mi"
    

    现在您可以使用该配置文件来设置cpuCFSQuota = false

    // cpuCFSQuota enables CPU CFS quota enforcement for containers that
    // specify CPU limits.
    // Dynamic Kubelet Config (beta): If dynamically updating this field, consider that
    // disabling it may reduce node stability.
    // Default: true
    // +optional`
    CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty"
    

    然后使用 --extra-config=kubelet.config=/path/to/config.yaml 调用 minikube

    或者,您可以在不使用 --extra-config 标志并将 start the Kubelet with the --config flag 设置为 Kubelet 配置文件的路径的情况下启动 minikube。然后 Kubelet 将从该文件加载其配置。

    我知道这些步骤比您预期的要多,但是通过配置文件设置 kubelet 参数是推荐的方法,因为它简化了节点部署和配置管理。

    【讨论】:

    • 这会完全覆盖 minikube 为 kubelet 传递给 kubeadm 的任何其他配置吗?我需要捕获并添加它吗?
    • 如文档中所述:与配置文件具有相同值的命令行标志将覆盖该值。此外,如果提供了 --config 并且未通过命令行指定值,则应用 KubeletConfiguration 版本的默认值。
    猜你喜欢
    • 2019-02-16
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多