‫Baiklah.
‫Di mana pun Anda menjalankan Docker, kami sebenarnya dapat membuat segerombolan simpul tunggal untuk tujuan pengujian kami
‫sendiri.
‫Cara saya mengetahui apakah Swarm aktif atau tidak, saya bisa melakukan info buruh pelabuhan dan Anda akan melihat Swarm tidak
‫aktif.
‫Jadi kita tahu bahwa Swarm belum diaktifkan di sini. Sekali lagi, secara default, Docker tidak mengaktifkan
‫salah satu fitur Swarm.
‫Saya dapat menjalankan init buruh pelabuhan untuk menginisialisasi. Butuh sekitar setengah detik dan kita selesai.
‫Apa yang kita miliki sekarang adalah segerombolan node tunggal dengan semua fitur dan fungsi yang kita dapatkan di
‫luar kotak.
‫Jadi itu mungkin demo terpendek dari seluruh kursus ini.
‫Maksud saya, apa yang baru saja terjadi? Kami mengetik satu perintah dan sihir. Sebenarnya bukan sihir.
‫Itu banyak hal yang sangat cepat dan efisien dalam pemrograman Go dari Docker, tetapi pada dasarnya, tepat di
‫luar
‫kotak, ia melakukan banyak hal PKI dan keamanan. Ini menciptakan sertifikat root untuk segerombolan yang akan digunakan
‫untuk membangun kepercayaan dan menandatangani sertifikat untuk semua node dan semua manajer. Ini akan membuat sertifikat khusus untuk
‫simpul manajer pertama ini karena itu adalah manajer versus pekerja.
‫Kemudian ia menciptakan token ini yang sebenarnya bisa kita gunakan pada node lain untuk bergabung dengan segerombolan ini.
‫Kemudian banyak hal lain di latar belakang di mana ia memungkinkan API yang berkerumun dan menciptakan sesuatu yang
‫disebut Basis Data Konsensus Raft, yang akan kita bicarakan nanti di bagian produksi kursus.
‫Asal tahu saja, Raft adalah protokol yang benar-benar memastikan konsistensi di beberapa node, dan itu ideal untuk digunakan
‫di Cloud di mana kami tidak dapat menjamin bahwa satu hal akan tersedia untuk
‫setiap saat.
‫Itu menciptakan database pada disk. Ia menyimpan konfigurasi swarm, dan
‫manajer pertama itu, dan itu benar-benar mengenkripsi.
‫Dengan asumsi Anda berada di Versi 1. 13 atau lebih baru. Kemudian akan menunggu node lain
‫sebelum mulai mereplikasi database ke mereka.
‫Sekali lagi, semua traffic ini yang akan dilakukan setelah kita membuat node lain semua akan dienkripsi.
‫Salah satu komponen kunci dari Swarm yang membedakannya ketika pertama kali keluar
‫adalah bahwa kita tidak memerlukan sistem penyimpanan nilai kunci tambahan atau beberapa arsitektur basis data untuk menjadi manajemen
‫konfigurasi backend dari kawanan kita.
‫Jika Anda telah berkecimpung di industri ini selama bertahun-tahun atau bahkan puluhan tahun, ada konsep ini biasanya
‫dari config db, yang merupakan sistem basis data terpisah yang biasanya perlu Anda buat menjadi redundan yang akan menyimpan
‫semua informasi tentang sistem pengaturan dan otomatisasi Anda. Swarm sebenarnya telah membangun itu
‫langsung ke Docker tepat ke daemon dan menanganinya untuk kita.
‫Kami tidak pernah benar-benar perlu melakukan apa pun. Tidak ada kata sandi yang perlu dikhawatirkan. Tidak ada layanan
‫khusus untuk memulai atau semacamnya.
‫Jadi, kembali ke baris perintah.
‫Anda akan melihat di sini bahwa itu berbicara tentang ... jika saya ingin menambahkan pekerja ke
‫gerombolan, saya hanya perlu memotong dan menempelkan ini ke server lain yang akan saya tambahkan.
‫Nantinya, kita sebenarnya akan membangun multi-node swarm, tetapi untuk sekarang, kita hanya akan
‫menyimpan ini di satu node. Mari kita lihat beberapa perintah yang akan keluar darinya.
‫Hal pertama yang bisa kita lakukan adalah docker node ls. Dalam hal ini, kami hanya melihat satu simpul manajer yang telah
‫kami buat.
‫Anda akan melihat itu ditandai sebagai pemimpin, dan hanya ada satu pemimpin pada suatu waktu di antara semua manajer.
‫Sekali lagi, karena kita hanya punya satu, maka jelas itu pemimpinnya. Kami dapat melihat bantuan untuk melihat
‫opsi apa yang kami miliki di sini. Sungguh, perintah node yang digunakan untuk membawa masuk dan
‫keluar server Anda, atau mempromosikannya dari pekerja ke manajer, atau menurunkan mereka dari manajer kembali ke pekerja.
‫Jika Anda kembali sedikit perintah galangan dermaga, kami akan melihat bahwa itu sebenarnya adalah ruang lingkup yang sangat sempit
‫untuk perintah.
‫Ini hanya untuk menginisialisasi, baik bergabung atau pergi.
‫Perintah membuka kunci baru, yang bisa kita bicarakan dalam kuliah nanti
‫Untuk saat ini, mari kita fokus pada perintah layanan Docker baru yang menarik.
‫Sekali lagi, layanan dalam segerombolan menggantikan menjalankan Docker.
‫Saya tidak tahu pasti, tetapi saya benar-benar berpikir bahwa ini berpusat pada gagasan bahwa
‫kami tidak ingin merusak fungsi run Docker yang ada, tetapi run Docker selalu dibangun dari bawah ke atas
‫sebagai solusi host tunggal.
‫Seluruh idenya adalah untuk fokus pada wadah lokal pada sistem yang ia ajak bicara. Padahal, ketika kita mulai berbicara
‫tentang sebuah cluster, kita tidak terlalu peduli tentang node individual.
‫Kami sebenarnya tidak mungkin menyebutkan nama mereka. Kami memperlakukan mereka seperti sapi, jika Anda pernah
‫mendengar tentang analogi hewan peliharaan versus sapi di mana mereka hanya sebuah angka.
‫Kami tidak benar-benar secara individual pergi ke setiap node dan memulai wadah individu.
‫Kami benar-benar hanya melempar persyaratan di gerombolan dalam bentuk layanan dan kemudian akan mengatur bagaimana perlu meletakkan semua itu,
‫di mana simpul mereka harus, dan kami hanya tahu bahwa
‫itu ada di belakang kami. layanan pembuatan docker adalah
‫cara kami memberikan beberapa pesanan baru. Mari kita lakukan sesuatu yang sangat sederhana.
‫Sebenarnya mari kita mulai gambar Alpine. Lalu kita akan memiliki gambar Alpine hanya menggunakan ping
‫untuk menekan 8. 8. 8. 8, yang sebenarnya adalah server DNS Google, tetapi kami benar-benar
‫hanya ingin memberikan sesuatu untuk dilakukan saat kami menyelidiki apa yang terjadi.
‫Maka Anda akan melihat seperti buruh pelabuhan berlari, itu meludahkan kembali ID, hanya saja itu bukan ID kontainer. Itu sebenarnya ID
‫layanan.
‫Anda akan melihat bahwa kami sekarang memiliki satu layanan yang terdaftar. Sama seperti dengan perintah run docker kami,
‫karena
‫kami tidak menamainya, itu memberinya nama acak. Kita dapat melihat bahwa itu sebenarnya sudah berputar.
‫Yang satu. Ketika Anda melihat layanan, Anda akan selalu melihat nomor
‫ini dengan a / di tengah. Yang mewakili satu di sebelah kiri adalah berapa banyak yang benar-benar berjalan.
‫Dan yang di sebelah kanan adalah berapa banyak yang Anda tentukan untuk dijalankan.
‫Tujuan dari orkestra adalah untuk membuat angka-angka ini cocok, apa pun yang terjadi.
‫Tapi ini lagi tidak benar-benar menunjukkan kepada kita wadah yang sebenarnya.
‫Ini benar-benar hanya menunjukkan kepada kami daftar layanan kami, sehingga kami dapat menelusuri sedikit lebih jauh.
‫Kami melakukan layanan buruh pelabuhan ps, dan kemudian kami memberikan nama atau ID layanan, dan itu benar-benar akan menunjukkan
‫kepada kami tugas atau wadah untuk layanan ini. Anda akan melihat bahwa itu mirip dengan perintah docker container
‫ls, tetapi sebenarnya sekarang memiliki komponen node ini karena ketika Anda berurusan dengan skenario multi server, kita
‫mungkin perlu tahu server mana yang sebenarnya berjalan. Anda akan melihat bahwa
‫itu sebenarnya memberi nama kenaikan pada nama layanan.
‫Jika kita kembali ke perintah buruh pelabuhan kontainer, itu masih berfungsi.
‫Dalam hal ini, orkestra Swarm sebenarnya menambahkan beberapa informasi ke nama dan gambar
‫aktual yang sedang berjalan. Kami akan membahas beberapa perbedaan kecil itu nanti.
‫Untuk sekarang, mari kita ambil layanan itu dan tingkatkan itu. Untuk itu, kami menggunakan pembaruan layanan buruh pelabuhan, dan kemudian
‫nama layanan kami, atau ID dalam hal ini, saya akan melakukan ID. Dan saya ingin mengubah atribut tentang
‫layanan ini.
‫Dalam hal ini, saya ingin mengubah jumlah replika.
‫Jadi jika kita melakukan layanan buruh pelabuhan lagi, kita sekarang melihat tiga dari tiga. Jika kita melakukan layanan buruh pelabuhan ps, kita sebenarnya
‫sekarang melihat tiga tugas. Anda akan melihat bahwa dua dibuat beberapa detik yang lalu.
‫Jika kami cukup cepat, dan jika kami menggunakan sesuatu yang cukup besar, kami benar-benar dapat menjalankan layanan dan
‫benar-benar melihatnya menunjukkan nol dari tiga. Satu dari tiga.
‫Ini benar-benar akan bertambah saat semuanya mulai. Kebetulan Alpine sudah ada di mesin ini, dalam
‫hal gambarnya, dan tidak butuh waktu lama untuk memulai perintah ping.
‫Kami tidak bisa secepat itu.
‫Yang menarik tentang perintah pembaruan itu adalah Anda bisa membayangkan perbedaan antara perintah run
‫Docker yang mungkin Anda gunakan pada satu dev atau server pengujian atau pada mesin lokal
‫Anda, dan kekhawatiran produksi untuk selalu menjaga sesuatu
‫tersedia sebanyak mungkin.
‫Itulah salah satu tujuan desain Swarm. Perintah yang sebenarnya belum
‫kita gunakan adalah perintah pembaruan Docker. Itu adalah perintah untuk menjalankan wadah Docker yang memungkinkan
‫kami untuk memperbarui variabel tertentu pada wadah kami berjalan tanpa harus membunuhnya dan memulai kembali.
‫Hampir semua opsi itu terkait dengan membatasi dan mengendalikan penggunaan sumber daya untuk wadah itu.
‫Karena itulah salah satu hal khas yang Anda lihat ketika Anda menjalankan aplikasi jangka
‫panjang adalah bahwa Anda perlu mengubah sumber dayanya mungkin karena basis data semakin besar dan membutuhkan lebih banyak RAM.
‫Atau mungkin Anda memiliki proses di luar kendali yang memakan terlalu banyak CPU dan Anda perlu membatasi itu.
‫Jika kami membantu perintah pembaruan layanan buruh pelabuhan, Anda akan melihat bahwa kami memiliki lebih banyak opsi.
‫Karena tujuan dari layanan Swarm adalah ia dapat mengganti kontainer dan memperbarui perubahan
‫dalam layanan tanpa menghapus semuanya.
‫Jika Anda memiliki layanan dengan tiga kontainer di dalamnya, Anda dapat secara teknis mencatat satu per satu untuk membuat perubahan dan melakukan semacam pembaruan
‫yang bergulir, yang merupakan pola hijau biru yang kita bicarakan. Itu sebabnya kami melihat lebih banyak opsi
‫di sini adalah karena kami dapat mengubah opsi ini yang mungkin memerlukan
‫wadah restart, tetapi gerombolan akan secara cerdas memastikan bahwa cara kami memperbaruinya dalam pola yang
‫memastikan ketersediaan yang konsisten.
‫Jadi kembali ke daftar kontainer buruh pelabuhan kami sangat cepat. Anda akan melihat bahwa kita memiliki ketiganya sekarang,
‫dan bagaimana jika saya masuk dan, seperti bajingan, melakukan buruh pelabuhan buruh pelabuhan, dan saya menentukan salah satu wadah
‫ini, dan saya memaksanya ... katakanlah saya mengalahkan yang pertama dan hanya mengeluarkannya.
‫Baiklah.
‫Sekarang saya melakukan layanan buruh pelabuhan, dan Anda lihat caranya dua atau tiga?
‫Karena saya masuk di belakang bagian belakang Swarm dan saya benar-benar mengambil sebuah wadah berlari,
‫itu akan mengidentifikasi itu dan akan meluncurkan yang baru dalam hitungan detik untuk menggantikan yang
‫turun.
‫Jadi jika saya melakukan layanan buruh pelabuhan ps pada dingin, Anda akan melihat bahwa itu benar-benar menunjukkan sejarah tugas pertama di sini dalam daftar
‫adalah bahwa ia memiliki yang gagal dan mulai yang baru 24 detik yang lalu.
‫Ini adalah salah satu tanggung jawab sistem orkestrasi wadah adalah untuk memastikan bahwa layanan yang
‫Anda tentukan selalu berjalan, dan jika gagal, ia
‫pulih dari kegagalan itu. Mana yang berbeda dari run docker, kan? buruh pelabuhan tidak akan
‫pernah membuat ulang sebuah wadah.
‫Jadi itu sebabnya setiap kali kita melakukan salah satu dari perintah layanan Docker ini, kita sebenarnya
‫tidak berbicara langsung ke tindakan seperti membuat wadah.
‫Kami benar-benar memberi tahu sistem orkestrasi, hei letakkan pekerjaan ini dalam antrian Anda.
‫Ketika Anda bisa sampai ke sana, silakan lakukan tindakan di gerombolan yang saya tanyakan di sini. Itu perbedaan besar.
‫Ini halus di baris perintah, tapi ini perbedaan besar karena itu berarti ada kemungkinan rollback.
‫Ada mitigasi kegagalan dan banyak kecerdasan dibangun ke dalamnya.
‫Dalam hal ini, jika saya benar-benar ingin menghapus semua wadah
‫ini, saya harus menghapus layanan ini. Saya harus melakukan layanan buruh pelabuhan rm.
‫Dan kemudian sangat dingin.
‫Jika kita melakukan layanan buruh pelabuhan, kita tidak melihat apa-apa. Jika kita melakukan
‫kontainer buruh pelabuhan, kita melihat tiga kontainer.
‫Oh dan begitulah.
‫Itu menunjukkan di sana otomatisasi terjadi di backend.
‫Kami dapat dengan cepat menunjukkan bahwa kami menghapus layanan, tetapi sistem orkestrasi belum melalui
‫semua proses pembersihan layanan dan tugas di belakangnya. Konsep-konsep ini harus cukup mudah dipahami karena mereka
‫hanya benar-benar berkembang pada konsep Docker run yang telah kami miliki sebelumnya dalam
‫kursus ini.
‫Selanjutnya, mari kita benar-benar membangun banyak simpul multi dan mulai menskalakan wadah kita.