Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) güvenilirlik

Azure Kubernetes Service (AKS), Kubernetes dağıtımını, yönetimini ve işlemlerini basitleştiren yönetilen bir kapsayıcı düzenleme hizmetidir.

Azure'ı kullandığınızda güvenilirlik paylaşılan bir sorumluluktır. Microsoft, dayanıklılık ve kurtarmayı desteklemek için çeşitli özellikler sunar. Bu özelliklerin kullandığınız tüm hizmetler içinde nasıl çalıştığını anlamak ve iş hedeflerinize ve çalışma süresi hedeflerinize ulaşmak için ihtiyacınız olan özellikleri seçmek sizin sorumluluğunuzdadır.

Bu makalede, Azure Kubernetes Service'in (AKS) geçici hatalar, kullanılabilirlik alanı kesintileri ve bölge kesintileri gibi çeşitli olası kesintilere ve sorunlara karşı nasıl dayanıklı hale getirilmeye başlandığı açıklanır. Ayrıca diğer sorun türlerinden kurtarmak için yedeklemeleri nasıl kullanabileceğinizi açıklar ve Azure Kubernetes Service (AKS) hizmet düzeyi sözleşmesi (SLA) hakkındaki bazı önemli bilgileri vurgular.

Üretim dağıtımı önerileri

AKS'de güvenilir üretim iş yüklerini dağıtma hakkında öneriler için aşağıdaki makalelere bakın:

Güvenilirlik mimarisine genel bakış

AKS kümesi oluşturduğunuzda Azure platformu otomatik olarak şunları oluşturur ve yapılandırılır:

  • İş yükünüzü yönetmek için gereken API sunucusu, etcd, zamanlayıcı ve diğer podlara sahip bir denetim düzlemi.

  • Aboneliğinize eklenen ve sistem düğümü havuzunu barındıran, kube-system ad alanında çalışan eklentilerinizi ve diğer podları içeren bir yapı.

Bu ilk düğüm havuzu kurulumu tamamlandıktan sonra, kendi kullanıcı iş yükleriniz için düğüm havuzları ekleyebilir veya silebilirsiniz . AKS, güvenilirlik için düğüm havuzlarını yönetmez ve iş yüklerinizin altyapı hatalarına dayanıklı olduğundan emin olmanız gerekir.

Sistem düğümü havuzu ve kullanıcı düğümü havuzları dahil olmak üzere Kubernetes denetim düzlemini ve düğüm bileşenlerini gösteren diyagram.

Dayanıklılık, siz ve Microsoft arasında paylaşılan bir sorumlulukdur. BIR işlem hizmeti olarak AKS, kümenizin güvenilirliğinin bazı yönlerini yönetir, ancak diğer yönlerini yönetmek sizin sorumluluğunuzdadır.

  • Microsoft , AKS'nin denetim düzlemini ve diğer yönetilen bileşenlerini yönetir.

  • Bu sizin sorumluluğunuzdadır:

    • Düğüm havuzları ve hizmetlere bağlanan yük dengeleyiciler de dahil olmak üzere bileşenlerin güvenilirlik gereksinimlerinizi karşılayacak şekilde nasıl yapılandırılacağını tanımlayın. Bileşenleri tanımladıktan sonra Microsoft bunları sizin yerinize dağıtır ve yönetir.

    • Depolama ve veritabanları dahil olmak üzere AKS kümesinin dışındaki tüm bileşenleri yönetin. Bu bileşenlerin güvenilirlik gereksinimlerinizi karşıladığını doğrulayın. İş yüklerinizi dağıtırken, bu hizmetler için en iyi yöntemleri izleyerek diğer Azure bileşenlerinin de dayanıklılık için yapılandırıldığından emin olun.

Geçici hatalara dayanıklılık

