gpt4 book ai didi

docker - 用于执行Pod的模式在该Pod中具有来自容器的标签

转载 作者:行者123 更新时间:2023-12-02 20:58:31 25 4
gpt4 key购买 nike

我们的团队已经写了一个 docker 形象。如果运行此镜像的Pod失败,我们希望收到警报。 (为此,我们使用Prometheus的警报管理器和kube-state-metrics)。

一个不同的团队正在创建运行该图像的作业(请注意,他们正在通过类似于argo的方式进行该操作)。为了获得我们想要的警报,我们要求团队添加一个特定的标签,即由作业创建的容器将带有一个标签,我们可以在promql中使用该标签,以在该容器发生故障时创建警报。

我们可以考虑强制使用正确标签的唯一方法是从容器内检查该标签,然后失败并显示一条错误消息,告诉我们该标签丢失。因此,要么通过向下的API(但这是团队运行任务的另一项要求),要么更可能仅通过运行kubectl get pods -l ...来完成,因为此容器已将kubectl用于其他用途。

如果这是不好的做法,我们团队中有一个辩论。容器坚持使用 pod 标签是一种反模式吗?我们想知道这样的情况是否有更清洁的设计?

最佳答案

在我看来,强制Kubernetes中存在某些字段的惯用方式是通过创建动态变异接纳 Controller

https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/
https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#mutatingadmissionwebhook

我知道这听起来可能有点复杂,但是请相信我,这确实很简单。
最终,准入控件只是Webhook端点(一段代码),它可以更改并在创建的对象上强制执行某种状态。

顺便说一句,您还可以使用验证Webhook并简单地禁止创建不包含所需标签的Pod,以及相应的相关错误消息。

关于docker - 用于执行Pod的模式在该Pod中具有来自容器的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61633155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com