Docker

Skala Docker-Compose

Skala Docker-Compose
Bekas dermaga dimaksudkan untuk diperlakukan sebagai lembu, bukan binatang peliharaan. Ini bermaksud penciptaan, konfigurasi, pengurusan dan pelupusan mereka harus automatik dari atas ke bawah. Kami tidak membuat dan mengkonfigurasi bekas individu. Sebaliknya, kami membuat skala mendatar dengan memutar lebih banyak bekas.

Penskalaan mendatar merujuk kepada memusingkan lebih banyak komputer, i.e, VM, kontena atau pelayan fizikal untuk menampung lonjakan permintaan. Ini berbeza dengan penskalaan 'secara menegak ', yang biasanya merujuk kepada penggantian mesin yang lebih perlahan (dengan memori dan penyimpanan yang lebih kecil) dengan yang lebih cepat 'lebih besar ' satu.

Dengan penimbunan kedua-dua jenis bekas menjadi sangat dinamik. Anda dapat menetapkan kuota untuk aplikasi tertentu yang menetapkan jumlah CPU, memori atau penyimpanan yang mungkin dapat mereka akses. Kuota ini dapat diubah menjadi naik atau turun sesuai kebutuhan. Begitu juga, anda boleh membuat skala secara mendatar dengan memutar lebih banyak bekas yang akan menampung permintaan yang meningkat, dan kemudian menurunkannya dengan menghancurkan lebihan bekas yang anda buat. Sekiranya anda menggunakan perkhidmatan yang dihoskan awan yang menagih anda mengikut jam (atau minit), ini dapat mengurangkan bil hosting anda dengan ketara.

Dalam artikel ini kita hanya akan memfokuskan pada skala mendatar yang tidak dinamis seperti keterangan di atas, tetapi ini adalah titik permulaan yang baik bagi seseorang yang mempelajari asasnya. Jadi mari kita mulakan.

Skala melalui CLI docker-compose

Apabila anda memulakan timbunan aplikasi anda dengan meneruskan fail tulis ke CLI dok-tulis anda boleh menggunakan bendera -skala untuk menentukan skalabiliti perkhidmatan tertentu yang dinyatakan di sana.

Contohnya, untuk fail komposer docker saya:

versi: "3"
perkhidmatan:
laman web:
gambar: "nginx: terkini"
pelabuhan:
- "80-85: 80"
 
$ docker-compose up -d - web skala = 5

Di sini, perkhidmatan tersebut disebut web dalam deklarasi yml tetapi boleh menjadi komponen individu dari penyebaran anda, i.e, front-end web, pangkalan data, daemon pemantauan, dll. Sintaks umum memerlukan anda memilih salah satu elemen di bawah bahagian perkhidmatan peringkat atas. Juga bergantung pada perkhidmatan anda, anda mungkin perlu mengubah bahagian skrip yang lain. Sebagai contoh, rangkaian port host 80-85 diberikan untuk menampung 5 contoh kontainer Nginx yang semuanya mendengar di port dalaman mereka 80, tetapi host mendengar port yang bermula dari 80-85 dan mengarahkan lalu lintas dari setiap port unik ke salah satu Contoh Nginx.

Untuk melihat bekas mana yang mendapat nombor port, anda boleh menggunakan arahan:

$ pelabuhan ps -a
PERINTAH GAMBAR ID CONTAINER DIBUAT             
d02e19d1b688 nginx: daemon "nginx -g 'terbaru ..."  
34b4dd74352d nginx: "nginx -g 'daemon of…" terbaru kira-kira satu minit yang lalu  
98549c0f3dcf nginx: daemon "nginx -g 'terbaru ..."  
NAMA PELABUHAN STATUS
Naik Lebih kurang satu minit 0.0.0.0: 83-> 80 / tcp projek_web_1
Naik Lebih kurang satu minit 0.0.0.0: 82-> 80 / tcp projek_web_3
Naik Lebih kurang satu minit 0.0.0.0: 81-> 80 / tcp projek_web_2

Untuk membuat skala lebih dari satu perkhidmatan, anda perlu menyebutnya secara individu dengan skala bendera dan parameter nombor untuk memastikan bahawa jumlah kejadian yang diinginkan dibuat. Contohnya, jika anda mempunyai dua perkhidmatan yang berbeza, anda perlu melakukan sesuatu seperti ini:

$ docker-compose up -d --scale service1 = 5 - perkhidmatan skala2 = 6

Ini adalah satu-satunya cara untuk melakukan ini, kerana anda tidak dapat menjalankan perintah kelas-compose docker dua kali satu untuk setiap perkhidmatan. Dengan berbuat demikian, skala perkhidmatan sebelumnya akan kembali ke satu bekas.

Nanti kita akan melihat bagaimana anda dapat menetapkan nilai skala untuk gambar tertentu, dari dalam docker-compose.yml. Sekiranya terdapat pilihan skala yang ditetapkan dalam fail, nilai CLI yang setara untuk pilihan skala akan menggantikan nilai dalam fail.

Skala

Pilihan ini telah ditambahkan dalam fail file compose docker versi 2.2 dan secara teknikal boleh digunakan, walaupun saya tidak mengesyorkan menggunakannya. Ia disebutkan di sini demi kelengkapan.

Untuk komposer saya.fail yml:

versi: "2.2 "
perkhidmatan:
laman web:
gambar: "nginx: terkini"
pelabuhan:
- "80-85: 80"
skala: 3

Ini adalah pilihan yang betul. Walaupun ia berfungsi untuk Docker Engine 1.13.0 ke atas.

Gunakan Replika dalam Pengeluaran

Daripada menggunakan perintah skala atau nilai skala ketinggalan zaman dalam fail tulis anda, anda harus menggunakan pemboleh ubah replika. Ini adalah bilangan bulat sederhana yang berkaitan dengan perkhidmatan tertentu dan berfungsi sama seperti pemboleh ubah skala. Perbezaan penting adalah bahawa Docker Swarm secara eksplisit dimaksudkan untuk sistem diedarkan.

Ini bermakna anda boleh menggunakan aplikasi anda di beberapa nod VM atau pelayan fizikal yang berjalan di pelbagai kawasan dan beberapa pusat data yang berbeza. Ini membolehkan anda benar-benar mendapat keuntungan dari banyak keadaan perkhidmatan yang sedang berjalan.

Ini membolehkan anda meningkatkan aplikasi anda ke atas dan ke bawah dengan mengubah satu pemboleh ubah dan ia menawarkan ketahanan yang lebih besar terhadap waktu henti. Sekiranya pusat data dimatikan atau pautan rangkaian gagal, pengguna masih dapat mengakses aplikasi kerana contoh lain berjalan di tempat lain. Sekiranya anda menyebarkan penerapan aplikasi anda di beberapa wilayah geografi, e.g, EU, AS dan Asia Pasifik, ia akan mengurangkan kependaman pengguna yang ingin mengakses aplikasi anda dari wilayah tersebut.

Kesimpulannya

Walaupun skala komposisi docker berguna untuk persekitaran kecil seperti host Docker tunggal yang berjalan dalam pengeluaran. Ia juga sangat berguna untuk pembangun yang menjalankan Docker di stesen kerja mereka. Ini dapat membantu mereka menguji bagaimana aplikasi akan berskala dalam pengeluaran, dan dalam keadaan yang berbeza. Menggunakan perintah skala mengelakkan kerumitan untuk menyiapkan Docker Swarm yang baru.

Sekiranya anda menjalankan contoh Docker Swarm, jangan ragu untuk bermain-main dengan replika. Inilah dokumentasi mengenai perkara itu,

5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...