【问题标题】:Deploy daemonset as the first deployment in kubernetes将 daemonset 部署为 Kubernetes 中的第一个部署
【发布时间】:2019-10-11 14:29:47
【问题描述】:

我现在正在使用 Kubernetes 1.12 版本在谷歌云中学习 kubernetes

我部署了一个守护程序集,然后突然守护程序集处于待处理状态。这是资源配额不足造成的。

我可以通过在集群中添加更多节点来解决这个问题。但是,我很好奇如何将守护进程部署为第一次部署而不是其他部署?

已阅读文档,但我仍然找不到解决方案。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine


    【解决方案1】:

    我想您正在为集群使用较小的计算大小,只有一两个计算。

    要回答这个问题,不,你不能在 Kubernetes 中进行第一次部署,当你启动集群时,一些系统部署已经存在,你可以看到他们在做:kubectl -n kube-system get deployment

    您也可以查找 pod,并使用 kubectl top node 确认您的集群状态。

    首先升级您正在使用的计算类型是个好主意,拥有更多节点也是一个不错的解决方案。

    【讨论】:

    • 然而,这个部署是 Kind: Daemonset。因此,它必须能够为每个节点部署。这就是为什么我想让这个 daemonset 能够踢 pod。
    【解决方案2】:

    有办法做到这一点。

    1. 您可以在 pod 定义中使用 pod 优先级。您需要为 daemonsets 定义 pod 优先级。https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/

    2. 尝试在所有部署之前部署这些守护程序集。

    3. 在其他部署 helm 图表之前定义 Helm 图表和部署图表。

    4. 假设您在一个掌舵图中拥有所有部署和守护程序集,然后将文件命名约定添加为 0-daemonsets.yaml , 1-deployments.yaml 。如果您这样做,0-daemonsets.yaml 将首先部署,然后是 1-deployments.yaml

    【讨论】:

    • 如果我在节点完整或部署中优先部署我的守护进程会发生什么?
    • 您将无法部署 daemonset,因为您已经在使用节点资源。
    猜你喜欢
    • 2018-11-28
    • 2021-07-08
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多