Geçici hatalar, bileşenlerde kısa ve aralıklı hatalardır. Bunlar genellikle bulut gibi dağıtılmış bir ortamda gerçekleşir ve işlemlerin normal bir parçasıdır. Geçici hatalar kısa bir süre sonra kendilerini düzeltmektedir. Uygulamalarınızın genellikle etkilenen istekleri yeniden deneyerek geçici hataları işleyebileceği önemlidir.

Bulutta barındırılan tüm uygulamalar, bulutta barındırılan API'ler, veritabanları ve diğer bileşenlerle iletişim kurarken Azure geçici hata işleme yönergelerini izlemelidir. Daha fazla bilgi için bkz Geçici hataları ele alma önerileri.

AKS kullandığınızda, uygulama kilitlenmeleri, pod ölçeklendirme ve dengeleme işlemleri, düğüm yamaları ve donanım veya ağ sorunları gibi geçici altyapı hataları gibi çeşitli nedenlerden dolayı ara sıra hatalar oluşabilir.

Tüm geçici hataları ortadan kaldırmak mümkün değildir, bu nedenle AKS tarafından barındırılan uygulamalarınıza erişen istemciler başarısız istekleri yeniden denemeye ve diğer geçici hata işleme önerilerine uymaya hazır olmalıdır. Dağıtımınızdaki en iyi Kubernetes ve Azure uygulamalarını izleyerek geçici hata olasılığını en aza indirip bunların neden olabileceği kapalı kalma süresini önleyebilir veya azaltabilirsiniz.

  • Belirli bir anda kaç podun Ready durumda olması gerektiğini belirtmek için, pod YAML dosyanızda pod kesinti bütçelerini (PDB) ayarlayın. PDB'leri ayarladığınızda, AKS düğümleri sınırlayıp boşaltma işlemlerini çalıştırırken, çoğaltmaların en azından minimum bir kullanılabilirlik seviyesine sahip olmasını sağlar. Yükseltmeler gibi işlemler sırasında bir PDB karşılanamazsa pod çalışmaya devam eder ve işlem başarısız olabilir. Daha fazla bilgi için bkz. PDB'ler.
  • Belirli bir zamanda kullanılamaz hale gelebilecek en fazla çoğaltma sayısını tanımlamak için maxUnavailable kullanın. Örneğin, sıralı bir yeniden başlatma gerçekleştirdiğinizde AKS, belirli bir anda maxUnavailable'den fazla podun devreye girmemesini sağlar. Daha fazla bilgi için bkz . maxUnavailable.
  • Dağıtım için en iyi yöntemleri izleyin. Pod çoğaltmaları, uygulama sorunları nedeniyle de başarısız olabilir. Daha fazla bilgi için bkz. AKS kümesi güvenilirliği için dağıtım düzeyi en iyi yöntemleri .

Uyarı

AKS'nin dağıtımlarınızı en iyi yöntemlere uymak ve engelleme veya uyarı bildirimleri sağlamak için doğrulamasını istiyorsanız , dağıtım korumalarını kullanabilirsiniz. Dağıtım korumaları, kodunuz kümeye dağıtılmadan önce ürün için en iyi yöntemlerin uygulanmasına yardımcı olan yönetilen bir tekliftir.

Kullanılabilirlik alanı hatalarına dayanıklılık

Kullanılabilirlik alanları , bir Azure bölgesi içindeki veri merkezlerinin fiziksel olarak ayrı gruplarıdır. Bir bölge başarısız olduğunda hizmetler kalan bölgelerden birine devredilebilir.

Kullanılabilirlik alanlarını destekleyen bir bölgeye AKS kümesi dağıttığınızda, farklı bileşenler farklı yapılandırma türleri gerektirir.

AKS denetim düzlemi varsayılan olarak bölgeye dayanıklıdır. Bir bölge başarısız olursa, denetim düzlemi dayanıklılık elde etmek için herhangi bir yapılandırma veya yönetim gerektirmez. Ancak, bir bölge başarısız olduğunda kümenizin çalışır durumda kalması için denetim düzlemi dayanıklılığı yeterli değildir. Dağıttığınız sistem düğümü havuzu ve kullanıcı düğümü havuzları için, iş yüklerinizin kullanılabilirlik alanı hatalarına dayanıklı olduğundan emin olmanıza yardımcı olmak için kullanılabilirlik alanı desteğini etkinleştirmeniz gerekir.

