Saya ingin menyebarkan aplikasi cluster dengan mengelola penyebaran melalui k8s Penyebaran objek. Dokumentasi yang telah saya sangat bingung. Saya letak dasar mempunyai komponen yang skala independen:
Secara teknis, semua 4 di atas termasuk dalam memisahkan polong yang ditingkatkan secara mandiri.
Pertanyaan saya adalah:
pod.yml
file dan kemudian entah bagaimana referensi mereka dalam penyebaran.yml
file atau penyebaran file juga cantumkan pod definisi?spec
porsi Penyebaran
setara dengan mendefinisikan satu pod. Apakah itu benar? Bagaimana jika saya ingin declaratively menggambarkan multi-pod penyebaran? Apakah saya perlu melakukan beberapa penerapan.yml file?Pagids telah menjawab sebagian besar dari dasar-dasar. Anda harus membuat 4 Penyebaran
untuk skenario anda. Setiap penyebaran akan membuat ReplicaSet
bahwa jadwal dan mengawasi pengumpulan Pod
untuk Penyebaran
.
Masing-masing Penyebaran
akan kemungkinan besar juga memerlukan Layanan
di depan untuk akses. Saya biasanya membuat satu file yaml yang memiliki Penyebaran
dan sesuai Service
di dalamnya. Berikut adalah contoh untuk sebuah nginx.yaml
yang saya gunakan:
apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
name: nginx
targetPort: 80
nodePort: 32756
selector:
app: nginx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginxdeployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginxcontainer
image: nginx:latest
imagePullPolicy: Always
ports:
- containerPort: 80
Berikut ini beberapa informasi tambahan untuk klarifikasi:
POD
tidak scalable unit. A Penyebaran
bahwa jadwal Polong ini.Penyebaran
dimaksudkan untuk mewakili satu kelompok Polong memenuhi satu tujuan bersama.Penyebaran
bekerja bersama-sama dalam jaringan virtual cluster.Penyebaran
yang dapat terdiri dari banyak Pod
berjalan pada node yang berbeda anda harus membuat sebuah Layanan.StatefulSet
bukan (misalnya untuk layanan database).Anda dapat menggunakan Kubernetes referensi API untuk Penyebaran dan anda'll menemukan bahwa spec
->template
lapangan adalah jenis PodTemplateSpec
bersama dengan terkait komentar (Template menjelaskan polong yang akan dibuat.) itu jawaban pertanyaan anda. Deskripsi yang lebih panjang tentu dapat ditemukan di Penyebaran panduan pengguna.
Untuk menjawab pertanyaan anda...
Pod
yang dikelola oleh Penyebaran
dan mendefinisikan mereka secara terpisah doesn't masuk akal karena mereka dibuat atas permintaan oleh Penyebaran. Perlu diingat bahwa mungkin ada lebih banyak replika yang sama jenis pod.
Untuk masing-masing aplikasi dalam daftar anda, anda'a harus menentukan satu Penyebaran
- yang juga masuk akal ketika datang untuk perbedaan replika penting dan aplikasi bertahap.
anda ingin't meminta itu, tapi itu's terkait - bersama dengan terpisah Penyebaran
masing-masing aplikasi anda juga akan membutuhkan dedicated Layanan
sehingga orang lain dapat mengaksesnya.