Jawaban untuk pertanyaan ini dapat kita temukan di bagian Penyebaran dari kubernetes.io
Jadi, mengapa saya perlu penyeleksi juga?
Kutipan di bawah ini dari dokumentasi untuk k8s v 1.14
.spec.selector
adalah bidang wajib yang menentukan pemilih label untuk Pod yang ditargetkan oleh penerapan ini.
.spec.selector
harus cocok .spec.template.metadata.labels
, atau akan ditolak oleh API.
Dalam apps versi API / v1, .spec.selector dan .metadata.labels tidak default ke .spec.template.metadata.labels jika tidak disetel. Jadi mereka harus diatur secara eksplisit . Perhatikan juga bahwa .spec.selector tidak dapat diubah setelah pembuatan Penempatan di apps / v1.
Penyebaran dapat menghentikan Pod yang labelnya cocok dengan pemilih jika templatnya berbeda dari .spec.template atau jika jumlah total Pods tersebut melebihi .spec.replicas. Ini menampilkan Pods baru dengan .spec.template jika jumlah Pods kurang dari jumlah yang diinginkan.
Pod sudah dimulai secara terpisah, tetapi kemudian dibawa di bawah payung Penempatan untuk dikelola bersama?
Secara sederhana, Tidak
Catatan: Anda tidak boleh membuat pod lain yang labelnya cocok dengan pemilih ini, baik secara langsung, dengan membuat yang lain Deployment
, atau dengan membuat pengontrol lain seperti a ReplicaSet
atau a
ReplicationController
. Jika Anda melakukannya, yang pertama Deployment
berpikir bahwa itu membuat pod lainnya. Kubernetes
tidak menghentikan Anda dari melakukan ini. Jika Anda memiliki banyak pengontrol yang memiliki pemilih yang tumpang tindih, pengontrol akan saling bertarung dan tidak akan berperilaku dengan benar.