Kubernetes

Tutorial Set Replika Kubernetes

Tutorial Set Replika Kubernetes
Kubernetes sering dilihat sebagai kumpulan besar konsep yang saling terkait seperti node dan pod , layanan, penerapan, dll yang seringkali sulit untuk diuraikan. Dalam posting ini, mari kita perlahan mengungkap abstraksi kunci yaitu ReplicaSet. Kita akan mulai dengan membuat yang kecil .yaml untuk pod Kubernetes, yang akan memiliki label untuknya, dan kemudian membuat ReplicaSet yang akan memastikan bahwa sejumlah pod dengan label yang sama selalu berjalan di cluster . Inilah yang sebenarnya dimaksudkan oleh penulis proyek ketika mereka merancang Kubernetes. Jadi ayo mulai.

Prasyarat

Hal pertama yang Anda perlukan adalah akses ke cluster Kubernetes. Anda dapat membuatnya menggunakan Minikube atau menggunakan Docker untuk Windows atau Docker untuk Mac yang keduanya kini hadir dengan distribusi Kubernetes node tunggal yang dapat Anda aktifkan di pengaturan Docker.

Anda juga perlu memiliki pengetahuan apriori tentang Kubernetes. Inilah titik awal yang sangat bagus.

Membuat Pod

Biasanya, kami membuat pod menggunakan file yaml yang menentukan image container yang akan digunakan, port mana yang akan diekspos, dll. Berikut adalah file sederhana untuk membuat pod nginx.

apiVersi: v1
jenis: Pod
metadata:
nama:  nginx-1
label:
aplikasi: server web
spesifikasi:
wadah:
- nama : nginx
gambar: nginx: 1.7.9
port:
- containerPort: 80

Simpan dengan nama nginx-pod.yaml di direktori, dan kemudian dari dalam direktori yang sama jalankan perintah:

$ kubectl buat -f ./nginx-pod.yaml
## Verifikasi bahwa pod dibuat dengan menjalankan:
$ kubectl dapatkan pod

Anda akan melihat bahwa satu pod bernama "nginx-1" aktif dan berjalan. Tetapi Anda tidak dapat menskalakan pod tunggal ini. Lari kubectl buat lagi akan memberi Anda kesalahan karena namanya nginx-1 tidak dapat digunakan kembali lagi.

Kubernetes telah memberikan kemampuan membuat pod ke abstraksi yang lebih tinggi seperti Deployment dan ReplikaSet. Yang membuat pod dari template pod tertentu yang menentukan gambar apa yang akan digunakan, port apa yang akan ditampilkan di setiap pod baru, dll, tetapi tidak ada yang terlalu spesifik tentang satu pod. ReplicaSet (dan Deployment, juga) kemudian mulai membuat pod baru, memberi setiap pod baru nama yang unik serta label non-unik yang membantu ReplicaSet untuk melacak pod yang dibuat dari template yang diberikan.

ReplicaSet memastikan bahwa pada saat tertentu sejumlah pod dari label tertentu selalu aktif dan berjalan. Jika, misalnya, sebuah node mati, tugas ReplicaSet adalah membuat lebih banyak pod di seluruh node lain untuk mengkompensasi kehilangan. Untuk menulis file replikaset yaml, kita akan mengikuti pola yang mirip dengan menulis pod. Ini akan memiliki versi api (aplikasi/v1), jenis (ReplicaSet) dan nama di metadata. Replika itu sendiri dapat memiliki label di atasnya, tetapi kami akan menjaga semuanya tetap sederhana untuk saat ini dan hanya memberikan nama yang unik replika saya.

Kami kemudian perlu pindah dari metadata bagian untuk daging materi spesifikasi. Di sini kami memberikan jumlah ulangan yang kami inginkan di bawah bagian replika. Kemudian kami memberikan ReplicaSet ini a pemilih yang akan digunakan untuk mencocokkan label, katakanlah, aplikasi untuk suatu nilai, katakan, server web, di antara pod yang sedang berjalan. Jika jumlah Pod ini lebih sedikit, maka Pod akan dibuat sesuai dengan template yang diberikan dan menambahkan label yang sama ke Pod baru ini. Jika ada lebih banyak pod dari yang dibutuhkan, maka itu akan menghapus beberapa.

