Azure Kubernetes Service'te (AKS) durum bilgisi olan iş yükleri

Bu makale, Azure Kubernetes Service (AKS) üzerinde durum bilgisi içeren iş yüklerini çalıştırma ve taşıma konusunda genel bir bakış sunar: veritabanları ve durum bilgisi içeren hizmetler için tasarım desenleri, depolama seçenekleri ve geçiş başlangıç seçenekleri.

Durum bilgisi olan iş yükleri nelerdir?

Durum korumalı iş yükü, birden çok örnekteki durumu korumak ve böylece sorunsuz ve kişiselleştirilmiş bir kullanıcı deneyimi sağlamak için kalıcı veri depolama kullanan bir uygulamadır. Bu tasarım, veri tutarlılığı, oturum geçmişi ve güvenilirliğin önemli olduğu çevrimiçi bankacılık, çevrimiçi alışveriş ve e-posta gibi hizmetler için çok önemlidir. Durum bilgisi olan iş yükleri ayrıca yük devretme ve kurtarma gibi gelişmiş özelliklerden yararlanarak iş sürekliliğini sağlayan yüksek performanslı ve neredeyse gerçek zamanlı işleme senaryolarında verimlilik sunar.

Durum bilgisi olan iş yükleri birçok avantaj sunarken bazı zorluklar da sunar. Örneğin, durum bilgisi olan iş yükleri genellikle artan ek yük ve performans maliyetlerine yol açabilecek karmaşık işleme desenleri getirir. Uygulamanızın belirli gereksinimlerini anlamanız ve dikkate almanız, durumlu ve durumsuz çalışma arasındaki doğru dengeyi belirlemenize yardımcı olması açısından önemlidir.

Durum bilgisi olan iş yüklerinin kritik rolü göz önünde bulundurulduğunda, Azure bunları etkili bir şekilde çalıştırmak için çeşitli yaklaşımlar sağlar. Bu bölümde, Azure Kubernetes Service'te (AKS) durum bilgisi olan iş yüklerini dağıtmaya yönelik en iyi yöntemler özetlenir ve geliştiricilerin ve kuruluşların ihtiyaçlarına en uygun seçeneği belirlemesine yardımcı olur.

Durum bilgisi içeren iş yüklerini AKS’ye taşıma

Mevcut durum bilgisi içeren uygulamalarınızı AKS'ye taşıyorsanız, riski azaltmak ve dağıtımı hızlandırmak için bu kısa geçiş başlangıç kılavuzunu izleyin:

  1. Depolama ve kullanılabilirlik gereksinimlerini değerlendirme: Verileriniz için IOPS, aktarım hızı, gecikme süresi, dayanıklılık ve HA gereksinimlerini belgeleyin. İş yükünüz için blok (Azure Disk), dosya (Azure Dosyalar) veya özel CSI destekli depolama alanı gerekip gerekmediğini belirleyin.
  2. Bir CSI sürücüsü ve depolama topolojisi seçin: Bu gereksinimlerle eşleşen AKS tarafından desteklenen CSI sürücüsünü seçin (örneğin, blok depolama için Disk CSI Azure, paylaşılan dosya depolama için CSI Azure Dosyalar veya gelişmiş özellikler için üçüncü taraf CSI). Depolama birimi anlık görüntüsü ve çoğaltma gereksinimlerinin desteklendiğini doğrulayın.
  3. StatefulSets veya bir operatör kullanarak dağıtın: Replikaları StatefulSets ile taşıyın veya yük devretme, üyelik ve yedeklemeleri yönetmek için bir veritabanı operatörü kullanın. Tam geçiş öncesinde bir test ortamında geri yükleme, yük devretme ve sıralı yükseltme davranışını doğrulayın.

Daha fazla bilgi için bkz.: Durum bilgisi içeren iş yüklerini AKS’ye geçirme konusunda dikkat edilmesi gerekenler.

Yaygın durum bilgisi içeren geçiş senaryoları

  • PostgreSQL: Depolama IOPS ve HA gereksinimlerini değerlendirin, blok veya CSI destekli çoğaltılmış depolamayı seçin ve StatefulSet veya PostgreSQL işleciyle dağıtın. Bkz. PostgreSQL kılavuzu.
  • MongoDB: Yazma endişesi, günlük kaydı ve çoğaltma kümesi topolojisini doğrulayın; aktarım hızı ve dayanıklılık gereksinimlerini karşılayan depolamayı seçin ve StatefulSets veya MongoDB işlecini kullanarak dağıtın. Bkz. MongoDB kılavuzu.

Kubernetes durumlu çerçeve temeli yığını

