【问题标题】:Always run one instance of Kubernetes pod始终运行一个 Kubernetes pod 实例
【发布时间】:2020-01-25 00:13:49
【问题描述】:

如何将 Kubernetes 部署配置为始终只运行一个 pod 副本?我们可以在部署文件中将副本配置为 1,但这不会阻止有人使用 kubectl 扩展 pod。

【问题讨论】:

  • 实现这个有什么运气吗?我们在托管集群上,无法创建变异 webhook

标签: kubernetes kubernetes-pod


【解决方案1】:

您不能直接限制部署资源不允许多个副本。

但您可以创建一个自定义的ValidatingAdmissionWebhook 准入控制器,拒绝尝试修改此部署的replicas 字段的请求。

或者您可以创建一个自定义资源定义 (CRD),其行为与部署类似,但副本数固定为 1。

一般来说,如果您只想阻止某些用户扩展副本,您可以限制这些用户的 RBAC 权限以阻止他们更新部署对象。

【讨论】:

    【解决方案2】:

    您可以使用mutating webhook controller

    任何 pod 都可以通过这种方式限制为特定数量的副本。

    对于你想要达到的目标来说可能有点矫枉过正,但它会奏效。

    【讨论】:

    • 使用验证钩子并拒绝不匹配的更改可能更好,Open Policy Agent 是一种简单的方法。嗯,很简单。
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2019-04-25
    • 2016-12-16
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多