Azure Load Balancer sistem durumu yoklamaları

Azure Load Balancer sistem durumu yoklaması, uygulama örneklerinizin sistem durumunu algılayan bir özelliktir. Kullanılabilir olup olmadığını denetlemek ve istekleri yanıtlamak için örneklere bir istek gönderir. Durum yoklaması TCP, HTTP veya HTTPS gibi farklı protokolleri kullanacak şekilde yapılandırılabilir. Uygulama hatalarını algılamanıza, yükü yönetmenize ve kapalı kalma süresini planlamanıza yardımcı olduğundan bu önemli bir özelliktir.

Azure Load Balancer kuralları, uç nokta durumunu algılamak için bir sağlık denetimi gerektirir. Sistem durumu yoklaması ve yoklama yanıtlarının yapılandırması, hangi arka uç havuzu örneklerinin yeni bağlantılar alacağını belirler. Bir uygulamanın başarısızlığını algılamak için sistem durumu yoklamalarını kullanın. Sağlık yoklamasına özel bir yanıt oluşturun. Yük veya planlı kapalı kalma süresini yönetmek için akış denetimi için sistem durumu araştırmasını kullanın. Durum yoklaması başarısız olduğunda yük dengeleyici ilgili iyi durumda olmayan örneğe yeni bağlantılar göndermeyi durdurur. Giden bağlantı etkilenmez, yalnızca gelen bağlantı.

Sorgulama protokolleri

Sistem durumu yoklamaları birden çok protokolü destekler. Belirli bir sistem durumu yoklaması protokolünün kullanılabilirliği Load Balancer SKU'sa göre değişir. Ayrıca, hizmetin davranışı bu tabloda gösterildiği gibi Load Balancer SKU'sunun davranışına göre değişir:

SKU Yoklama protokolü Yoklama aşağı davranışı
Standart TCP, HTTP, HTTPS Tüm sondalar devre dışı, tüm TCP akışları devam ediyor.
Temel TCP, HTTP Tüm yoklamalar kapatıldıktan sonra tüm TCP akışlarının süresi dolar.

Yoklama özellikleri

Sağlık probları aşağıdaki özelliklere sahiptir:

Sağlık Sorgulama özellik adı Ayrıntılar
Veri Akışı Adı Sağlık kontrol aracının adı. Bu, sağlık sondanız için tanımlayacağınız bir isimdir.
Protokol Sağlık yoklaması protokolü. Bu, sistem durumu yoklamasının kullanmasını istediğiniz protokol türüdür. Seçenekler şunlardır: TCP, HTTP, HTTPS
Bağlantı noktası Sistem durumu yoklamasının bağlantı noktası. Sağlık yoklamasının sanal makinenin durumunu kontrol etmek için kullanmasını istediğiniz hedef bağlantı noktası
Aralık (saniye cinsinden) Sağlık yoklaması aralığı. Sanal makinede ardışık iki sistem durumu denetimi denemesinde farklı yoklamalar arasındaki süre (saniye cinsinden)
Eşik Sağlık denetimi eşiği. Sanal makineye trafik akışına izin vermek veya bunu engellemek için durum yoklamasının başarılı veya başarısız olması gereken deneme sayısı
Kullanan Bu durum araştırmasını kullanan yük dengeleyici kurallarının listesi. Etkili olması için sağlık denetlemesini kullanan en az bir kuralınız olmalıdır.

Yoklama yapılandırması

Sistem durumu yoklaması yapılandırması aşağıdaki öğelerden oluşur:

Sistem Sağlık Denetimi yapılandırması Ayrıntılar
Protokol Sağlık yoklaması protokolü. Bu, sistem durumu yoklamasının kullanmasını istediğiniz protokol türüdür. Kullanılabilir seçenekler şunlardır: TCP, HTTP, HTTPS
Bağlantı noktası Sistem durumu yoklamasının bağlantı noktası. Sağlık sondası, sanal makinenin sağlık durumunu kontrol etmek için sanal makineye bağlandığında kullanmasını istediğiniz hedef bağlantı noktası. Sanal makinenin bu bağlantı noktasında da dinlediğinden emin olmanız gerekir (başka bir ifadeyle, bağlantı noktası açık).
Aralık Sağlık yoklaması aralığı. Sanal makineye ardışık sağlık kontrolü girişimleri arasındaki süre (saniye cinsinden)

