Как использовать 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 был добавлен, но не завершен, а затем удален. Вы можете попробовать, но мне кажется, что поддерживается только встроенная спецификация.

Другие вопросы по тегам