Gereksinimler

Bölge desteği: Kullanılabilirlik alanlarını destekleyen herhangi bir bölgeye bölge dayanıklı AKS kümeleri dağıtabilirsiniz.

Değerlendirmeler

Bir bölgedeki AKS üretim iş yüklerinin güvenilirliğini ve dayanıklılığını artırmak için aşağıdaki yapılandırmaları yaparak AKS'yi alanlar arası yedeklilik için yapılandırmanız gerekir:

  • Birden çok kopya dağıtın. Kubernetes, düğüm etiketlerine göre podlarınızı düğümler arasında dağıtır. İş yükünüzü bölgelere yaymak için podunuzun birden fazla kopyasını konumlandırmanız gerekir. Örneğin, düğüm havuzunu üç bölgede yapılandırdığınızda ancak podunuzun yalnızca tek bir kopyasını dağıtırsanız, dağıtımınız bölge dayanıklılığına sahip olmayacaktır.

  • Otomatik ölçeklendirmeyi etkinleştirin. Kubernetes düğüm havuzları el ile ve otomatik ölçeklendirme seçenekleri sağlar. El ile ölçeklendirmeyi kullanarak gerektiğinde düğüm ekleyebilir veya silebilirsiniz ve bekleyen podlar düğüm havuzunun ölçeğini artırana kadar bekler. AKS tarafından yönetilen ölçeklendirme , küme otomatik ölçeklendiricisini veya düğüm otomatik sağlamayı (NAP) kullanır. AKS, aboneliğinizin SKU kotası ve kapasitesi içindeki pod gereksinimlerine göre düğüm havuzunun ölçeğini büyütür veya küçültür. Bu yöntem, podlarınızın erişilebilirlik bölgelerindeki uygun düğümlerde ayarlanmasını sağlamaya yardımcı olur.

  • Pod topolojisi kısıtlamalarını ayarlayın. Podların farklı düğümlere veya bölgelere nasıl yayıldığını denetlemek için pod topolojisi yayma kısıtlamalarını kullanın. Kısıtlamalar, HA, dayanıklılık ve verimli kaynak kullanımı elde etmene yardımcı olur. Podları tamamen farklı bölgeler arasında yaymak istiyorsanız, bölgeler arasında pod dengesini korumak için bir podu bekleme durumuna zorlayacak kısıtlamalar ayarlayabilirsiniz. Daha fazla bilgi için bkz. Pod topolojisi yayma kısıtlamaları.

  • Bölgeye dayanıklı ağ yapılandırmasını gerçekleştirin. Podlarınız dış trafiğe hizmet ediyorsa Azure Application Gateway, Azure Load Balancer veya Azure Front Door gibi hizmetleri kullanarak küme ağ mimarinizi yapılandırın.

  • Bağımlılıkların bölgesel dayanıklı olduğundan emin olun. AKS uygulamalarının çoğu depolama, güvenlik veya ağ için diğer hizmetleri kullanır. Bu hizmetler için bölge dayanıklılığı önerilerini gözden geçirdiğinizden emin olun.

Maliyet

AKS'de kullanılabilirlik alanı desteğini etkinleştirmek için ek ücret alınmaz. Kullanılabilirlik alanlarına dağıttığınız sanal makineler (VM) ve diğer kaynaklar için ödemeniz gerekir.