Menentukan template yang akan bertindak sebagai dasar untuk membuat pod baru adalah langkah yang paling terlibat. Template ini tidak akan memiliki nama, karena replicaset akan membuat nama baru untuk setiap pod baru yang dibuat. Akan tetapi, akan ada labelnya, dan Anda dapat melihat label yang sama aplikasi=server web bahwa template telah dipilih melalui pemilih parameter dalam spesifikasi replicaset.

apiVersi: aplikasi/v1
jenis: ReplicaSet
metadata:
nama: replika saya
 
spesifikasi:
replika: 3
pemilih:
label pertandingan:
aplikasi: server web
pola:
metadata:
label:
aplikasi: server web
spesifikasi:
wadah:
- nama : nginx
gambar: nginx: 1.7.9
port:
- containerPort: 80

Simpan file ini sebagai nginx-replicaset.yaml dan buat replikaset menggunakan perintah:

$ kubectl create -f nginx-replicaset.yaml

Karena kami sebelumnya membuat pod dengan label yang sama aplikasi=server web, replicaset hanya akan membuat dua pod lagi. Anda dapat membuat daftar semua pod menggunakan perintah:

$ kubectl dapatkan pod
NAMA                 SIAP     STATUS    MULAI ULANG   USIA
my-replicaset-nmvt9   1/1       Berjalan   0         9 detik
my-replicaset-xf9mx   1/1       Berjalan   0         9 detik
nginx-1              1/1      Berlari   0         28 detik

Setiap pod akan memiliki nama unik yang terkait dengannya. Seperti pod pertama yang kami buat memiliki nama nginx-1. Anda dapat mencoba menghapus yang ini menggunakan perintah:

$ kubectl hapus pod nginx-1
$ kubectl dapatkan pod
 
NAMA                 STATUS SIAP     STATUS    MULAI ULANG   USIA
my-replicaset-nmvt9   1/1       Berjalan   0         1m
my-replicaset-pkn4q   1/1       Berjalan   0         22 detik
my-replicaset-xf9mx   1/1       Berjalan   0         1m

Anda akan melihat bahwa hampir seketika pengontrol ReplicaSet membuat pod baru untuk menggantikan yang kami hapus. Dengan demikian memastikan bahwa jumlah pod yang berjalan, dengan label aplikasi=server web selalu 3, sebagaimana ditentukan dalam manifes replicaset kami, di atas.

Anda mendapatkan banyak kontrol berkat label dan penyeleksi. Anda dapat menyebarkan pod lebih lanjut ke beberapa node menggunakan nodeSelectors, yang digunakan untuk mengalokasikan sejumlah pod pada node tertentu.

Apa yang tidak diizinkan oleh replika adalah pembaruan. Jika versi aplikasi Anda yang lebih baru, katakanlah, nginx:1.8 datang, Anda harus menghapus replika ini dan membuat yang baru dengan gambar yang disebutkan dalam manifes yaml replika itu. Di sinilah konsep penyebaran berguna. Ini mencakup gagasan replika dan perluasan dengan memberikan dukungan tambahan untuk memperbarui aplikasi Anda. Sekarang setelah Anda merasa nyaman dengan replika, mungkin ada baiknya untuk melihat Deployment Kubernetes.

Referensi

  1. Membuat Pod
  2. Membuat ReplicaSet
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...
Trackpad dan Mouse Pointer di Layar AppyMouse untuk Tablet Windows
Pengguna tablet sering melewatkan penunjuk mouse, terutama ketika mereka terbiasa menggunakan laptop. Layar sentuh Smartphone dan tablet hadir dengan ...
Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...