Kubernetes durumlu çerçeve, ortak bir temel yığınla başlar. Bu durumda, birçok altyapı projesi için kullanılan popüler, standartlaştırılmış bir yığın olan KATE yığınını kullanın. KATE yığını aşağıdaki açık kaynak araçlarını kullanır:

AKS kılavuzları, 1. Gün işlemleri için tasarlandığından ArgoCD veya Terraform uygulanmaz. Ancak dağıtım ölçeklendirildikçe ve gereksinimleriniz geliştikçe, kılavuzlar KATE yığınının bir kısmını kullandığından ArgoCD ve Terraform'un tümleştirilmesi sizin için daha kolay olacaktır.

Azure için Kubernetes durum bilgisine sahip yapı

Temel yığını oluşturulduktan sonra, özellikle Azure Kubernetes Service'te (AKS) veri altyapısını çalıştırmaya yönelik temel kaynakları tümleştirerek Azure'da durum bilgisi olan iş yüklerini destekleyecek şekilde çerçeveyi geliştirmemiz gerekiyor.

Veritabanları veya ileti kuyrukları gibi durum bilgisi olan karmaşık iş yüklerini desteklemek için kısa ömürlü seçenekleri aşan depolama özellikleri gerekir. Özellikle, uygulama hataları veya farklı konaklara iş yükü yeniden atamaları gibi çeşitli olayları ele almak için daha fazla dayanıklılık ve kullanılabilirlik sunan sistemlere ihtiyacınız vardır. Birbirine bağlı üç Kubernetes kaynağından oluşan PersistentVolume alt sistemini kullanarak bu dayanıklılığı elde edebilirsiniz: PersistentVolumes, PersistentVolumeClaims ve StorageClasses. Bu alt sistem, kullanıcılara ve yöneticilere depolamanın nasıl sağlandığının ayrıntılarını depolamanın nasıl tüketildiğinden soyutlamaları için bir API sağlar.

Durum bilgisi taşıyan iş yüklerinin çoğu, bağlantı dizeleri, kullanıcı adları, parolalar ve sertifikalar gibi gizli bilgilerden verilere ihtiyaç duyar. Azure Key Vault, gerekli durum bilgisine sahip çerçeve gizlilerini barındırmak için kullandığımız gizli diziler için güvenli bir depo sağlar.

Gizli depo sırlarını Kubernetes Gizli Dizileri olarak eşitlemek için Secrets Store CSI Sürücüsü veya External Secrets Operatörü gibi bir Kubernetes Denetleyicisine veya Kubernetes Operatörüne de ihtiyacımız vardır.

Azure için Kubernetes durum bilgisi olan çerçeveyi gösteren diyagramın ekran görüntüsü.

Azure'da durum bilgisi olan iş yüklerini tasarlama ve dağıtma

Mevcut bir durum bilgisi içeren iş yükünü AKS'ye geçiriyorsanız, geçişe özgü değerlendirme ve doğrulama adımlarını incelemek için AKS'ye durum bilgisi içeren iş yükü geçirme başlangıç kılavuzuyla başlayın.

Aşağıdaki bölümlerde Azure'da durum bilgisi olan iş yükü senaryoları için tasarım ve dağıtım bilgilerine bağlantılar sağlanmaktadır.

MongoDB

PostgreSQL

Valkey

Apache Airflow

Strimzi ile Apache Kafka

GitHub Actions ile Azure Dosyalar

Not

StatefulSets kalıcı kimlikler ve depolama sağlasa da üretim açısından kritik durum bilgisi olan iş yükleri için Azure Spot düğüm havuzları önerilmez. Azure kapasiteyi geri aldığında, Spot VM'ler çok kısa bir bildirim süresiyle tahliye edilebilir; bu da düğümlerin aniden sonlandırılmasına ve disk biriminin kurtarılmasında veya pod'ların yeniden zamanlanmasında olası gecikmelere yol açabilir. Kalıcı verilere ve yüksek kullanılabilirliğe bağlı iş yükleri için normal düğüm havuzlarını ve uygun depolama dayanıklılığı mekanizmalarını kullanın. Azure Spot düğüm havuzları, beklenmeyen düğüm kaybına dayanabilen kesintiye uğrayabilen iş yükleri için ayrılmalıdır.

Katkıda Bulunanlar

Microsoft bu makaleyi korur. Başlangıçta aşağıdaki katkıda bulunanlar yazdı:

  • Don High | Baş Müşteri Mühendisi
  • Colin Mixon | Ürün Yöneticisi
  • Erin Schaffer | İçerik Geliştirici 2