Kullanılabilirlik alanı desteğini yapılandırma

  • Kullanılabilirlik alanı desteğine sahip yeni bir AKS kümesi oluşturun: Kullanılabilirlik alanı desteğini yapılandırmak için bkz. Kullanılabilirlik alanlarını kullanan bir Azure Kubernetes Service (AKS) kümesi oluşturma.
  • Göç: Küme oluşturduktan sonra kullanılabilirlik alanı desteğini etkinleştiremezsiniz. Bunun yerine, kullanılabilirlik alanı desteği etkinleştirilmiş yeni bir küme oluşturmanız ve mevcut kümeyi silmeniz gerekir.
  • Kullanılabilirlik alanı desteğini devre dışı bırakın: Küme oluşturduktan sonra kullanılabilirlik alanı desteğini devre dışı bırakamazsınız. Bunun yerine, kullanılabilirlik alanı desteği devre dışı bırakılmış yeni bir küme oluşturmanız ve mevcut kümeyi silmeniz gerekir.

Tüm bölgeler sağlıklı olduğunda davranış

Bu bölümde AKS kümeleri kullanılabilirlik alanı desteği için yapılandırıldığında ve tüm kullanılabilirlik alanları çalışır durumda olduğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Bölgeler arasında trafik yönlendirme: Kullanılabilirlik alanlarını kullanan bir AKS kümesi dağıttığınızda, ağ bileşenlerinizin de bölge dayanıklı olduğundan emin olmak önemlidir. Kullandığınız yük dengeleyicilere ve diğer ağ bileşenlerine bağlı olarak, trafiği doğru bölgelerdeki doğru düğümlere yönlendirmek ve bölge kesintilerine yanıt vermek için bileşenleri açıkça yapılandırmanız gerekebilir. Daha fazla bilgi için bkz. AKS için bölge dayanıklılığı konuları.

  • Bölgeler arasında veri çoğaltma: Durum bilgisi olmayan bir iş yükü çalıştırıyorsanız, uygulama verilerini depolamak için Azure veritabanları, Azure Yönetilen Redis veya Azure Depolama gibi yönetilen Azure hizmetlerini kullanmanız gerekir. Veri kaybı riski olmadan veya kullanıcı deneyimini etkilemeden trafiğinizin düğümler ve bölgeler arasında taşınabilmesini sağlamaya yardımcı olması için bu hizmetleri kullanabilirsiniz. Durumsuz podları yönetmek ve bölgeler arasında eşit dağıtım sağlamak için Kubernetes dağıtımlarını, hizmetlerini ve sağlık kontrollerini kullanabilirsiniz.

    Azure disklerini kullanarak kümenizde durum depolamanız gerekiyorsa, verilerinizin birden çok kullanılabilirlik alanında çoğaltılmasını sağlamaya yardımcı olmak için Azure alanlar arası yedekli depolamayı kullanın. Daha fazla bilgi için bkz. Uygulama gereksinimlerine göre doğru disk türünü seçme.

Bölge hatası sırasındaki davranış

