Как использовать PodTemplate
Я видел, что есть объект с именем PodTemplate
которые имеют мало документации.
Упоминается:
Шаблоны модулей - это спецификации модулей, которые включены в другие объекты, такие как контроллеры репликации, задания и DaemonSets.
Но я не уверен, как упомянуть об этом на Replication Controllers
, Jobs
или же DaemonSets
,
Я создал PodTemplate
как это:
kubectl apply -f - <<EOF
apiVersion: v1
kind: PodTemplate
metadata:
name: pod-test
namespace: default
template:
metadata:
name: pod-template
spec:
containers:
- name: container
image: alpine
command: ["/bin/sh"]
args: ["-c", "sleep 100"]
EOF
Я хочу использовать его в DaemonSet
, как мне это сделать?
Вот пример для DaemonSet
YAML:
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: pod-by-daemonset
namespace: default
spec:
selector:
matchLabels:
name: selector
template:
metadata:
labels:
name: selector
spec:
containers: # I don't want to specify it, I want to use the template.
- name: container
image: alpine
EOF
1 ответ
Интересно, что на странице DaemonSet приведен пример создания DaemonSet и сказано, что
.spec.template - это шаблон pod. Он имеет ту же схему, что и Pod, за исключением того, что он вложенный и не имеет apiVersion или вида.
Таким образом, намерение состоит в том, чтобы встроить схему Pod в DaemonSet.
Однако, похоже, был план, чтобы иметь возможность ссылаться на PodTemplate по форме:
TemplateRef:
Name: <templatename>
Кажется, что из следа на github произошло то, что этот способ ссылки на предопределенный PodTemplate был добавлен, но не завершен, а затем удален. Вы можете попробовать, но мне кажется, что поддерживается только встроенная спецификация.