‫Artık, çok düğümlü bir sürü oluşturma ve yer paylaşım ağları ve Docker hizmetleri oluşturma temellerini anladığınıza göre, yığınlar
‫olan Swarm ile ilgili bir sonraki gerçekten harika şey üzerinde duracağız. Krep yığınları değil,
‫hizmet yığınları. 1'de. 13, Docker yığınların üstünde bir
‫soyutlama katmanı ekleyen bu harika özelliği ekledi. Temelde Swarm'un üretimi için dosyalar oluşturun. Artık yığınlar Oluştur
‫dosyaları kabul ediyor.
‫İçinde beyan edici bir tanım diye adlandıracağımız şey var, burada sonuçta
‫olmasını istediğimiz şey budur.
‫Ve hepsini çözmek işin peşinde. hizmetler değil; Ağlar ve hacimler de var.
‫Artık sadece
‫Ve biraz gizlice bakış.
‫Aslında sırları da içerecek, ki bunları önümüzdeki birkaç dersimizde konuşacağız.
‫Bu Oluştur dosyasını içe aktarmak ve içine koyduğumuz komutu çalıştırmak için docker yığını dağıtılan yeni bir
‫komut kullanacağız.
‫Yığın hepsini yönetir.
‫Gitmemiz ve ilk önce ağlar oluşturmamız veya ilk olarak birimler oluşturmamız gerekmiyor, ancak bunu tamamen yapabiliriz.
‫için Yazım dosyamızda Harici adlı bir şey kullanabilirsiniz; bunlar zaten sürücümüzde var olan şeylerdir.
‫Hey diye seslemek Devam edin ve bunları kullanın, bunları yaratmaya zahmet etmeyin.
‫Ancak genellikle yığınlarınızın sadece sizin için hepsini yapmasını sağlarsınız, çünkü bu şekilde daha kolaydır.
‫Kompozisyon dosyamızda bazı yeni özellikler edineceğiz, bu yüzden daha önce sahip
‫olduğumuz şeylere çok benzer yeni başlıklar ile başlayacağız. Fakat biz, Swarm'e özgü şeyleri belirtmemizi sağlayan
‫bu yeni konuşlandırılmış anahtarı oraya veya sözlükte alacağız.
‫Kaç tane kopyayı istiyoruz?
‫Yük devrettiğimizde ne yapmak istiyoruz? Yuvarlanan güncellemeleri ve yerel geliştirme
‫makinesinde umursamadığımız her türlü şeyi nasıl yapmak isteriz.
‫Fakat bu bir fiyata geliyor, yani inşaat komutunu henüz yapamayız. Bu, Swarm'de asla olmayacak
‫bir şey olabilir, çünkü buradaki zihniyet, o binanın üretim grubunuzda
‫olmaması gerektiğidir. Yapı, CI sisteminizin yapması gereken şeydir.
‫Belki Jenkins ya da Kodluluk gibi başka bir şey olabilir.
‫Resimlerinizi oluşturup bunları deponuza koyduktan sonra bu yığın aslında bu görüntüleri
‫çekip dağıtma seçenekleriyle dağıtacak olan yığın olacaktır.
‫İyi haber şu ki, aslında orada geçiyorlar.
‫Yerel makinenizde, Oluşturucu Oluşturma komutunu çalıştırdığınızda Oluştur öğesi gerçekten yoksayılır.
‫Aslında
‫dağıtma bilgilerinden hiçbirini yok saymaz. Gerçekten 'hey, burada bilgi dağıtmışsın' derim.
‫Gerçekten kullanamıyorum, böylece onu görmezden geleceğim. Aynı şekilde,
‫Swarm'da olduğunuzda ve yeni bir yığın veya bir yığının güncellemesini dağıtıyorsanız, aslında 'hey,
‫burada yapım komutlarınız var demek.'
‫İnşaat yapmıyorum, o yüzden onları görmezden gideceğim ve devam edeceğim. 'Güzel şey, dosyanızı
‫değiştirmek zorunda değilsiniz. üretim dağıtımı tarafında yapmamız gereken
‫her şeyi yapan tek bir Oluşturma dosyasına nasıl sahip olduğumuzu daha sonra göreceğiz.
‫Geliştirme tarafında ve
‫Oldukça güzel.
‫Son olarak, gerçekte Docker Compose CLI'ye, ikiliğe ihtiyaç duymazsınız. Senin sürüsünde
‫olması gerekmiyor. Çünkü tekrar oluşturmak, gerçek komut bir üretim aracı değildir.
‫Üretim için tasarlanmamıştı.
‫Geliştirici ve sysadmin yardımcı aracı olacak şekilde tasarlanmıştır.
‫Makinelerimizdeki yerel çalışmalar için gerçekten çok iyi.
‫Temelde Docker Motoru olan sürüler. kullanarak dosyaları oluşturmayı kabul edebilir.
‫Docker Motoru artık bu yığın komutunu Sunucuda herhangi bir yere Docker Yapılandırmaya gerek duymadan Compose files (Kompozisyon dosyaları) bölümünü okur.
‫Hizmetlerimize baktığımızda gerçek çabayı gözden geçirelim.
‫Hizmetimizin bu şekilde görüneceği şey budur. diyelim ki Nginx Ve biz bunun üç kopyasını belirttik diyelim.
‫Bir hizmet yaratacağız. diyelim. Böylece orkestratörde üç görev oluşturur ve bu
‫görevler onları yerleştirmek için belirli sunucuları veya düğmeleri bulur ve kapsayıcılar oluştururlar.
‫Yeni yığınlarda, bir veya daha fazla sağdan bahsediyoruz. Orada onlarca servis
‫alabilirsiniz. O tek YAML dosyasında.
‫gibi davranıyorlar, ancak şimdi yalnızca biraraya gelerek bu Oluşturma dosyasına ağlar yerleştireceğiz.
‫Tıpkı daha önce sahip olduğumuz hizmetler Ve
‫bu, yığın dediğimiz şeyle sonuçlanır. Bir yığın tüm bu şeyleri kontrol eder.
‫Ve aslında hangilerinin hangi yığınla ilişkili
‫olduğunu kolayca söyleyebilmeniz için ismini tüm nesnelerde düzgün şekilde gösterecektir. Aslında etiketleri de oraya koyacağız;
‫bunları daha sonra ele alacağız; bu, hangi özelliğin hangi yığının geldiğini belirleyebilmeniz için meta veriler.
‫Bu gerçekten harika.
‫Artık hizmet komutlarını yazmak istemediğimiz tüm şeyleri yapmak için bir YAML
‫dosyası kullanmaya başladık. Çünkü servis komutları zaten çok hantal ve uzun sürüyordu. sıkıcı, doğru yaptı.
‫Ve sonra bu komutları çalıştırmak için Bash komut dosyaları hazırlamaya karar verdik, sonra da
‫Dolayısıyla sekiz ay boyunca
‫Swarm'la karşılaştığımız için şu anda bu hizmetleri yöneten yığın özelliğine sahibiz.
‫İstifin yalnızca bir sürü için olduğuna dikkat edin.
‫Sağ? Bir sürü sürü yapamaz.
‫Sadece bir sürü üzerinde çalışacak ve böylece tüm düğümleri kontrol edebilecek ve tüm bu hizmetleri,
‫ağları ve birimleri dağıtabilecektir.
‫olmak daha başka bir şey olabilir diyebilirim, çünkü yığın bunları da kontrol edebilir.
‫Bu diyagramda aslında içinde sır Bunu bir sonraki bölümde göreceğiz. TAMAM.
‫Şimdi yığınlara ve bunların nasıl çalıştıklarına göz atalım.
‫Daha önce inşa ettiğim 3 düğümlü sürülerime geri döndüm. Gerçekten diğer iki düğüme ihtiyacım olmadığı için düğüm1
‫üzerindeki pencereyi en üst düzeye çıkaracağım.
‫En azından ssh komut satırına ihtiyacım yok.
‫Bu bölüm için önceki derslerde yaptığımız oylama uygulaması örneğini kullanacağız.
‫Bunun için tasarımımızı
‫hatırlıyorsanız, beş farklı hizmettir ve hepsinin birbirine bağımlılıkları vardır.
‫Ve nihai olarak bize iki farklı web sitesi verdi.
‫Geçildiniz ve ihtiyacınız
‫olan tüm değerler ve seçeneklerle en iyi servis listesini hazırladığınızdan eminim, doğru muydu?
‫Buraya artık söylemiyorum, artık gerekli değil.
‫Onları kullanmak gerçekten çok önemli ve her şey bir yığın dosyasına ihtiyaç duymayacak.
‫Ama şimdi bir yığın dosyası var.
‫Gerçekten hızlı bir göz atalım çünkü onun
‫Kompozisyon dosyasına çok benzediğini göreceksiniz. değiştirmeniz gereken tek gerçek anahtar şey.
‫En azından sürüm 3 veya daha üstü olması gerektiği için
‫En yeni sürümü şu anda sürüm 3'tür. 1, ancak değişmeye ve olgunlaşmaya devam ederse
‫değişecektir.
‫Ancak yığınları kullanmak için sürüm 3'e ihtiyacınız var.
‫Yeniden yola koyulmamız, db'mız ve
‫oylamamızın ve muhtemelen kendi eserinizde sizinle çok benzer tüm bu şeylerin olduğunu fark edeceksiniz. Muhtemelen bunlara ve ihtiyaç duydukları görüntülere, ve
‫ihtiyaç duydukları limanlara ve bunların hepsine çok aşinasınızdır.
‫Ancak bu durumda dağıtımı göreceksiniz.
‫Buraya dağıtmak yeni bir seçenektir. Burada, kaç kopyayı istediğinizi belirttiğimi
‫göreceksiniz; bu, bir defada kaç resmin çalışması gerektiğini gösteriyor.
‫Ve ne zaman bir güncelleme yaparsam olurum.
‫Böylece güncel bir yığın güncellemesi yaptığımda hizmet güncellemeleri yapılacak.
‫Nasıl yayılmasını isterim?
‫Sağ?
‫Hepiniz aynı anda aşağı inmek istiyor musunuz? Ben sadece birer tane istermiyim?
‫Aralarındaki gecikme ne kadar?
‫Burada her türlü seçenek var.
‫Yüzeyi çizmekten başka bir şey yapmıyoruz, ancak kapta arıza olduğunda
‫otomatik olarak yeniden başlatma politikamız varmış gibi görebilirsiniz.
‫Veritabanının altında burayı görebilirsiniz, aslında belirli bir düğümde olduğundan
‫emin olmak için kısıtlamalar koymuştum.
‫Henüz kısıtlamalar hakkında fazla konuşmadık, ancak nesneleri,
‫yani konteynerleri veya resimleri veya Swarm'de veya Docker'ın kendisinde yaratabilir veya yok edebileceğimiz herhangi bir şeyi etiketlemek için yollar vardır.
‫yönetici olan bir düğüm kendi etiketlerini alır.
‫Aslında düğümler de dahil olmak üzere bunlardan herhangi birine etiket atayabiliriz ve
‫Bu, bizim için, bu konteynırın bu özel rolü olan bir düğüm üzerinde çalışması gerektiğini söylemek için
‫çok kolay.
‫Harika örnek orada. Aşağı kaydırdığımızda, daha önce gördüğümüz bazı paralellik seçeneklerine sahibiz.
‫Bu gecikme seçeneği çok hoş. Konteynırlar dönerken
‫ısınmaya başlama zamanı varsa. Belki başlamışlardır ama aslında 60 saniyeliğine canlı yaşamazlar.
‫Orada gecikme ekleyebilirsiniz. Aslında, üretim mavi-yeşil dağıtımları
‫sırasında bunlara bakacağız. Şimdilik, hepsinin oldukça standart olduğunu görebilirsiniz.
‫Aslında burada daha da fazla seçenek var. Aslında bunu belirli bir etiket atadığımı görebilirsiniz.
‫Yeniden başlatma politikası için bir pencere ve azami girişimi var.
‫Yeniden başlatmaya çalışırsa ve başarısız olmaya devam ederse, üç kere daha denemeyecektir.
‫Hadi kontrol edelim.
‫Tüm yapmam gereken tekne yerleştirme yığını yapıştırmak için -c'yi yerleştirmek. Bu yüzden bir Oluşturma dosyası kullanacağım.
‫Şimdi onu oy kullanmaya çağırıyorum. Ve işte gidiyoruz. Aslında her
‫şeyi yaratmadı ve o kadar çabuk ilerledi.
‫sonra bu nesneleri oluşturmak, daha sonra konteynırları yaratan görevleri yaratan hizmetleri oluşturmak süreci boyunca olacaktı.
‫Tek yaptığı, zamanlayıcıda bu nesneleri yaratmaktı, daha
‫Ayrıca göreceğiniz gibi ağları da oluşturmanız gerekir. Unutmayın, ön uç ve arka planı bunları oluşturduğumuzun yanı sıra,
‫varsayılan bir ağ kullanıyorduk, bu belirli bir yığın
‫dosyası varsayılan bir ağ kullanıyordu.
‫Ardından, daha önce kullanmadığımız yeni bir görselleştirme aracı için bu seçeneği göreceksiniz.
‫Bunu bir dakika içinde göreceğiz.
‫Docker yığın komutuna biraz daha göz atalım.
‫Görev yapabileceğimizi göreceksin. Bunu zaten yaptık.
‫O zaman bir ls, ps, rm ve
‫hizmetlerimiz var.
‫Yani bu komutun pek çok özelliği yok.
‫Oldukça basit, çünkü tüm işlevler gerçekten
‫Oluştur dosyasında ve oluşturduğu nesnelerde. Oops
‫Bütün bunları zaten yaptığımızdan beri, ls gibi şeyler yapabiliriz, bu sadece bize tüm yığınlarımızı gösterir. adını belirtmeliyim.
‫Bu oldukça basit bir emir. Sadece bir tane var. O zaman ps yaparsam, aslında bana gösterir. oy.
‫Adı, oy kullanımı.
‫Bunu doğru bulmalıyım.
‫TAMAM.
‫Bunu biraz daha iyi görebilmeniz için geri vereyim. Tam orada.
‫Bunlar gerçek görevlerdir. Sonra hangi düğüm üzerinde çalıştığını görebilirsiniz.
‫Aslında konteynerler değil. Aslında burada gördüğümüz görev. Çünkü gerçek konteyner olsaydı, büyük,
‫uzun bir isim görürdük. Çünkü unuttuysanız,
‫daha önce oluşturduğumuz hizmetleri, gerçekten çok uzun isimler
‫aldık, aslında gittik ve ps'ye sabitledik. Sağ? liman ps kullandıysanız, bu gerçekten uzun isimleri alırsınız.
‫Eğer bir rıhtım konteyneri ls veya Çünkü hepsi bir GUID alıyor,
‫çünkü her konteynırın benzersiz adı olmalı.
‫Böylece, her zaman benzersiz olduklarını ve hiçbir zaman çarpışmamalarını garanti altına alıyorlar.
‫Ardından sonuncusu,
‫liman işçiliği hizmetleri voteapp.
‫Aslında en iyisini beğendim, çünkü kopyalarım gösteriyor.
‫Bu tür bir hizmet vermek
‫gibi bir şey. sayıda konteynerin başlamış olup olmadığını anlıyorum.
‫Bana kaç tane kopyayı başlattığımı gösteriyor, böylece uygun Öyleyse daha derine inmek
‫istersem, pistte docker yığını yapabilirim. Görev adlarını burada alıyoruz ve hangi düğümlerin üzerinde çalıştıklarını görüyoruz.
‫Bu ikisi birlikte, aslında tüm bu uygulamanın nasıl çalıştığının tam bir resmini verirler.
‫Ağa dalmak istedim, tıpkı normalde yapacağımız
‫gibi liman ağını yapabilirdim.
‫Ve bu uygulama için oluşturulan bu üç yeni yer paylaşımlı ağları görebilirsiniz. Ve uygulama
‫adının daima başında olduğunu unutmayın. Yığın her zaman hizmetin adından önce gelir.
‫Böylece her yığın adının önündeyken emin olmasını sağlayacaktır.
‫Ve sonra gidip bakalım.
‫Bırak tarayıcımı yetiştirmeme izin ver.
‫Tamam.
‫Onları liman 5000'de görebiliriz.
‫Oylama sitesi çalışıyor.
‫5001'e gidiyorum.
‫Sonuçları sitem var, böylece bu sayfaya gelebilir ve sonucu görebilirim.
‫Sonra sahip olduğumuz bu yeni kişiye Görüntüleyici deniyor. açık kaynak repo'dur.
‫8080'de. Görüntüleyici gerçekte gösteri amaçlı oldukça düzgün bir araçtır. Bütün bunlar Docker tarafından yapılır, bu
‫Gerçekten yapıldı. arada bu bölümlerin Kaynaklar bölümünde görebileceğiniz Dolayısıyla, her bir hizmet için farklı renklerimiz var.
‫Oyla sonuç yeşil renkte.
‫Ve sonra yeniden arama bir çeşit zorunluluk ve oy pembedir. İki oy var ve
‫iki redise var.
‫Bir sürü etrafında hareket ederken neler olduğunu göstermek oldukça güzel.
‫Aslında dosyama girip bir değişiklik yapsaydım.
‫Oylama uygulamasına gidelim ve eşlemeleri beşe değiştirmek istediğimizi düşünelim.
‫Gidip hizmeti güncelleyebiliriz. Ama bu bir tür AntiPattern. Elle girersek, docker hizmeti güncelleştirmesi gibi komutlara hizmete girersek, bu
‫YAML dosyasını bir daha yeniden eklediğimizde bu değişikliklerin üzerine
‫yazacağı anlamına gelir.
‫AWS'de veya başka herhangi bir yapılandırma yönetiminde bir bulut oluşumu yaptıysanız,
‫altyapınızı yönetmek için böyle bir yapılandırma dosyasını kullandıktan sonra,
‫bu dosyayı kaynak olarak kullanacağınızdan gerçekten çok isteyeceksiniz. gerçeğin.
‫Dolayısıyla, üretimde muhtemelen, sürüm kontrolüne sahip olduğunuz bir Git Deposu'nda sakladığınız bir
‫çeşit dosya olurdu ve değişiklikleri kontrol edersiniz ve bu şekilde değişiklikleri geri alabilirsin.
‫Bu durumda, bu dosyayı hızlıca değiştireceğim ve
‫aynı komuta gireceğiz, docker yığını konuşlandıracağız.
‫Dikkat edin, bir güncelleme yok. Çünkü aynı yığını dağıtacağız ve varlığın farkında olacak ve
‫bu değişiklikleri temel alarak güncelleyeceğiz.
‫Bunu güncellemek için doğru adın kullanıldığından emin olmalıyız.
‫Yani oy kullanıyor. Ve sonra hizmetlerin güncellenmesi gerektiğini söyler, ancak bunları değiştirmesi gerektiğini kabul eder.
‫O halde görselleştiricimize geçersek, bunu zaten elde ettiğimizi görebilirsiniz.
‫Bugün çok yavaşız, değil mi?
‫Sürülere ayak uyduramıyoruz. Şu anda beş oy verme uygulaması zaten var.
‫Çalıştırmak ve başlatmak biraz zaman aldılarsa, durumlarının çevrimiçi
‫olarak geldikçe burada değiştiğini görürdük.
‫Ancak bu basit bir web uygulaması, bu yüzden oldukça hızlı bir şekilde başlayacak.
‫Tamam.
‫Bu yığınlar.
‫Şimdi sırlarımızı sıralarımıza ekleyelim.
‫