Aracılığıyla paylaş


Azure Spring Apps'te barındırılan uygulamalar için sistem durumu yoklamalarını ve düzgün sonlandırma sürelerini yapılandırma

Bu makale şunlar için geçerlidir: ✔️ Java ✔️ C#

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede, sistem durumu yoklamaları ve düzgün sonlandırma süreleri ile Azure Spring Apps'te çalışan uygulamaları özelleştirme adımları gösterilmektedir.

Yoklama, bir uygulama örneğinde Azure Spring Apps tarafından düzenli aralıklarla gerçekleştirilen bir tanılama etkinliğidir. Tanılama gerçekleştirmek için Azure Spring Apps aşağıdaki eylemlerden birini gerçekleştirir:

  • Uygulama örneğinde seçtiğiniz rastgele bir komutu yürütür.
  • TCP yuva bağlantısı kurar.
  • HTTP isteğinde bulunur.

Azure Spring Apps her uygulama için varsayılan durum yoklaması kuralları sunar. Bu makalede uygulamanızı üç tür sistem durumu yoklaması ile nasıl özelleştirebileceğiniz gösterilmektedir:

  • Canlılık yoklamaları , bir uygulamanın ne zaman yeniden başlatileceğini belirler. Örneğin, canlılık yoklamaları, bir uygulamanın çalıştığı ancak ilerleme kaydedemediği durumlar gibi bir kilitlenme tanımlayabilir. Uygulamanın kilitlenme durumunda yeniden başlatılması, hatalara rağmen uygulamanın kullanılabilir olmasına neden olabilir.

  • Hazırlık yoklamaları , bir uygulama örneğinin trafiği kabul etmeye ne zaman hazır olduğunu belirler. Örneğin, hazırlık yoklamaları hangi uygulama örneklerinin uygulama için arka uç olarak kullanıldığını denetleyebilir. Bir uygulama örneği hazır olmadığında Kubernetes hizmet bulma özelliğinden kaldırılır. Daha fazla bilgi için bkz . Spring Boot uygulamalarınızı bulma ve kaydetme. Kurumsal plan ile hizmet bulma hakkında daha fazla bilgi için bkz . Tanzu Service Registry'yi kullanma.

  • Başlangıç yoklamaları , bir uygulamanın ne zaman başlatıldığını belirler. Başlangıç araştırması, başlatma başarılı olana kadar canlılık ve hazırlık denetimlerini devre dışı bırakır ve canlılık ve hazır olma yoklamalarının uygulama başlatmayı engellemediğinden emin olur. Yavaş başlatan uygulamalar üzerinde canlılık denetimleri gerçekleştirmek ve uygulamanın çalışır duruma gelmeden önce sonlandırılmasını önlemek için başlangıç yoklamalarını kullanabilirsiniz.

Önkoşullar

  • Azure Spring Apps uzantısıyla Azure CLI . Önceki sürümleri kaldırmak ve en son uzantıyı yüklemek için aşağıdaki komutu kullanın. Spring-cloud uzantısını daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için bu uzantıyı kaldırın.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    

Uygulamalar için sistem durumu yoklamalarını ve düzgün sonlandırmayı yapılandırma

Aşağıdaki bölümlerde Azure CLI kullanılarak sistem durumu yoklamalarının ve düzgün sonlandırmanın nasıl yapılandırıldığı açıklanmaktadır.

Düzgün sonlandırma

Aşağıdaki tabloda, düzgün sonlandırmayı yapılandırmak için kullanabileceğiniz özelliği açıklanmaktadır terminationGracePeriodSeconds .

Özellik adı Açıklama
terminationGracePeriodSeconds Uygulama örneğinde çalıştırılan işlemler zorla durdurulmadan önce sonlandırma sinyali gönderildikten sonra saniye cinsinden süre. Bu değeri, işleminiz için beklenen temizleme süresinden daha uzun ayarlayın. Değer negatif olmayan bir tamsayı olmalıdır. Yetkisiz kullanım süresini 0 olarak ayarlamak, uygulama örneğini sonlandırma sinyali aracılığıyla hemen durdurur ve kapatma fırsatı olmaz. Değer sıfır olduğunda Azure Spring Apps varsayılan yetkisiz kullanım süresini kullanır. Varsayılan değer 90'dır.

