Bir uygulamayı SAE üzerine dağıttıktan sonra, uygulamanızın düzgün çalıştığını doğrulamak ve hata durumlarında sorunları belirlemek için sağlık denetimi özelliğini kullanabilirsiniz.SAE, uygulama oluşturma ve dağıtımı sırasında sağlık denetimi yapılandırmasını destekler. Bu konu, SAE konsolunda sağlık denetimlerinin nasıl yapılandırılacağını açıklar.
Arka plan
Sağlık denetimleri nasıl çalışır?
Sağlık denetimi, bir canlılık (liveness), hazırlık (readiness) veya başlatma (startup) probu kullanarak bir uygulama örneğini periyodik olarak kontrol eder ve sonuçları SAE konsoluna bildirir. Bu sayede, küme ortamında hizmetinizin genel sağlığını anlayabilir ve sorunların kaynağını tespit edebilirsiniz.
SAE, Kubernetes üzerinde çalışır ve aşağıdaki sağlık denetimi türlerini sunar.
-
Canlılık probu (Liveness probe): Bir uygulama örneğinin çalışıp çalışmadığını belirler.
Pro başarılı olursa: Uygulama örneği sağlıklıdır ve SAE herhangi bir işlem yapmaz.
Pro başarısız olursa: Uygulama örneği sağlıksızdır ve SAE örneği yeniden başlatır.
-
Hazırlık probu (Readiness probe): Bir uygulama örneğinin gelen trafiği işlemeye hazır olup olmadığını belirler.
Pro başarılı olursa: Uygulama örneği hazırdır ve SAE trafiği bu örneğe yönlendirir.
Pro başarısız olursa: Uygulama örneği hazır değildir. SAE örnek için bir hata bildirir ve ona trafik yönlendirmeyi durdurur.
-
Başlatma probu (Startup probe): Bir uygulama örneğinin başarıyla başlatılıp başlatılmadığını belirler.
Pro başarılı olursa: Uygulama örneği başarıyla başlatılmıştır. Yapılandırılmışsa, canlılık ve hazırlık probları yalnızca başlatma probu başarılı olduktan sonra devreye girer.
Pro başarısız olursa: Uygulama örneği başlatılamamıştır. SAE bir hata bildirir ve örneği otomatik olarak yeniden başlatır.
Başarı ve başarısızlık kriterleri
Başarı: Ardışık başarılı kontrollerin sayısı belirtilen sağlıklı eşiğine ulaştığında pro başarılı kabul edilir.
Başarısızlık: Tek bir sağlık denetimi başarısız olursa, SAE yapılandırılan aralıkla kontrolleri sürdürür. Ardışık başarısızlıkların sayısı belirtilen sağlıksız eşiğine ulaştığında SAE harekete geçer. Başarısız bir canlılık probu durumunda SAE uygulama örneğini yeniden başlatır. Başarısız bir hazırlık probu durumunda ise SAE örneği hizmet uç noktasından kaldırarak trafiğin bu örneğe ulaşmasını engeller.
Sağlık denetimi parametreleri
SAE, uygulamaların ve uygulama örneklerinin durumunu kontrol etmek için aşağıdaki parametreleri kullanır.
-
İlk gecikme süresi
Uygulama başladıktan sonra ilk probun başlamasına kadar geçen saniye cinsinden gecikme süresi. Dağıtım sırasında prob başarısızlıklarını ve buna bağlı yeniden başlatmaları önlemek için bu değer, uygulamanın başlatma süresinden büyük olmalıdır.
-
Zaman aşımı
Tek bir prob için saniye cinsinden zaman aşımı süresi. Varsayılan değer 1'dir. Örneğin, bu değeri 10 olarak ayarlarsanız, 10 saniye içinde yanıt alınamazsa pro başarısız olur. Bu parametreyi 0 olarak ayarlarsanız veya boş bırakırsanız varsayılan 1 saniyelik zaman aşımı uygulanır.
-
Periyot
Sağlık denetimleri arasındaki saniye cinsinden aralık. Varsayılan değer 30'dur. Örneğin, bu değeri 5 olarak ayarlarsanız her 5 saniyede bir kontrol gerçekleştirilir. Başlatmayı hızlandırmak amacıyla SAE, bir örnek başlatıldıktan hemen sonra hazırlık probunu yapılandırılan periyottan daha sık çalıştırabilir; bu sayede örnek daha hızlı trafik almaya başlayabilir.
Yordam
-
Uygulama oluşturun
SAE uygulama listesinde üst kısımdan hedef bölgeyi ve ad alanını seçin, ardından Create Application (Uygulama Oluştur) öğesine tıklayın. basic information (temel bilgiler) sayfasındaki ayarları yaptıktan sonra Next: advanced settings (Sonraki: gelişmiş ayarlar) seçeneğine tıklayın.
Çalışan bir uygulamayı değiştirin
UyarıBir uygulamayı yeniden dağıtmak onu yeniden başlatır. Hizmet kesintilerini veya beklenmeyen diğer hataları önlemek için dağıtım işlemlerini yoğun olmayan saatlerde gerçekleştirin.
SAE uygulama listesinde üst kısımdan hedef bölgeyi ve ad alanını seçin, ardından uygulamanızın ayrıntılar sayfasına gitmek için uygulamanızın Application ID (Uygulama Kimliği) değerine tıklayın. Sol gezinme bölmesinde basic information (temel bilgiler) seçeneğine tıklayın ve sağ üst köşede yer alan deploy application (uygulamayı dağıt) butonuna basın.
Durdurulmuş bir uygulamayı değiştirin
SAE uygulama listesinde üst kısımdan hedef bölgeyi ve ad alanını seçin, ardından uygulamanızın ayrıntılar sayfasına gitmek için uygulamanızın Application ID (Uygulama Kimliği) değerine tıklayın. basic information (temel bilgiler) sekmesine gidin ve Modify Application Configuration (Uygulama Yapılandırmasını Değiştir) seçeneğine tıklayın.
Application health check settings (Uygulama sağlık denetimi ayarları) bölümünü genişletin ve ihtiyacınıza göre parametreleri yapılandırın.
Yapılandırma
-
Gerektiğinde Enable application instance liveness check (Liveness configuration) (Uygulama örneği canlılık denetimini etkinleştir), Enable application readiness probe (Readiness configuration) (Uygulama hazırlık probunu etkinleştir) veya Enable startup probe configuration (Başlatma probu yapılandırmasını etkinleştir) seçeneklerini açın. Üç prob türü için de yapılandırma parametreleri aynıdır.
NotCanlılık, hazırlık ve başlatma problarını tek tek veya herhangi bir kombinasyonda yapılandırabilirsiniz. Üçünün de yapılandırılması önerilir.
Üç sağlık denetiminin tümü yapılandırıldığında önce başlatma probu çalışır. Canlılık ve hazırlık probları yalnızca başlatma probu başarılı olduktan sonra, her biri kendi yapılandırılmış ilk gecikme süresine uyarak devreye girer.
-
Bir Check method (Kontrol yöntemi) seçin ve ilgili parametreleri yapılandırın.
HTTP request check (HTTP isteği kontrolü): Bir HTTP isteği göndererek örnek sağlığını kontrol eder. Durum kodu 200 ile 399 arasındaysa örnek sağlıklı kabul edilir; aksi takdirde sağlıksızdır.
TCP port check (TCP bağlantı noktası kontrolü): Bir TCP soket bağlantısı kurarak örnek sağlığını kontrol eder. Bağlantı başarılı olursa örnek sağlıklı kabul edilir; aksi takdirde sağlıksızdır.
Executable command check (Çalıştırılabilir komut kontrolü): İçeride bir komut çalıştırarak örnek sağlığını kontrol eder. Komut 0 çıkış kodu döndürürse örnek sağlıklı kabul edilir; aksi takdirde sağlıksızdır.
HTTP request
Parameter
Description
Path
HTTP sunucusunda erişilecek yol.
Port
HTTP sunucusunda erişilecek bağlantı noktası.
Advanced settings
Yanıt gövdesinde belirli bir anahtar kelimenin bulunup bulunmadığını doğrulayan isteğe bağlı bir kontrolü yapılandırmak için advanced settings (gelişmiş ayarlar) bölümünü genişletin.
Protocol
HTTP veya HTTPS seçin.
initial delay (seconds)
Uygulama başladıktan sonra ilk probun başlamasına kadar geçen saniye cinsinden gecikme süresi. Dağıtım sırasında prob başarısızlıklarını ve buna bağlı yeniden başlatmaları önlemek için bu değer, uygulamanın başlatma süresinden büyük olmalıdır.
timeout (seconds)
Tek bir prob için saniye cinsinden zaman aşımı süresi. Varsayılan değer 1'dir. Örneğin, bu değeri 10 olarak ayarlarsanız, 10 saniye içinde yanıt alınamazsa pro başarısız olur. Bu parametreyi 0 olarak ayarlarsanız veya boş bırakırsanız varsayılan 1 saniyelik zaman aşımı uygulanır.
period (seconds)
Sağlık denetimleri arasındaki saniye cinsinden aralık. Varsayılan değer 30'dur. Örneğin, bu değeri 5 olarak ayarlarsanız her 5 saniyede bir kontrol gerçekleştirilir. Başlatmayı hızlandırmak amacıyla SAE, bir örnek başlatıldıktan hemen sonra hazırlık probunu yapılandırılan periyottan daha sık çalıştırabilir; bu sayede örnek daha hızlı trafik almaya başlayabilir.
healthy threshold (times)
Bir probun başarısız olduktan sonra başarılı kabul edilmesi için gereken ardışık başarı sayısının minimum değeri. Canlılık probu için bu değer 1 olmalıdır.
unhealthy threshold (times)
Bir probun başarısız kabul edilmesi için gereken ardışık başarısızlık sayısı.TCP port
Parameter
Description
TCP port
Sağlık denetimi için erişilecek TCP bağlantı noktası.
initial delay (seconds)
Uygulama başladıktan sonra ilk probun başlamasına kadar geçen saniye cinsinden gecikme süresi. Dağıtım sırasında prob başarısızlıklarını ve buna bağlı yeniden başlatmaları önlemek için bu değer, uygulamanın başlatma süresinden büyük olmalıdır.
timeout (seconds)
Tek bir prob için saniye cinsinden zaman aşımı süresi. Varsayılan değer 1'dir. Örneğin, bu değeri 10 olarak ayarlarsanız, 10 saniye içinde yanıt alınamazsa pro başarısız olur. Bu parametreyi 0 olarak ayarlarsanız veya boş bırakırsanız varsayılan 1 saniyelik zaman aşımı uygulanır.
period (seconds)
Sağlık denetimleri arasındaki saniye cinsinden aralık. Varsayılan değer 30'dur. Örneğin, bu değeri 5 olarak ayarlarsanız her 5 saniyede bir kontrol gerçekleştirilir. Başlatmayı hızlandırmak amacıyla SAE, bir örnek başlatıldıktan hemen sonra hazırlık probunu yapılandırılan periyottan daha sık çalıştırabilir; bu sayede örnek daha hızlı trafik almaya başlayabilir.
healthy threshold (times)
Bir probun başarısız olduktan sonra başarılı kabul edilmesi için gereken ardışık başarı sayısının minimum değeri. Canlılık probu için bu değer 1 olmalıdır.
unhealthy threshold (times)
Bir probun başarısız kabul edilmesi için gereken ardışık başarısızlık sayısı.Executable command
Parameter
Description
initial delay (seconds)
Uygulama başladıktan sonra ilk probun başlamasına kadar geçen saniye cinsinden gecikme süresi. Dağıtım sırasında prob başarısızlıklarını ve buna bağlı yeniden başlatmaları önlemek için bu değer, uygulamanın başlatma süresinden büyük olmalıdır.
timeout (seconds)
Tek bir prob için saniye cinsinden zaman aşımı süresi. Varsayılan değer 1'dir. Örneğin, bu değeri 10 olarak ayarlarsanız, 10 saniye içinde yanıt alınamazsa pro başarısız olur. Bu parametreyi 0 olarak ayarlarsanız veya boş bırakırsanız varsayılan 1 saniyelik zaman aşımı uygulanır.
period (seconds)
Sağlık denetimleri arasındaki saniye cinsinden aralık. Varsayılan değer 30'dur. Örneğin, bu değeri 5 olarak ayarlarsanız her 5 saniyede bir kontrol gerçekleştirilir. Başlatmayı hızlandırmak amacıyla SAE, bir örnek başlatıldıktan hemen sonra hazırlık probunu yapılandırılan periyottan daha sık çalıştırabilir; bu sayede örnek daha hızlı trafik almaya başlayabilir.
healthy threshold (times)
Bir probun başarısız olduktan sonra başarılı kabul edilmesi için gereken ardışık başarı sayısının minimum değeri. Canlılık probu için bu değer 1 olmalıdır.
unhealthy threshold (times)
Bir probun başarısız kabul edilmesi için gereken ardışık başarısızlık sayısı.
Command
Örnek içinde çalıştırılacak komut. Pro komutları hakkında daha fazla bilgi için Kubernetes belgelerindeki Configure Probes konusuna bakın.
NotSAE iki kabuk yorumlayıcısı sağlar:
-
>_ /bin/sh
-
>_ /bin/bash
Örnek:
cat /tmp/healthykomutu,/tmp/healthydosyasının varlığını periyodik olarak kontrol eder. Dosya varsa kontrol başarılı olur (0 döndürür).
Sonuçları doğrulayın
Sağlık denetimlerini yapılandırdıktan sonra uygulamanın basic information (temel bilgiler) sayfasına gidin ve Instances (Örnekler) sekmesine tıklayın. Default Group (Varsayılan Grup) alanında her bir örneğin çalışma durumunu görüntüleyebilirsiniz. Sağlık denetimi yapılandırmasıyla ilgili ayrıntıları görmek için durum simgesinin üzerine gelin.
|
Running status |
Description |
|
Örnek için hiçbir sağlık denetiminin yapılandırılmadığını gösterir. Not
|
|
Canlılık ve hazırlık sağlık denetimleri başarısız oldu Örnek durumu Running (Çalışıyor) şeklindedir ancak kırmızı renkte bir Health check failed (Sağlık denetimi başarısız) mesajı görüntülenir. |
Sağlık denetiminin başarısız olduğunu ve örneğin sağlıksız olduğunu gösterir. Not
Başarısızlık nedenini görmek için örnek durumunun üzerine gelin. Çözüm adımları için Troubleshooting Guide (Sorun Giderme Kılavuzu) seçeneğine tıklayın. |
|
Sağlık denetimi geçti Örnek durumu, herhangi bir uyarı mesajı içermeyen yeşil renkli Running (Çalışıyor) durumudur. |
Sağlık denetiminin geçtiğini ve örneğin sağlıklı olduğunu gösterir. |
Sağlık denetimi başarısızlıklarının yaygın nedenleri
İlk gecikme süresi çok kısadır ve sağlık denetimi uygulama tamamen başlatılmadan önce başlar. Gecikme süresini artırarak tekrar deneyin.
Sağlık denetimi yapılandırması hatalıdır. Bağlantı noktasını ve yolu doğrulayın.
Hizmet aşırı yük altındadır. Onaylamak için uygulama izleme verilerini kontrol edin. Sorun bu kaynaklıysa örnek sayısını artırın, daha büyük bir örnek türü kullanın veya JVM yığın boyutunu azaltın.
Uygulama başlatılamıyor. Sorunu teşhis etmek için sağlık denetimlerini devre dışı bırakmayı deneyin. Uygulama yine de başlatılamıyorsa kodunuzu optimize etmeniz gerekebilir.