Bu bölümde, AKS kümeleri kullanılabilirlik alanı desteğiyle yapılandırılırken kullanılabilirlik alanı kesintisi oluştuğunda neler bekleyebileceğiniz açıklanmaktadır.

  • Algılama ve yanıt: Bir bölge kesintisi meydana geldiğinde, kontrol düzlemi otomatik olarak yük devreder. Düğüm havuzlarınız kullanılabilirlik alanlarını kullanıyorsa ve bölge dayanıklılığı en iyi yöntemlerini izlerse, AKS'nin çalışır durumdaki bölgelerdeki düğümleri ve çoğaltmaları getirmesini bekleyebilirsiniz. Küme otomatik ölçeklendiricisi veya NAP gibi yönetilen çözümleri kullandığınızda AKS bu görevi otomatik olarak yapar. Otomatik ölçeklendirme olmadan, düğümler ve replikalar Bekleme durumunda kalır ve düğüm havuzunu ölçeklendirmek için manuel müdahale bekler.

    AKS ayrıca podları sağlam bölgelerde yeniden dengelemeye çalışır. Bölge azaltma senaryosunda düğüm havuzunuzu el ile ölçeklendirmeyi seçerseniz, iyi durumdaki bölgelerde kullanılabilir düğüm olmadığında podlarınız Beklemede durumda kalabilir. Kalan bölgelerde ölçeği genişletme, kullandığınız VM SKU'su için kota ve kapasite kullanılabilirliğine de tabidir.

  • Bildirim: Bir bölge kapatıldığında Microsoft sizi otomatik olarak bilgilendirmez. Ancak, tek bir kaynağın durumunu izlemek için Azure Kaynak Durumu'nı kullanabilir ve sorunları size bildirmek için Kaynak Durumu uyarıları ayarlayabilirsiniz. Azure Hizmet Durumu'nı , bölge hataları dahil olmak üzere hizmetin genel durumunu anlamak için de kullanabilir ve sorunları size bildirmek için Hizmet Durumu uyarıları ayarlayabilirsiniz.

    Düğümlerinizin ve podlarınızın durumunu izlemek için düğüm veya pod sistem durumu ölçümlerinizi de kullanabilirsiniz.

  • Etkin istekler: Tüm etkin isteklerde kesintiler yaşanabilir. Bazı istekler başarısız olabilir ve iş yükünüz başka bir bölgeye devredildiyse gecikme süresi artabilir.

  • Beklenen veri kaybı: Azure disklerini kullanarak kümenizde durum depolarsanız ve alanlar arası yedekli depolama kullanırsanız, bölge hatasının veri kaybına neden olması beklenemez.

  • Beklenen kapalı kalma süresi: Kümeniz ve podlarınız için bölge dayanıklılığını doğru şekilde yapılandırırsanız, bir bölge hatasının AKS iş yükünüzde kapalı kalma süresine neden olması beklenmez.

  • Trafik yeniden yönlendirme: Yük dengeleyiciler, yeni gelen istekleri iyi durumdaki düğümlerde çalışan podlara yeniden yönlendirir.

Daha fazla bilgi için bkz. AKS için bölge dayanıklılığı konuları.

Bölge kurtarma

Kullanılabilirlik alanı kurtarıldığında, geri dönüş davranışı bileşene bağlıdır.

  • Kontrol düzlemi: AKS, tüm kullanılabilirlik alanlarında denetim düzlemi işlemlerini otomatik olarak geri yükler. El ile müdahale gerekmez.

  • Düğüm havuzları ve düğümler: Failback işleminden hemen sonra, düğümler daha önce sağlıklı olan bölgelerde kalır ve kurtarılan bölgede geri yüklenmez. Ancak, düğüm havuzunuzun ölçeğini genişlettiğinizde olduğu gibi bir sonraki düğüm ölçeklendirme işleminizde düğüm havuzu kurtarılan bölgede düğümler oluşturabilir.

  • Podlar: Failback'ten hemen sonra, podlar şu anda üzerinde çalıştıkları düğümlerde çalışmaya devam eder. Yeni podlar oluşturulduğunda veya mevcut podlar yeniden oluşturulduğunda, kurtarılan bölgedeki düğümleri kullanabilirler.

  • Depolama: Podlara bağlı olan her türlü depolama, bölge yedekli depolamanın çalışma şekline göre iyileştirilir.

Bölge hataları için test

Aşağıdaki yöntemleri kullanarak kullanılabilirlik alanı hatalarına dayanıklılığınızı test edebilirsiniz:

Bölge genelindeki hatalara dayanıklılık

AKS kümeleri tek bölgeli kaynaklardır. Bölge kullanılamıyorsa AKS kümeniz de kullanılamaz.

Dayanıklılık için özel çok bölgeli çözümler