Sistem durumu yoklaması özellikleri

Aşağıdaki tabloda sistem durumu yoklamalarını yapılandırmak için kullanabileceğiniz özellikler açıklanmaktadır.

Özellik adı Açıklama
initialDelaySeconds Yoklamalar başlatılmadan önce uygulama örneği başlatıldıktan sonraki saniye sayısı. Varsayılan değer 0,en düşük değerdir.
periodSeconds Araştırmayı gerçekleştirmek için saniye cinsinden sıklık. Varsayılan değer 10'dur. En düşük değer 1'dir.
timeoutSeconds Yoklamanın zaman aşımına uğradıklarından saniye sayısı. Varsayılan değer 1,en düşük değerdir.
failureThreshold Başarılı olduktan sonra yoklamanın başarısız olduğu düşünülmesi için en az ardışık hata sayısı. Varsayılan değer 3'dür. En düşük değer 1'dir.
successThreshold Başarısız olduktan sonra yoklamanın başarılı olarak kabul edilmesi için en az ardışık başarı sayısı. Varsayılan değer 1 şeklindedir. Canlılık ve başlangıç için değer 1 olmalıdır. En düşük değer 1'dir.

Araştırma eylemi özellikleri

Yoklama kullanarak bir uygulama örneğini denetlemenin üç yolu vardır. Her araştırma aşağıdaki yoklama eylemlerinden birini tanımlamalıdır:

  • HTTPGetAction

    Belirtilen yolda uygulama örneğine yönelik bir HTTP GET isteği gerçekleştirir. Yanıt 200'den büyük veya buna eşit ve 400'den küçük bir durum koduna sahipse tanılama başarılı olarak kabul edilir.

    Özellik adı Açıklama
    scheme Konağa bağlanmak için kullanılacak şema. Varsayılan değer HTTP'dir.
    path Uygulama örneğinin HTTP sunucusunda /healthz gibi erişim yolu.
  • ExecAction

    Uygulama örneğinin içinde belirtilen bir komutu yürütür. Komut 0 durum koduyla çıkılırsa tanılama başarılı olarak kabul edilir.

    Özellik adı Açıklama
    command Uygulama örneğinin içinde yürütülecek komut. Komutun çalışma dizini, uygulama örneğinin dosya sistemindeki kök dizindir (/). Komut bir kabuğun içinde değil kullanılarak exec çalıştırıldığından, kabuk yönergeleri çalışmaz. Bir kabuk kullanmak için, açıkça kabuğa çağrıda bulunur. 0 çıkış durumu canlı/sağlıklı olarak değerlendirilir ve sıfır olmayan iyi durumda değildir.
  • TCPSocketAction

    Uygulama örneğinde TCP denetimi gerçekleştirir.

    Eylem için TCPSocketAction kullanılabilir özellik yok.

Uygulamanızı özelleştirme

Azure portalını kullanarak uygulamanızı özelleştirmek için aşağıdaki adımları kullanın.

  1. Ayarlar altında Uygulamalar'ı ve ardından listeden uygulamayı seçin.

    Screenshot of Azure portal showing the Apps page.

  2. Sol gezinti bölmesinde Yapılandırma'yı seçin, Sistem durumu yoklamaları'nı seçin ve sistem durumu yoklaması özelliklerini belirtin.

    Screenshot of the Azure portal Configuration page showing the Health probes tab.

  3. Sonlandırma yetkisiz kullanım süresini ayarlamak için Genel ayarlar'ı seçin ve Sonlandırma yetkisiz kullanım süresi kutusunda bir değer belirtin.

    Screenshot of the Azure portal Configuration page showing the General settings tab.

En iyi yöntemler