Sonda protokolü

Sistem durumu yoklaması tarafından kullanılan protokol şu seçeneklerden biriyle yapılandırılabilir: TCP, HTTP, HTTPS.

Senaryo TCP araştırma HTTP/HTTPS yoklaması
Genel bakış TCP yoklamaları, tanımlanan bağlantı noktasıyla üç yönlü açık TCP tokalaşması gerçekleştirerek bir bağlantı başlatır. TCP yoklamaları, dört aşamalı TCP el sıkışması ile bağlantıyı sonlandırır. HTTP ve HTTPS belirtilen yolla bir HTTP GET'i yayımlar. Bu sondaların her ikisi de HTTP GET için göreli yolları destekler. HTTPS yoklamaları, Aktarım Katmanı Güvenliği (TLS) ekli HTTP yoklamalarıyla aynıdır. HTTP/HTTPS yoklamaları, yoklama bağlantı noktası aynı zamanda hizmetin dinleyicisiyse yük dengeleyiciden örnekleri kaldırmak için kendi mantığınızı uygulamak için yararlı olabilir.
Yoklama hatası davranışı TCP yoklaması şu durumlarda başarısız olur:
1. Örnekteki TCP dinleyicisi zaman aşımı süresi boyunca hiç yanıt vermez. Zaman aşımına uğrayacak şekilde yapılandırılmış ve işaretlenmeden önce cevapsız kalan yoklama isteklerinin sayısına bağlı olarak bir yoklama aşağı işaretlenir.
2. Yoklama, örnek üzerinden bir TCP sıfırlaması alır.
HTTP/HTTPS yoklaması şu durumlarda başarısız olur:
1. Yoklama uç noktası 200 dışında bir HTTP yanıt kodu döndürür (örneğin, 403, 404 veya 500).
2. Yoklama uç noktası, en az yoklama aralığı ve 30 saniyelik zaman aşımı süresi boyunca hiç yanıt vermez. Yoklama çalışmıyor olarak işaretlenmeden önce ve tüm zaman aşımı aralıklarının toplamına ulaşılana kadar birden çok yoklama isteği yanıtlanmayabilir.
3. Yoklama uç noktası tcp sıfırlama yoluyla bağlantıyı kapatır.
Davranışı derinleştirme TCP sistem durumu yoklamaları iyi durumda olarak kabul edilir ve arka uç uç noktasını şu durumlarda iyi durumda olarak işaretler:
1. Sistem durumu yoklaması, VM önyükleme yaptıktan sonra bir kez başarılı olur.
2. Sağlık durumu iyi olan tüm arka uç uç noktaları, yeni akışlar almaya uygundur.
Örnek, zaman aşımı süresi içinde HTTP durumu 200 ile yanıt verdiğinde sağlık yoklaması işaretlenir. HTTP/HTTPS sağlık kontrolleri sağlıklı olarak kabul edilir ve arka uç noktası şu durumlarda sağlıklı olarak işaretlenir:
1. Sistem durumu yoklaması, VM önyükleme yaptıktan sonra bir kez başarılı olur.
2. Sağlık durumu iyi olan tüm arka uç uç noktaları, yeni akışlar almaya uygundur.

Not

HTTPS yoklaması, zincirin tamamında en düşük imza karması SHA256 olan sertifikaların kullanılmasını gerektirir.

Derinlemesine inceleme davranışı

