Відповідь на це запитання ми можемо знайти у розділі Розгортання від kubernetes.io
Отже, навіщо мені також будуть потрібні селектори?
Цитати нижче з документації для k8s v 1.14
.spec.selector
- це обов'язкове поле, яке вказує селектор міток для Pods, на які спрямовано це розгортання.
.spec.selector
має відповідати .spec.template.metadata.labels
, інакше API буде відхилено.
У версії API програми / v1, .spec.selector та .metadata.labels не встановлені за замовчуванням .spec.template.metadata.labels, якщо вони не встановлені. Тому вони повинні бути встановлені явно . Також зауважте, що .spec.selector незмінний після створення Розгортання в додатках / v1.
Розгортання може припинити Pods, ярлики яких відповідають селектору, якщо їх шаблон відрізняється від .spec.template або якщо загальна кількість таких Pods перевищує .spec.replicas. Він відображає нові Pods з .spec.template, якщо кількість Pods менше бажаного числа.
Струми вже запускаються окремо, але пізніше підводяться під егідою розгортання для управління разом?
Простіше кажучи, ні
Примітка. Не слід створювати інші стручки, мітки яких відповідають цьому селектору, безпосередньо, створюючи інший Deployment
, або створюючи інший контролер, такий як a ReplicaSet
або a
ReplicationController
. Якщо ви так зробите, перший Deployment
думає, що створив ці інші стручки. Kubernetes
не заважає вам це робити. Якщо у вас є кілька контролерів, які мають перемикачі селекторів, контролери будуть боротися один з одним і не будуть вести себе правильно.