gpt4 book ai didi

kubernetes - 在不存在的情况下将 `serviceAccountName`设置为 `default`

转载 作者:行者123 更新时间:2023-12-02 12:15:39 27 4
gpt4 key购买 nike

因此,我正在唤醒的典型k8s部署文件如下所示:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
...
name: ${service-name}
spec:
replicas: 1
strategy:
...
template:
metadata:
...
spec:
serviceAccountName: test
...

目标是创建可以访问相同 serviceAccount的多个服务。
test存在于
kubectl get serviceaccount

问题是,如果命名空间中不存在 serviceAccountName(出于任何原因),如何将 default设置为 test serviceAccount?
我不想使部署失败

我基本上需要有类似的东西
serviceAccountName: {test:-default}

附言显然,我可以为 serviceAccountName分配一个变量,并从外部解析yaml文件,但想查看是否有更好的选择

最佳答案

只要您要在集群中运行此验证,唯一的方法就是使用MutatingAdmissionWebhook

在存入etcd之前,它将拦截与MutatingWebhookConfiguration中定义的规则匹配的请求。 MutatingAdmissionWebhook通过向Webhook服务器发送接纳请求来执行变异。 Webhook服务器只是遵循API的普通http服务器。

因此,您可以验证服务帐户是否存在,如果不存在,则设置默认值sa。

这是weebhook的example,用于验证和设置自定义标签。

有关Admission Controller Webhooks的更多信息

关于kubernetes - 在不存在的情况下将 `serviceAccountName`设置为 `default`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57066342/

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