Kubernetes iş yükünüzü birden çok Azure bölgesine dağıtmanız gerekiyorsa, bu kümelerin düzenlemesini yönetmek için iki seçeneğiniz vardır.

  • Daha basit ve yönetilen bir deneyim istiyorsanız Azure Kubernetes Fleet Manager'ı kullanın. Azure Kubernetes Fleet Manager'ı kullanarak şunları yapabilirsiniz:

    • Aks kümelerini tek bir birim olarak yönetin ve bu kümeler birden çok Azure bölgesine dağıtılabilir.

    • Küme ve düğüm görüntüsü yükseltmeleri gibi küme yönetiminin belirli yönlerini otomatikleştirin.

    • Trafiği kümelere yaymak için trafik dağıtım özelliklerini kullanın ve bir bölge kullanılamıyorsa otomatik olarak yedek sisteme geçiş yapın.

  • İş yükünüz farklı bölgeler arası yük devretme bileşenleri üzerinde daha ayrıntılı denetim gerektiriyorsa, el ile etkin-etkin veya etkin-pasif dağıtım modeli kullanarak yük devretmeyi düzenleyin. Daha fazla bilgi için bkz. AKS için HA ve DR'ye genel bakış.

Yedekleme ve geri yükleme

Azure Backup, AKS kümesi kaynaklarını ve kümeye bağlanan kalıcı birimleri yedeklemek için kullanabileceğiniz bir uzantıya sahiptir. Yedekleme kasası, yedekleme ve geri yükleme işlemlerini gerçekleştirmek için uzantı aracılığıyla AKS kümesiyle iletişim kurar.

AKS kümeniz eşleştirilmiş bir bölgedeyse yedeklemeleri coğrafi olarak yedekli depolamada depolanacak şekilde yapılandırabilirsiniz. Coğrafi yedekli yedeklemeleri eşleştirilmiş bölgeye geri yükleyebilirsiniz.

Daha fazla bilgi için aşağıdaki makalelere bakın:

Çoğu çözüm için yalnızca yedeklemelere güvenmemeniz gerekir. Bunun yerine, dayanıklılık gereksinimlerinizi desteklemek için bu kılavuzda açıklanan diğer özellikleri kullanın. Ancak yedeklemeler, diğer yaklaşımların koruma altına almayan bazı risklere karşı koruma sağlar. Daha fazla bilgi için bkz. Yedeklilik, çoğaltma ve yedekleme nedir?

Yedekleme gereksinimini en aza indiren durum bilgisi olmayan kümeler kullanmaya çaba gösterin. Verileri kümenizin içinde değil dış depolama sistemlerinde ve veritabanlarında depolayın.

Hizmet bakımına dayanıklılık

AKS, küme ve düğüm görüntülerine yönelik güncelleştirmeler de dahil olmak üzere kümenizde bakım gerçekleştirir. Kubernetes'in yükseltmeler sırasında bile üretim trafiğinize hizmet vermek için gereken en düşük pod örneği sayısını koruduğundan emin olmak için podlarınızı pod kesintisi bütçelerini kullanacak şekilde yapılandırmanız gerekir.

AKS, kritik zaman aralıklarında hizmet kesintilerini azaltmak için, planlı bakım sürelerini belirtebilmeniz için denetimler sağlar. Daha fazla bilgi edinmek için bkz. Azure Kubernetes Service kümeniz için yükseltmeleri zamanlamak ve denetlemek için planlı bakımı kullanma.

Hizmet düzeyi sözleşmesi

Azure hizmetleri için hizmet düzeyi sözleşmesi (SLA), her hizmetin beklenen kullanılabilirliğini ve bu kullanılabilirlik beklentisini elde etmek için çözümünüzün karşılaması gereken koşulları açıklar. Daha fazla bilgi için çevrimiçi hizmetler için SLA'lar sayfasına bakın.

AKS , küme yönetimi için üç fiyatlandırma katmanı sağlar: Ücretsiz, Standart ve Premium. Ücretsiz katmanı, iş yüklerinizi test etmek için AKS kullanmanızı sağlar. Standart ve Premium katmanları üretim iş yükleri için tasarlanmıştır. Kullanılabilirlik alanlarının etkinleştirildiği bir AKS kümesi dağıttığınızda, SLA'da tanımlanan çalışma süresi yüzdesi artar. Ancak, SLA yalnızca bir kümeyi Standart veya Premium fiyatlandırma katmanında dağıttığınızda geçerlidir.