İdeal hedef senaryosu
Evet, bir yük dengeleyici kullanmalı ve her seferinde bir örneği güncellemelisiniz. Konteynerler arası iletişimin nereden geldiğinden emin değilim.
Örnek olarak, A sitenize hizmet eden bir yük dengeleyiciniz olduğunu düşünün. Kullanıcılar yalnızca ona bağlanır ve yalnızca "A" olarak bilirler. Yük dengeleyici, iki veya daha fazla arka uç (B, C, vb.) Olduğunu ve bunların VM veya konteyner olup olmadığını fark eder.
Ardından, bu durumda Apache örnekleri olan arka uçları yükseltmek istersiniz.
- B'yi yük dengeleyicisinin uygun arka uçlarından çıkarın, böylece artık trafiği kabul etmiyor.
- o anda canlı olan isteklerin sunulmasını ve mevcut bağlantıların kapanmasını bekleyin.
- B'yi sunan kapsayıcıyı veya temel alınan VM'yi güncelleyin
- B'yi yeniden başlatın, yüklenmesini bekleyin ve çalışmaya başlayın
- yeni istekleri doğru bir şekilde sunduğundan emin olmak için B testini yapın
- trafiği yeniden etkinleştirmek için yük dengeleyici arka uç havuzuna B ekleyin
Ardından, aynı işlemi C, D vb. İçin yapın.
Kasım 2013'ten itibaren Docker kapsayıcılarının yerinde yükseltmeleri için açık bir istek olduğunu unutmayın , ancak çok fazla ilerleme kaydetmediği için yukarıdaki çözüm, bu arada yapmanız gereken şeydir.
Mevcut bir canlı site için ne yapmalı
Muhtemelen bunu soruyorsunuz çünkü zaten bu modelde canlı bir site çalıştırıyorsunuz ve kesinti olmadan yeni sürüme geçirmek istiyorsunuz. Bu nedenle, yukarıdaki ideal hedef duruma ulaşmamız gerekiyor, ancak artımlı olarak.
Diyelim ki:
- kapsayıcınıza işaret eden bir DNS adınız var
- kapsayıcınız bazı IP adreslerinde çalışıyor
- kullanıcılarınız kabın IP adresini bilmiyor ve hiçbir yerde sabit kodlanmış değil
Bu varsayımlar yanlışsa, önce doğru olacak şekilde düzeltmelisiniz.
Ardından, şu adımları izleyin:
- yeni bir IP'de bir yük dengeleyici oluşturun ve onu mevcut kapsayıcıya tek arka ucu olarak gösterin
- DNS'yi doğrudan konteyner IP'si yerine yük dengeleyiciyi gösterecek şekilde değiştirin
- aynı VM + kapsayıcı kurulumuyla aynı Apache arka ucunu ekleyin
- şimdi B ve C iki arka ucuna sahip bir yük dengeleyiciniz var, bu yüzden onları birer birer yükseltmek için "ideal hedef senaryosu" bölümündeki talimatları izleyin
Yük dengeleyici nasıl güncellenir
Kolay (barındırılan) yol
En kolay seçenek kendi dengeleyicinizi çalıştırmamaktır. Örneğin, hizmet olarak yük dengeleme sağlayan bir bulut platformu kullanıyorsanız, bunu kullanmayı düşünün ve yük dengeleyicinin bakımı ve güncellenmesi sorun değildir.
Manuel yol
Kendi yük dengeleyicinizi çalıştırıyorsanız, başka bir dolaylama katmanı (DNS) eklemek yardımcı olacaktır. Aşağıdakileri varsayalım:
- güncellemek istediğimiz yük dengeleyici A'nın IP'sine çözümleyen bir ana bilgisayar adımız olduğunu
- yük dengeleyicimizin arka uç havuzu P1, P2 vb.
Aşağıdaki gibi devam ediyoruz:
ve işiniz bitti.
Ayrıntılar, diyagramlar ve takımlar
Süreci otomatikleştirmenize yardımcı olabilecek bu yazı ve araçlara bakın, ancak genel fikir aynıdır:
Ahlak
"Bilgisayar bilimlerindeki tüm problemler, elbette çok fazla dolaylama problemi hariç, başka bir dolaylama seviyesi ile çözülebilir." - David Wheeler