Senaryo TCP bağlantıları UDP datagramlar
Tek örnekli yoklamalar aşağı Yeni TCP bağlantıları, sağlıklı kalan arka uç uç noktasında başarılı olur. Bu arka uç uç noktasına kurulan TCP bağlantıları devam eder. Mevcut UDP akışları arka uç havuzundaki başka bir sağlam örneğe taşınır.
Tüm örnekler inceleniyor Arka uç havuzuna yeni akış gönderilmez. Standart Load Balancer, bir arka uç havuzunun birden fazla arka uç örneğine sahip olması nedeniyle yerleşik TCP akışlarının devam etmesine olanak tanır. Temel Load Balancer, arka uç havuzuna var olan tüm TCP akışlarını sonlandırır. Tüm mevcut UDP akışları sonlanır.

Araştırma aralığı ve zaman aşımı

Aralık değeri, sistem durumu yoklamasının arka uç havuzu örneklerinizden gelen bir yanıtı ne sıklıkta denetlediğini belirler. Sağlık probu başarısız olursa, yük dengeleyici hemen arka uç havuz örneklerinizi sağlıksız olarak işaretler. Sağlık probu bir sonraki kontrolde başarılı olursa, Azure Load Balancer arka uç havuz örneklerinizi sağlıklı olarak işaretler. Sağlık probu, Azure portalında varsayılan olarak her 5 saniyede bir yapılandırılmış sağlık probu portunu kontrol etmeye çalışır, ancak bunu başka bir değere ayarlayabilirsiniz. ARM şablonları, REST API, Azure CLI veya PowerShell üzerinden dağıttığınızda, varsayılan aralık 15 saniyedir (en az 5 saniye).

Zamanında yanıt alındığından emin olmak için HTTP/S sistem durumu yoklamalarında yerleşik zaman aşımları vardır. TCP ve HTTP/S yoklamaları için zaman aşımı süreleri aşağıdadır:

  • TCP yoklama zaman aşımı süresi: YOK (yapılandırılmış yoklama aralığı süresi geçirildikten ve sonraki yoklama gönderildikten sonra yoklamalar başarısız olur)
  • HTTP/S yoklama zaman aşımı süresi: 30 saniye

HTTP/S yoklamaları için, yapılandırılan aralık, yukarıdaki zaman aşımı süresinden uzunsa, zaman aşımı süresi boyunca yanıt alınmazsa, sağlık yoklaması zaman aşımına uğrar ve başarısız olur. Örneğin, bir HTTP sistem durumu yoklaması 120 saniyelik bir yoklama aralığıyla yapılandırılırsa (2 dakikada bir) ve ilk 30 saniye içinde yoklama yanıtı alınmazsa, yoklama zaman aşımı süresine ulaşır ve başarısız olur. Yapılandırılan aralık yukarıdaki zaman aşımı süresinden kısa olduğunda, yapılandırılan aralık süresi tamamlanmadan yanıt alınmazsa sistem durumu araştırması başarısız olur ve sonraki araştırma hemen gönderilir.

Yoklama eşiği

Sağlık yoklaması eşik değeri, bir sağlık yoklamasının bir arka uç örneğini sırasıyla sağlıklı veya sağlıksız olarak işaretlemek için art arda başarılı veya başarısız olması gereken sayı olarak tanımlanır.

TCP yoklamaları için, yoklama eşiği 2 olarak yapılandırılmışsa, arka uç sunucusunun trafiği almaya başlaması için yoklamanın ardışık 2 yanıt alması gerekir. Benzer şekilde, bir arka uç örneği sağlıklı kabul edildikten sonra, örneğin sağlıksız sayılması ve yeni trafik almayı durdurması için ardışık 2 hata veya zaman aşımı gereklidir.

HTTP yoklamaları için açık yanıtlar, araştırmayı 200 ve 200 olmayan yanıtlar için hemen yukarı veya aşağı olarak işaretler ve eşiği etkili bir şekilde sıfırlar. Bu, yalnızca HTTP yoklamaları, yanıt verilmediği için zaman aşımına uğradığında eşik değerinin geçerli olduğu anlamına gelir.

