‫Hizmet güncellemeleri. Muhtemelen daha önce buna odaklanmadıysak da, hizmetlerinizi güncellemenin
‫bir yolu olduğunu hep yanıltmışsınızdır.
‫Güncellemeler, kapaklar altında devam eden birçok şeyi olduğundan, bu konuda konuşalım. Swarm'ın güncelleme işlevselliği, kopyalarınız için yuvarlanan
‫bir güncelleme deseninin etrafında toplanmıştır. Bu da demek oluyor ki, birden
‫fazla eşlemeyle hizmetiniz varsa ve umarım değişirsiniz, bunlar varsayılan olarak teker
‫teker geçer ve her kapsayıcıyı güncellemeye koyduğunuz yeni ayarlarla değiştirerek
‫güncellenir komut.
‫güncellemelerdeki aksama sürelerini engelliyor diyecek, ancak bunun duruşları engellediğini söylemeyeceğim.
‫Birçok kişi, orkestratörler
‫Kesintileri sınırladığını söyleyeceğim. Çünkü herhangi bir sistemde kesintileri önleme test etme işidir.
‫Gerçekten güncellemelerini nasıl yaptığınızı test etmeye başlamanız ve belirlemenin kullanıcılarımı nasıl etkilediğini mi düşünüyorsunuz?
‫Bir veritabanının güncellenmesi web uygulamamı etkiliyor mu? Muhtemelen yapar.
‫Hizmet verdiğiniz her uygulama güncellenecek ve etrafındaki diğer şeyleri farklı
‫şekilde etkileyecektir.
‫Orkestratorun görevi bu değil.
‫
‫Bir orkestratör, bunun bir veritabanı protokolü olduğunu belirleyemez ve bu, kolay bir REST
‫uygulama protokolüdür.
‫Bu yüzden, bunlar başa çıkmanız gereken farklı, karmaşık şey olacak.
‫Hizmet güncelleştirmeleri söz konusu olduğunda, yalnızca bir REST API'sı veya web yuvaları veya uzun yoklama gibi fantezi
‫bir şey yapmayan bir web önyüzüyse, bunun gibi bir şey veya statik bir web sitesi çok
‫basitse, muhtemelen kolay bir güncelleme ve Bu bir sorun olmayacaktır. Bunlar, güncellemeye çalıştığınız şey
‫Ancak veritabanları veya kalıcı depolama gibi diğer hizmetler veya kalıcı bir bağlantı gerektiren herhangi bir şey. ne olursa olsun, her zaman bir meydan okumadır. Bu yüzden erken test edin ve sık sık test edin.
‫Daha önce de söylediğim gibi, çoğu güncellemedeki konteynırların yerini alacak. bir kapsayıcıyı tamamen yenisiyle değiştirecek ve değiştirecektir.
‫Bir etiketi veya hizmetle ilgili diğer
‫meta verileri güncellemediğiniz sürece, her
‫Bunun için hazırlıklı olun. Pek çok seçeneğe sahiptir. Aslında, en son saydığım, güncelleme
‫komutu için en az 77 seçenek vardı. Ancak yapmak istediğiniz her şey
‫hemen değiştirilebilir.
‫Güncelleme komutundaki birçok seçenek aslında sadece bir -rm ve bir
‫-add sonuna sahip seçenekleri yaratır. Çünkü eğer birden fazla değer
‫için kullanılabilen bir seçenek varsa, yayınlamak için bir bağlantı noktası veya birçoğunu kullanabileceğiniz bir ortam değişkeni diyelim.
‫Sağ?
‫Bu nedenle, güncelleme komutuna hangilerini eklediğinizi ve hangilerini kaldırmakta olduğunuzu söyleyebilmeniz gerekir.
‫Onları bir dakika içinde göreceğiz.
‫Bu, geri alma ve sağlık kontrolü seçeneklerini de içerir.
‫Bunların seçeneklerine bakmalı ve varsayılan değerlerinin uygulamanız için ideal olup
‫olmadığını ve farklı ayarları test edip sizin için ve sisteminiz için daha kolay güncelleştirme yapılıp yapılmadığını kontrol etmelisiniz.
‫Ayrıca burada kendi komutları olan ölçek ve geri alma seçenekleri olduğunu göreceksiniz.
‫Docker bunları şimdi komut satırında birinci sınıf vatandaşlar yapıyor.
‫--rollback veya --scale ile belirtmek zorunda olduğunuz seçeneklerdiler,
‫ancak birçok kişi bunları o kadar sık ​​kullanıyor ki,
‫Gelecekte bunlardan daha fazlasını ekliyor olabilirler.
‫Son olarak, bazı örneklere
‫geçmeden önce, yığınlar yapıyorsanız, aynı yığına dağıtılan bir yığın güncelleme.
‫Aslında, yığın güncelleştirmeleri için ayrı bir seçenek yoktur.
‫Düzenlenen aynı dosyayla bir yığın dağıtımını yapmanız yeterlidir.
‫Ardından, hizmet komutları ve ağlar ve yaptığı her şeyle birlikte çalışır. başlandıklarından emin olmak için onlarla birlikte çalışır.
‫Herhangi bir değişiklik yapılması gerekip gerekmediğine, uygulanmaya
‫Bazı hızlı örneklere bakalım ve ardından komut satırına gideceğiz.
‫Bu, muhtemelen kullanacağınız en yaygın örnektir, bu
‫da bir hizmetin imajını değiştirmektir.
‫Uygulamanızı her yenilediğinizde ve yeni bir resim oluşturursanız, resim adı ve ardından hizmet adı ile bir hizmet güncelleme komutu
‫yapmanız gerekecektir.
‫Bu durumda bu durumda belki 1 numaralı etiketle başvuruyu yaptım. 2. 0.
‫Ve bu durumda şimdi 1 başvuruyorum. 2. hizmetimde çalıştırdığımdan farklı bir görüntü belirleyecek ve bunları gidip güncelleyeceğiz.
‫1 görüntüsü alırsınız ve
‫hizmet, ah evet, bu Bu sonraki aşamada, tek bir güncelleme
‫komutunda aynı anda nasıl birden fazla şey yapabileceğinizi gösteriyoruz.
‫Env-add ile bir ortam değişkeni ekleyebilir ve ardından bir
‫portu -rm yayınıyla kaldırabilirsiniz.
‫Çevre değişkenlerini ekleyebilir ve kaldırabiliriz ve portları aynı güncelleme komutunda istediğimiz
‫kadar yayınlayabiliriz. Bu sonuncusu, bu
‫yeni ölçek ve geri alma komutlarını aynı anda birden fazla hizmette nasıl kullanabileceğimizi gösteriyor. kullanmanın avantajlarından biri de, birden fazla hizmete başvurabilecekleri.
‫Onları güncelleme komutu üzerinde
‫Bu durumda, aslında aynı anda
‫web ve API hizmetlerinin kopyaları sayısını değiştireceğim.
‫Sanki bir süre önce söylediğim gibi, Swarm güncellemelerinde farklı bir konuşlandırma komutunuz yok.
‫Düzenlediğiniz dosyayla birlikte yalnızca
‫aynı rıhtım yığını dağıtıyor ve işin, herhangi bir değişiklik olup olmadığını belirlemek için
‫API'nın diğer tüm bölümleriyle birlikte çalışmak ve ardından bunları bir hizmet güncellemesi ile birlikte atmak.
‫Tamam. Aslında bir hizmet oluşturarak başlayalım, böylece onu bazı güncelleme komutlarıyla idare edebiliyoruz.
‫liman servisçiliği -p 8088 80 web adını yaratırız ve biz Nginx'ı kullanırız ve üretimde
‫her zaman olması gerektiği gibi bir sürüm belirleyeceğiz.
‫Güzel, şimdi 2017 yılının son yarısında, hizmet oluşturma ve güncelleme komutlarımızla ayrılma seçeneğine sahip olduğumuzdan, bunun gerçek
‫zamanlı olarak eşzamanlı olarak gerçekleştiğini görebiliyoruz.
‫Dolayısıyla, güncellemelerin gerçekten komut satırı üzerinden nasıl yayınlandığını görmek için güncelleme komutları için iyi olacaktır.
‫Tamam. Şimdi, bir rıhtım servisini ls yaparsak, hizmetimizin çalıştığını
‫ve 1 kopyanın 1'i olduğunu görüyoruz, bu yüzden gitmek güzel.
‫Şimdi, hizmetimizi ölçeklendirelim, böylece birlikte çalışmak için daha fazla çoğaltma yapabiliriz. Web = 5.
‫Liman işi hizmeti ölçeği Ve sen sadece gördüm ki o biri
‫zaten çalışıyordu ve diğer 4'ü de başlamıştı. Görüntüler indirilmiş haldeydi, çünkü benim düğümüm çok çabuk
‫geçti, ancak görüntü diğer düğümlerde yüklenirken
‫beklemede durumdayken birkaç dakika sürebilir.
‫Tamam.
‫Nginx'in görüntüsünü değiştirerek güncel bir güncelleme yapalım.
‫Burada daha eski bir resim seçtiğimi göreceksin.
‫Şimdi, Docker, resmin gerçekte ne olduğu konusunda umurunda değil.
‫Umurundaki her şey için
‫tamamen farklı bir uygulama olabilir. Sadece bu serviste bunu farklı bir görüntüye dönüştürüyorum biliyorum.
‫Unutmayın, varsayılan olarak, buradan birer birer geçer.
‫Önce onu kaldıracak, yeni bir tane oluşturacak
‫ve daha sonra gideceği zaman sağlıklı görünecek ve sonraki adımda başlayacaktır. Bir sonraki örnekte,
‫yayınlanan bağlantı noktasını değiştireceğiz.
‫Ancak bir limanı değiştiremezsiniz.
‫Aslında bunları aynı anda eklemeniz ve kaldırmanız gerekir.
‫Dolayısıyla, bu durumda, 8088 ile
‫ilk yayınladığımız için, liman hizmeti güncelleştirme yayınlama rm 8088 yapmamız gerekiyor. Değeri belirtmem gerekiyor. Sadece anahtarı belirtmem gerekiyor. Sonra yeni
‫bir 9090 yayınlayacağız. Sonra bu durumda 80 olan değer. Daha önce olduğu gibi aynı güncelleme işlemini
‫yapacağını göreceksiniz.
‫Konuşmak istediğim son örnek bir nevi bahşiştir. Çünkü sık sık denge
‫denen şeyle meydan okuyorsunuz demektir. Veya düğüm sayısını değiştirirseniz veya bir sürü şeyi hareket ettirirseniz, sürüünüzde çok sayıda
‫konteyner varsa, gerçekten de dışarıda olmadığını fark etmiş olabilirsiniz. çok şey çeken diğerleri için oldukça
‫hafif olan bazı düğümleriniz var.
‫Kaç konteynırın kaçta çalıştığı ve Çok şey değişiyorsa, Swarm, kullanılan
‫kaynak sayısı açısından her şeyi dengeli tutmak için işleri değiştirmeyecektir.
‫Ancak, yapabileceğiniz şey, bir hizmetin güncellemesini, o hizmetteki hiçbir şeyi değiştirmeden bile zorlayabilmenizdir.
‫Ardından, görevleri tekrar yayınlar ve bu durumda yeniden dengeleme biçimi olan en az kullanılan düğümleri seçecektir.
‫Büyük bir şey taşıdığımda veya bir grup düğüm eklediğimde küçük bir sürüde birçok kez,
‫bir anda boş sunucuların bir demetine sahip olmam ve onlarla ilgili çalışmalara başlamam lazım.
‫Yapacağım şey, servislerimin bir veya ikisini almam ve limana servis güncellemesi yapacağım - zorla ve
‫bu durumda işler tamamıyla yerine geçecek ve tamamen değiştirecek.
‫Elbette, zamanlamanın varsayılanlarını, en az konteyner sayısı ve en
‫az kullanılan kaynak sayısı ile düğüm aramak için kullanır.
‫Düğümlerinizde düzensiz miktarda bir iş bulmanızın bir nevi püf noktası.
‫Bu derste yarattığımız hizmeti kaldırarak temizlemeyi unutma.
‫