Kubernetes 如果“serviceAccountName”不存在,请将其设置为“default”
因此,我正在研究的典型k8s部署文件如下所示:Kubernetes 如果“serviceAccountName”不存在,请将其设置为“default”,kubernetes,kubernetes-deployment,Kubernetes,Kubernetes Deployment,因此,我正在研究的典型k8s部署文件如下所示: apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: ... name: ${service-name} spec: replicas: 1 strategy: ... template: metadata: ... spec: serviceAccountName: test ..
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
...
name: ${service-name}
spec:
replicas: 1
strategy:
...
template:
metadata:
...
spec:
serviceAccountName: test
...
目标是创建多个可以访问同一servicecomport
的服务。
当中存在test
时,此结构工作正常
kubectl get serviceaccount
问题是,如果命名空间中不存在test
(出于任何原因),如何将serviceAccountName
设置为default
serviceAccount?
我不想部署失败
我基本上需要一些类似的东西
serviceAccountName: {test:-default}
另外,很明显,我可以为
serviceAccountName
分配一个变量,并从外部解析yaml文件,但我想看看是否有更好的选项只要您想在集群内运行此验证,唯一的方法就是使用
这将截获与MutatingWebhookConfiguration中定义的规则匹配的请求,然后再将其放入etcd。MutatingAdministrationWebhook通过向webhook服务器发送准入请求来执行变异。Webhook服务器只是遵循API的普通http服务器
因此,您可以验证服务帐户是否存在,如果不存在,则设置默认sa
下面是weebhook的一个示例,它验证并设置自定义标签
更多关于