Tasarım kılavuzu

  • Uygulamanız için sistem durumu modelini tasarlarken, arka uç uç noktasında örneğin ve uygulama hizmetinin sistem durumunu yansıtan bir bağlantı noktasını araştırın. Uygulama bağlantı noktası ve yoklama bağlantı noktasının aynı olması gerekmez. Bazı senaryolarda, yoklama bağlantı noktasının uygulamanızın kullandığı bağlantı noktasından farklı olması tercih edilebilir, ancak genellikle yoklamaların aynı bağlantı noktasını kullanması önerilir.

  • Uygulamanızın bir sistem durumu yoklaması yanıtı oluşturması ve yük dengeleyiciye örneğinizin yeni bağlantılar alıp almayacağını bildirmesi yararlı olabilir. Durum yoklamasını başarısız kılmak suretiyle, bir örneğe yeni bağlantı teslimini kısıtlamak için yoklama yanıtını ayarlayabilirsiniz. Uygulamanızın bakımı için hazırlanabilir ve uygulamanıza bağlantıların boşaltılması işlemini başlatabilirsiniz. Yoklama kapalı sinyali, TCP akışlarının her zaman Standart Load Balancer üzerinde, boşta kalma zaman aşımına veya bağlantı kapanmasına kadar devam etmesine izin verir.

  • UDP yük dengeli bir uygulama için arka uç uç noktasından özel bir sistem durumu yoklaması sinyali oluşturun. İlgili dinleyiciyle eşleşen durum denetimi için TCP, HTTP veya HTTPS kullanın.

  • HA Portları yük dengeleme kuralı ile Standart Load Balancer. Tüm bağlantı noktaları yük dengelidir ve tek bir sistem durumu yoklaması yanıtı tüm örneğin durumunu yansıtmalıdır.

  • Sanal ağınızdaki başka bir örneğe sağlık durumunu kontrol eden sorgunun alındığı örnek üzerinden bu sorguyu yönlendirmeyin veya vekil olarak kullanmayın. Bu yapılandırma senaryonuzda hatalara yol açabilir. Örneğin: Gereçler için ölçek ve yedeklilik sağlamak üzere yük dengeleyicinin arka uç havuzuna bir üçüncü taraf gereç kümesi dağıtılır. Sistem durumu yoklaması, üçüncü taraf cihazın arkasında yer alan sanal makinelere proxy veya çeviri yapan cihazın bir bağlantı noktasını yoklamak üzere yapılandırılır. Eğer cihazın arkasındaki diğer sanal makinelere isteklerin çevrilmesi veya aracılık edilmesi için kullanılan bağlantı noktasını yoklarsanız, tek bir sanal makineden gelen herhangi bir yoklama yanıtı cihazı çalışmaz olarak işaretler. Bu yapılandırma, uygulamanın art arda başarısız olmasına neden olabilir. Tetikleyici, yük dengeleyicinin alet örneğini işaretlemesine neden olan aralıklı bir yoklama hatası olabilir. Bu eylem uygulamanızı devre dışı bırakabilir. Cihazın sağlığını kontrol et. Sistem durumu sinyalini belirlemek için yoklamanın seçilmesi, ağ sanal gereçleri (NVA) senaryoları için önemli bir noktadır. Bu tür senaryolar için uygun sistem durumu sinyali için uygulama satıcınıza başvurun.

  • Sanal makinenizde yapılandırılmış birden çok arabiriminiz varsa, araştırmayı aldığınız arabirimde yanıtladığınızdan emin olun. Her bir arabirim için sanal makinelerde kaynak ağ adresi çevirisini yapmanız gerekebilir.

  • Azure PowerShell, Azure CLI, Şablonlar veya API kullanılırken yoklama tanımı zorunlu değildir veya denetlenemez. Azure portal kullanılırken yalnızca prob doğrulama testleri yapılır.

  • Durum yoklaması dalgalanırsa, yük dengeleyici, arka uç uç noktasını yeniden sağlıklı duruma döndürmeden önce daha uzun süre bekler. Bu ek bekleme süresi kullanıcıyı ve altyapıyı korur ve kasıtlı bir ilkedir.

  • Sanal makine örneklerinizin çalıştığından emin olun. Arka uç havuzundaki çalışan her örnek için sağlık denetleyicisi erişilebilirliği kontrol eder. Bir örnek durdurulursa, yeniden çalıştırılana kadar incelenmez.

  • Sanal ağınızı 168.63.129.16 içeren Microsoft'a ait IP adresi aralığıyla yapılandırmayın. Yapılandırma, sağlık taramasının IP adresiyle çakışabilir ve senaryonuzun başarısız olmasına neden olabilir.

  • Sistem durumu yoklaması hatasını test etmek veya tek bir örneği işaretlemek için, sistem durumu araştırmasını açıkça engellemek için bir ağ güvenlik grubu kullanın. Yoklama hatasının benzetimini yapmak için hedef bağlantı noktasını veya kaynak IP'yi engellemek için bir NSG kuralı oluşturun.

  • Yük dengeleme kurallarının aksine, gelen NAT kurallarının buna bağlı bir sistem durumu yoklaması gerekmez.

  • Azure Load Balancer sistem durumu yoklaması IP'sinin veya bağlantı noktasının NSG kurallarıyla engellenmesi önerilmez. Bu, desteklenmeyen bir senaryodur ve NSG kurallarının gecikmeli etkili olmasını sağlayarak sistem durumu yoklamalarının arka uç örneklerinizin kullanılabilirliğini yanlış bir şekilde temsil etmelerine neden olabilir.

