是否可以在Kubernetes中创建一个pod模板,并在以后在部署中指定pod时重用它?例如:
说我有pod模板......
apiVersion: v1
kind: PodTemplate
metadata:
name: my-pod-template
template:
metadata:
labels:
app: "my-app"
spec:
containers:
- name: my-app
image: jwaldrip/my-app:latest
我可以在部署中使用它吗?
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
template:
metadata:
name: my-pod-template
这在部署像Jobs这样的东西时会非常有用,我想在这里创建一个给定模板的作业。
那没有。
特别是在Pod的情况下,有PodPresets:
https://kubernetes.io/docs/tasks/inject-data-application/podpreset/
但那些不适用于其他对象。
强制执行任意对象的形状或属性的一种方法是建立正确创建这些对象的工具,然后为该工具创建凭证,并使用RBAC仅允许这些凭据创建这些对象。
https://kubernetes.io/docs/admin/authorization/rbac/
另一种方法是创建一个Admission Controller来观察尝试创建所需对象,并验证/拒绝那些不符合标准的对象: