Kubernetes

Tutorial ReplikaSet Kubernetes

Tutorial ReplikaSet Kubernetes
Kubernetes sering dilihat sebagai sekumpulan besar konsep yang saling berkaitan seperti nod dan pod, perkhidmatan, penyebaran, dan lain-lain yang sering sukar untuk dileraikan. Dalam catatan ini, mari kita perlahan-lahan membongkar abstraksi utama yang merupakan ReplicaSet. Kita akan mulakan dengan membuat yang kecil .fail yaml untuk pod Kubernetes, yang akan mempunyai label padanya, dan kemudian buat ReplicaSet yang akan memastikan sebilangan pod dengan label yang sama selalu berjalan di kluster . Inilah yang sebenarnya dimaksudkan oleh pengarang projek ketika mereka merancang Kubernetes. Jadi mari kita mulakan.

Prasyarat

Perkara pertama yang anda perlukan adalah akses ke kluster Kubernetes. Anda boleh membuatnya menggunakan Minikube atau menggunakan Docker untuk Windows atau Docker untuk Mac yang kedua-duanya kini dilengkapi dengan sebaran Kubernetes nod tunggal yang boleh anda aktifkan dalam tetapan Docker.

Anda juga perlu mempunyai pengetahuan apriori mengenai Kubernetes. Inilah titik permulaan yang sangat baik.

Membuat Pod

Biasanya, kami membuat pod menggunakan fail yaml yang menentukan gambar bekas apa yang akan digunakan, port yang akan didedahkan, dll. Berikut adalah fail mudah untuk membuat pod nginx.

apiVersion: v1
jenis: Pod
metadata:
nama: nginx-1
label:
aplikasi: pelayan laman web
spesifikasi:
bekas:
- nama: nginx
gambar: nginx: 1.7.9
pelabuhan:
- bekasPort: 80

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

$ kubectl buat -f ./ nginx-pod.keladi
## Sahkan bahawa pod dibuat dengan menjalankan:
$ kubectl dapatkan pod

Anda akan melihat bahawa satu pod dinamakan "Nginx-1" habis dan berjalan. Tetapi anda tidak dapat membuat skala satu pod ini. Berlari kubectl buat sekali lagi akan memberi anda kesalahan sejak namanya nginx-1 tidak boleh digunakan semula.

Kubernetes telah memberikan keupayaan untuk membuat pod ke abstraksi yang lebih tinggi seperti Penyebaran dan Set Replika. Yang membuat pod dari templat pod tertentu yang menentukan gambar yang akan digunakan, port apa yang akan didedahkan di setiap pod baru, dan lain-lain, tetapi tidak ada yang terlalu spesifik mengenai satu pod. ReplicaSet (dan Deployment juga) kemudian membuat pod baru, memberikan setiap pod baru dengan nama yang unik dan juga label yang tidak unik yang membantu ReplicaSet untuk mengikuti pod yang dibuat dari templat tertentu.

ReplicaSet memastikan bahawa pada sekelip mata sebilangan pod label tertentu sentiasa aktif. Sekiranya, sebagai contoh, node turun, adalah tugas ReplicaSet untuk membuat lebih banyak pod di nod lain untuk mengimbangi kerugian. Untuk menulis fail yaml replika, kami akan mengikuti corak yang serupa dengan menulis pod. Ia akan mempunyai versi api (aplikasi / v1), jenis (ReplicaSet) dan nama dalam metadata. Set replika itu sendiri boleh mempunyai label di atasnya, tetapi kami akan memastikan perkara-perkara mudah buat masa ini dan hanya memberikan nama yang unik my-replicaset.

Kita kemudian perlu bergerak dari metadata bahagian ke daging jirim spek. Di sini kami memberikan bilangan ulangan yang kami mahukan di bawah bahagian replika. Kemudian kami memberikan ReplicaSet ini pemilih yang akan digunakan untuk memadankan label, katakan, aplikasi untuk nilai, katakan, pelayan laman web, antara pod yang sedang berjalan. Sekiranya terdapat lebih sedikit pod ini, maka ia akan membuat pod mengikut templat yang diberikan dan menambahkan label yang sama pada pod baru ini. Sekiranya terdapat lebih banyak pod daripada yang diperlukan, maka ia akan memadamkan beberapa.

Menentukan templat yang akan berfungsi sebagai asas untuk membuat pod baru adalah langkah yang paling terlibat. Templat ini tidak akan mempunyai nama, kerana replika set akan membuat nama baru untuk setiap pod baru yang dibuat. Wasiat itu mempunyai label, bagaimanapun, dan anda dapat melihat label yang sama aplikasi = pelayan laman web bahawa templat telah dipilih melalui pemilih parameter dalam spesifikasi replika.

apiVersion: aplikasi / v1
jenis: ReplikaSet
metadata:
nama: my-replicaset
 
spesifikasi:
replika: 3
pemilih:
matchLabels:
aplikasi: pelayan laman web
templat:
metadata:
label:
aplikasi: pelayan laman web
spesifikasi:
bekas:
- nama: nginx
gambar: nginx: 1.7.9
pelabuhan:
- bekasPort: 80

Simpan fail ini sebagai nginx-replicaset.yaml dan buat replika dengan menggunakan arahan:

$ kubectl buat -f nginx-replicaset.keladi

Kerana sebelum ini kami membuat pod dengan label yang sama aplikasi = pelayan laman web, replika set hanya akan membuat dua lagi pod. Anda boleh menyenaraikan semua pod menggunakan arahan:

$ kubectl dapatkan pod
NAMA READY STATUS RESTARTS UMUR
my-replicaset-nmvt9 1/1 Berlari 0 9s
my-replicaset-xf9mx 1/1 Berlari 0 9s
nginx-1 1/1 Berlari 0 28s

Setiap pod akan mempunyai nama unik yang berkaitan dengannya. Seperti pod pertama yang kami buat mempunyai nama nginx-1. Anda boleh mencuba memadamnya dengan menggunakan arahan:

$ kubectl hapus pod nginx-1
$ kubectl dapatkan pod
 
NAMA READY STATUS RESTARTS UMUR
my-replicaset-nmvt9 1/1 Berlari 0 1m
my-replicaset-pkn4q 1/1 Berlari 0 22s
my-replicaset-xf9mx 1/1 Berlari 0 1m

Anda akan menyedari bahawa hampir seketika pengawal ReplicaSet membuat pod baru untuk menggantikan yang kami padamkan. Oleh itu memastikan bahawa bilangan pod yang berjalan, dengan label aplikasi = pelayan laman web selalu 3, seperti yang dinyatakan dalam manifes replikaset kami, di atas.

Anda mendapat banyak kawalan berkat label dan pemilih. Anda boleh menyebarkan pod lebih banyak di beberapa nod menggunakan nodeSelectors, yang digunakan untuk memperuntukkan sejumlah pod pada nod tertentu.

Apa yang tidak dibenarkan oleh replika ialah kemas kini. Sekiranya versi aplikasi anda lebih baru, katakan, nginx: 1.8 datang, anda perlu memadam replika ini dan membuat yang baru dengan gambar yang disebutkan dalam manifes yaml replikaaset ini. Di sinilah konsep penyebaran berguna. Ini merangkumi idea replika dan diperluas dengan memberikan sokongan tambahan untuk mengemas kini aplikasi anda. Setelah anda selesa dengan replika, mungkin ada baiknya anda melihat Kubernetes Deployments.

Rujukan

  1. Membuat Pod
  2. Membuat ReplikaSet
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...
Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...