İzleme

Standart Yük Dengeleyici, Azure İzleyici aracılığıyla uç nokta ve arka uç uç nokta sağlık denetimi durumunu gösterir. Diğer Azure hizmetleri veya iş ortağı uygulamaları bu ölçümleri kullanabilir. Temel Load Balancer için Azure İzleyici günlükleri desteklenmez.

Kaynak IP adresini sorgula

Azure Load Balancer'ın sistem durumu yoklamasının örneğinizi işaretleyebilmesi için tüm Azure ağ güvenlik gruplarında ve yerel güvenlik duvarı ilkelerinde 168.63.129.16 IP adresine izin vermelisiniz. Hizmet AzureLoadBalancer etiketi bu kaynak IP adresini ağ güvenlik gruplarınızda tanımlar ve varsayılan olarak sistem durumu yoklaması trafiğine izin verir. Buradan bu IP adresi hakkında daha fazla bilgi edinebilirsiniz.

Güvenlik duvarı ilkelerinizde yoklamanın kaynak IP'sine izin vermezseniz sistem durumu yoklaması örneğinize ulaşamadığı için başarısız olur. Azure Load Balancer da durum yoklaması hatası nedeniyle örneğinizi -down olarak işaretler. Bu yanlış yapılandırma, yük dengeli uygulama senaryonuzun başarısız olmasına neden olabilir. Tüm IPv4 Load Balancer sistem durumu yoklamaları, kaynakları olarak 168.63.129.16 IP adresinden kaynaklanır. IPv6 yoklamaları, kaynak olarak bir bağlantı yerel adresi (fe80::1234:5678:9abc) kullanır. Çift yığınlı Azure Load Balancer için, IPv6 sistem durumu yoklaması için bir Ağ Güvenlik Grubu yapılandırmanız gerekir.

Sınırlamalar

  • HTTPS yoklamaları, istemci sertifikasıyla karşılıklı kimlik doğrulamasını desteklemez.

  • HTTP yoklamaları, yoklama arka uçları için ana bilgisayar adlarının kullanılmasını desteklemez.

  • TCP zaman damgalarını etkinleştirmek hız kısıtlamasına veya diğer performans sorunlarına yol açabilir ve bu durum, sistem durumu yoklamalarının zaman aşımına uğramasına neden olabilir.

  • Sanal makine ölçek kümesinde Temel SKU yük dengeleyici sistem durumu yoklaması desteklenmez.

  • HTTP yoklamaları, güvenlik endişeleri nedeniyle aşağıdaki bağlantı noktalarında yoklama işlemini desteklemez: 19, 21, 25, 70, 110, 119, 143, 220, 993.

Sonraki adımlar