Azure Spring Apps'e sistem durumu yoklamaları eklerken aşağıdaki en iyi yöntemleri kullanın:

  • Canlılık ve hazırlık yoklamalarını birlikte kullanın. Azure Spring Apps, aynı anda hizmet bulma için iki yaklaşım sunar. Hazır olma yoklaması başarısız olduğunda, uygulama örneği yalnızca Kubernetes hizmet bulmadan kaldırılır. Düzgün yapılandırılmış bir canlılık yoklaması, beklenmeyen durumlardan kaçınmak için verilen uygulama örneğini Eureka hizmet keşfinden kaldırabilir. Hizmet bulma hakkında daha fazla bilgi için bkz . Spring Boot uygulamalarınızı bulma ve kaydetme. Kurumsal plan ile hizmet bulma hakkında daha fazla bilgi için bkz . Tanzu Service Registry'yi kullanma.

  • Bir uygulama örneği başlatıldığında, tarafından initialDelaySecondsbelirtilen gecikmeden sonra ilk denetim gerçekleşir. Sonraki denetimler, tarafından periodSecondsbelirtilen süre uzunluğuna göre düzenli aralıklarla gerçekleşir. Uygulama tarafından failureThresholdbelirtilen istekleri birkaç kez yanıtlayamazsa, uygulama örneği yeniden başlatılır. Toplam zaman aşımının initialDelaySeconds + periodSeconds * failureThreshold uygulamanızın başlangıç zamanından daha uzun olması için uygulamanızın yeterince hızlı başlatabileceğinden veya bu parametreleri güncelleştirebileceğinden emin olun.

  • Spring Boot uygulamaları için Spring Boot, Sistem Durumu Grupları desteğiyle birlikte gönderilir ve geliştiricilerin sistem durumu göstergelerinin bir alt kümesini seçmesine ve bunları tek bir bağıntılı sistem durumu altında gruplandırmasına olanak tanır. Daha fazla bilgi için Spring Blog'da Spring Boot ile Canlılık ve Hazırlık Yoklamaları bölümüne bakın.

    Aşağıdaki örnekte Spring Boot ile canlılık araştırması gösterilmektedir:

    "probe": {
           "initialDelaySeconds": 30,
           "periodSeconds": 10,
           "timeoutSeconds": 1,
           "failureThreshold": 30,
           "successThreshold": 1,
           "probeAction": {
               "type": "HTTPGetAction",
               "scheme": "HTTP",
               "path": "/actuator/health/liveness"
           }
       }
    

    Aşağıdaki örnekte Spring Boot ile hazır olma araştırması gösterilmektedir:

    "probe": {
           "initialDelaySeconds": 0,
           "periodSeconds": 10,
           "timeoutSeconds": 1,
           "failureThreshold": 3,
           "successThreshold": 1,
           "probeAction": {
               "type": "HTTPGetAction",
               "scheme": "HTTP",
               "path": "/actuator/health/readiness"
           }
       }
    

Sık sorulan sorular

Bu bölüm, Azure Spring Apps ile sistem durumu yoklamalarını kullanma hakkında sık sorulan soruların yanıtlarını sağlar.

  • Özelleştirilmiş sistem durumu yoklamalarına sahip uygulamalar oluşturduğumda 400 yanıt aldım. Bu ne anlama geliyor?

    Hata iletisi, sağlama hatasından hangi yoklamanın sorumlu olduğunu gösterir. Sistem durumu yoklaması kurallarının doğru olduğundan ve zaman aşımının uygulamanın çalışır durumda olması için yeterince uzun olduğundan emin olun.

  • Mevcut bir uygulama için varsayılan yoklama ayarları nelerdir?

    Aşağıdaki örnekte varsayılan ayarlar gösterilmektedir:

    "startupProbe": null,
    "livenessProbe": {
        "disableProbe": false,
        "failureThreshold": 3,
        "initialDelaySeconds": 300,
        "periodSeconds": 10,
        "probeAction": {
            "type": "TCPSocketAction"
        },
        "successThreshold": 1,
        "timeoutSeconds": 3
    },
    "readinessProbe": {
        "disableProbe": false,
        "failureThreshold": 3,
        "initialDelaySeconds": 0,
        "periodSeconds": 5,
        "probeAction": {
            "type": "TCPSocketAction"
        },
        "successThreshold": 1,
        "timeoutSeconds": 3
    }
    

Sonraki adımlar