Azure Kubernetes Service (AKS) için depolama konuları
Belirli uygulama iş yüklerini çalıştırmak için kuruluşunuzun veya kuruluşunuzun uygun Azure Kubernetes Service (AKS) platform düzeyinde özellikler tasarlaması gerekir. Bu iş yüklerinin büyük olasılıkla farklı depolama gereksinimleri vardır. Uygulamanız için doğru depolama çözümünü seçerken performans, kullanılabilirlik, kurtarılabilirlik, güvenlik ve maliyet gibi birçok önemli noktanız vardır. Bu makalenin amacı, iş yükünüz için doğru seçeneği veya seçeneklerin birleşimini seçmeniz için size yol göstermektir.
Kubernetes hem durum bilgisi olmayan hem de durum bilgisi olan iş yüklerini çalıştırabilir. Durum bilgisi olan iş yükleri genellikle durumu depolamak için bir depolama çözümü gerektirir. AKS, yönetilen veritabanları, diskler (veya bloklar) ve dosyalar ile blob (veya nesne) depolamayı içeren yerel depolama için birden çok tümleşik seçeneği destekler. Bu seçeneklerin her biri farklı SKU'lar, boyutlar ve performans özellikleri sunar. Doğru seçeneğin seçilmesi dikkatli bir şekilde dikkate alınması gerekir.
Bu makalede, Doğru depolama hizmetini seçme ve Tasarım konusunda dikkate almanız gereken faktörler ve seçenekler açıklanmaktadır. Tasarım önerileri'nde belirli öneriler sağlar.
Doğru depolama hizmetini seçin
İlk dağıtımlarınız için doğru SKU'ları ve boyutları seçmek için bazı değerlendirmeler ve olası bir kavram kanıtı veya test ortamı gerekir. AKS için depolamayı kullanmaya başlamanıza yardımcı olacak üst düzey yönergeler aşağıdadır:
Yapılandırılmış veriler. Uygulamanızın platformda (örneğin Azure SQL) bulunan bir yönetilen veritabanında depolayabileceğiniz yapılandırılmış veriler için yönetilen veritabanı kullanmanızı öneririz.
Yapılandırılmamış veriler. Fotoğraflar, videolar ve metin belgeleri gibi yapılandırılmamış veriler için blob depolamayı kullanın. Uygulamanız bunu Ağ Dosya Sistemi (NFS) aracılığıyla dosya olarak bağlanan veya BlobFuse kullanarak sanal dosya sistemi olarak erişilen blobları kullanarak yapabilir. Alternatif olarak, uygulamanız doğrudan blob depolamadan okuyabilir ve blob depolamaya yazabilir.
Paylaşılan uygulama verileri. Yüksek performans gerektiren paylaşılan uygulama verileri için Azure NetApp Files'ı veya Azure Dosyalar premium katmanını kullanın. Yalnızca sınırlı performans gerektiren paylaşılan yapılandırma verileri için standart Azure Dosyalar katmanını kullanın.
Uygulama ve depolama istekleri için bant genişliği. Düğümlerinizin hem uygulama isteklerini hem de depolama isteklerini işlemek için yeterli ağ bant genişliğine sahip olduğundan emin olun. aktarım protokollerinin Sunucu İleti Bloğu (SMB) veya NFS olup olmadığı Depolama trafik ağ yığınının üzerinden geçer.
Düşük gecikme süresi, yüksek IOPS. Uygulamanızın kubernetes üzerinde kendi veritabanlarınızı çalıştırmak için mesajlaşma uygulamaları için sürekli olarak düşük gecikme süresine ve saniyede yüksek G/Ç işlemlerine (IOPS) ve yüksek aktarım hızına ihtiyacı varsa depolama için diskleri kullanın. En iyi performans için Azure Premium SSD, Azure Premium SSD v2 veya Azure Ultra Disk Depolama kullanmayı göz önünde bulundurun.
Tasarımla ilgili dikkat edilecek noktalar
AKS için depolama tasarımı için aşağıdaki noktalar dikkate alınmalıdır. AKS ortamınızda depolamanın nerede gerekli olduğunu göz önünde bulundurun ve her gereksinim için en iyi çözümü belirleyin.
İşletim sistemi (OS) diskleri
İşletim sistemi (OS) diskleri için aşağıdaki faktörleri göz önünde bulundurun:
İşletim sistemi için kısa ömürlü diskler. Azure'daki her sanal makine (VM), işletim sistemi için bir disk gerektirir. Kubernetes düğümleri kısa ömürlü olduğundan, AKS varsayılan olarak desteklenen VM boyutlarında kısa ömürlü işletim sistemi diskleri kullanır. Kısa ömürlü işletim sistemi diskleri hakkında daha fazla bilgi için bkz . Kısa ömürlü işletim sistemi.
İşletim sistemi için yönetilen diskler. İş yükünüz bunları gerektiriyorsa, bunun yerine AKS kümenizdeki düğümler için normal yönetilen diskler kullanabilirsiniz. Bunu yapmak, işletim sistemi sürücüsünde kalıcı veriler gerektiren iş yüklerini destekler. Kalıcı depolama seçenekleri hakkında daha fazla bilgi için bkz. Azure Kubernetes Service'te (AKS) uygulamalar için Depolama seçenekleri.
Yönetilen diskleri boyutlandırma. İşletim sistemi diski olarak yönetilen bir disk seçerseniz işletim sistemi, Kubernetes sistemi ve iş yükünüzün gereksinimlerini desteklemek için uygun şekilde boyutlandırılmış olduğundan emin olun. Seçenekler ve farklılıklar hakkında daha fazla bilgi için bkz . Azure yönetilen disk türleri.
Uygulama verileri
Bazı iş yüklerinde uygulama verilerinin depolanması için tutarlı bir veri deposu gerekir. Uygulamanız bir veritabanı gerektiriyorsa, Azure'da aşağıdaki seçenekleri içeren yönetilen veritabanlarını keşfetmeyi göz önünde bulundurun:
AKS'de Depolama çözümleri
Yönetilen veritabanı uygulamanızın gereksinimlerini karşılamıyorsa, tutarlı verileri depolamak için AKS tarafından kullanılabilen başka bir depolama seçeneği kullanmayı göz önünde bulundurun. Seçenekler arasında disk tabanlı çözümler, kısa ömürlü diskler, dosya tabanlı çözümler, blob depolama ve bu makalede ele alınmayacak diğer seçenekler bulunur.
Disk tabanlı çözümler
Diskler veya blok depolama, verileri doğrudan ham, blok tabanlı bir cihazda depolamak için idealdir. Disk tabanlı depolama, Kubernetes kümenizin barındırdığı veritabanları için verileri depolamak için idealdir. Azure'da yönetilen diskler, blok tabanlı depolama alanı edinmenin çözümüdir.
Statik veya dinamik olarak oluşturulan disk depolama alanı. AKS dışında oluşturulmuş bir statik disk kullanmak mı yoksa AKS'nin disk depolama alanını pod veya pod olarak dinamik olarak oluşturmasını mı istediğinizi düşünün. Dinamik olarak oluşturulan Depolama dinamik olarak da silinebilir. Daha fazla bilgi için bkz.
Yedeklilik ve performans. İş yükünüzün gerektirdiği depolama yedekliliğini ve performansı göz önünde bulundurun. Daha fazla bilgi için bkz.
Paylaşılan disk. Paylaşılan diske ihtiyacınız olup olmadığını göz önünde bulundurun. Seçenekler hakkında daha fazla bilgi için bkz . Azure yönetilen diski paylaşma.
Diskler ve aktarım hızı için düğüm boyutu. Kubernetes düğümünüzün boyutunu göz önünde bulundurun. Hem disk sayısını hem de toplam aktarım hızı gereksinimlerini destekleyecek kadar büyük olmalıdır. Boyutlar ve özellikler hakkında bilgi için bkz . Azure'da sanal makineler için boyutlar.
Disk boyutu ve gerekli performans. Yönetilen diskinizin iş yükünüzün performans gereksinimlerine uygun şekilde boyutlandırılıp boyutlandırılmadığını göz önünde bulundurun. Standart HDD, Standart SSD ve Premium SSD v1 için disk boyutu arttıkça performans artar. Yönetilen diskler hakkında daha fazla bilgi için bkz . Azure yönetilen disk türleri.
Kısa ömürlü disk çözümleri
Uygulamanızın kalıcı olmayan, geçici depolama alanı gerektirdiğini veya depolama için iyileştirilmiş VM'lerde yüksek performanslı sürücüleri nerede kullanmak istediğinizi düşünün. Kısa ömürlü bir birime bağlanmak için Kubernetes'teki emptyDir seçeneğini veya CSI kısa ömürlü yerel birimin sürücüsünü kullanabilirsiniz. Karalama alanı gibi kısa ömürlü veriler için emptyDir önerilir. Depolama için iyileştirilmiş VM serisindeki depolama için CSI'yi kısa süreli yerel birimle kullanmanızı öneririz. CSI sürücüleri hakkında daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) üzerinde Kapsayıcı Depolama Arabirimi (CSI) sürücüleri.
Dosya tabanlı çözümler
Podlarınızın bir dosya sistemini paylaşması gerekip gerekmediğini düşünün. Paylaşılan dosya sistemi, Kubernetes kümenizdeki birden çok pod tarafından okunan ve paylaşılan uygulama ve yapılandırma verileri için idealdir. Dosya depolama, NFS veya SMB/Ortak İnternet Dosya Sistemi (CIFS) aracılığıyla paylaşılan bir dosya sistemini kullanıma sunar. Azure'da dosya tabanlı depolama için iki çözüm vardır: Azure Dosyalar ve Azure NetApp Files.
Azure Dosyaları
Azure Dosyalar için aşağıdaki seçenekleri göz önünde bulundurun:
Statik veya dinamik olarak oluşturulan dosya paylaşımı. AKS dışında oluşturulan statik bir dosya paylaşımı kullanmak mı yoksa AKS'nin dosya paylaşımını sizin yerinize dinamik olarak oluşturmasını mı istediğinizi düşünün. Daha fazla bilgi için bkz.
Standart veya premium performans. Standart performansın yeterli olup olmadığını veya Azure Dosyalar premium performansa ihtiyacınız olup olmadığını değerlendirin.
SMB/CIFS veya NFS. Azure Dosyalar erişimi için iş yükünüzün varsayılan protokol, SMB/CIFS için API'yi mi kullanması gerektiğini yoksa iş yükünüzün NFS desteğine mi ihtiyacı olduğunu değerlendirin.
Erişim için ağ modeli. Azure Dosyalar erişmek için kullanmak istediğiniz ağ modelini göz önünde bulundurun: doğrudan genel IP adresi, hizmet uç noktası veya özel bağlantı üzerinden erişim.
Azure NetApp Files
Azure NetApp Files için aşağıdaki seçenekleri göz önünde bulundurun:
Statik veya dinamik olarak oluşturulan Azure NetApp Files paylaşımı. İş yükünüzün AKS dışında oluşturulmuş statik bir Azure NetApp Files paylaşımı kullanmasını mı yoksa AKS'nin Astra Denetimi aracılığıyla dosya paylaşımını dinamik olarak oluşturmasını mı istediğinizi düşünün. Daha fazla bilgi için bkz.
Performansı değerlendirin. İş yükünüz için hangi performans katmanının gerekli olduğunu değerlendirin. Daha fazla bilgi için bkz. Azure NetApp Files için performansla ilgili önemli noktalar.
Ağınızı planlayın. Azure NetApp Files için ağ önerilerini keşfedin. Daha fazla bilgi için bkz . Azure NetApp Files ağ planlaması yönergeleri.
Blob depolama
Uygulamanızın depolaması gereken yapılandırılmamış veri miktarını göz önünde bulundurun. Azure Blob depolamaya HTTP API'leri veya SDK'lar aracılığıyla erişilebilir. Blob depolamayı bir kapsayıcıya veya poda dosya sistemi olarak bağlamak, günlük dosyaları, görüntüler, belgeler, akış medyası ve olağanüstü durum kurtarma verileri gibi çok büyük miktarlarda yapılandırılmamış veriye sahip olan uygulama iş yükleri için idealdir.
Veri yedekliliği. Uygulamanıza hangi veri yedekliliğini uygun olduğunu göz önünde bulundurun. Daha fazla bilgi için bkz. Azure Depolama yedekliliği. Veri yedekliliği, depolama hesabı düzeyinde seçilir.
Performans katmanı. Uygulamanızın hangi performans katmanını gerektirdiğini göz önünde bulundurun. Daha fazla bilgi için bkz . Blob verileri için sık erişimli, seyrek erişimli ve arşiv erişim katmanları.
Erişim için kimlik doğrulama yöntemi. Uygulamanızın blob depolamaya erişim için hangi kimlik doğrulama yöntemini kullanması gerektiğini düşünün: depolama anahtarı, SAS veya Microsoft Entra Id. Daha fazla bilgi için bkz. Azure Depolama'da verilere erişimi yetkilendirme.
Blob depolamayı soyutlama API'sini seçin. Hangi API'nin kullanılacağını göz önünde bulundurun. Normalde blob depolamaya erişen uygulamalar, SDK'lardan biri aracılığıyla uygulamadaki API'yi kullanır ve bu da Kubernetes kümesinden blob depolama ile etkileşimi soyutlar. Çeşitli programlama dillerine yönelik kitaplıklar hakkında daha fazla bilgi için bkz . Azure Blob depolamaya giriş.
Statik veya dinamik olarak oluşturulan blob depolama. AKS dışında oluşturulmuş bir statik blob depolama kapsayıcısı kullanmak mı yoksa AKS'nin blob depolama kapsayıcısını sizin yerinize dinamik olarak oluşturmasını mı istediğinizi düşünün. Daha fazla bilgi için bkz.
Depolamaya erişim sürücüsü. Uygulamanızın blob depolamaya nasıl erişmesi gerektiğini düşünün. Dosya sistemi olarak erişmek için Kubernetes'te blob CSI sürücüsünü kullanabilirsiniz. Bu sürücü NFSv3 protokolü veya sigorta sürücüsü aracılığıyla blob depolamaya erişim sağlar.
Diğer depolama çözümleri
Uygulamanız bu makalede açıklanmayan bir şey gerektiriyorsa diğer depolama türlerini göz önünde bulundurun. Azure'da Kubernetes ile tümleştirilebilen birden çok özel depolama çözümü vardır. Bu makale bunları kapsamaz, ancak aşağıdaki listede olası çözümler tanımlanmıştır:
Azure HPC önbelleği. HPC Önbelleği yüksek performanslı bilgi işlem (HPC) görevleri için verilerinize erişimi hızlandırır. Azure HPC Önbelleği Azure'da dosyaları önbelleğe alarak, mevcut iş yükünüze bulut bilişimin ölçeklenebilirliğini getirir. Daha fazla bilgi için bkz. Azure HPC Önbelleği Azure Kubernetes Service ile tümleştirme.
Azure Data Lake Storage 2. Nesil. Data Lake Storage 2. Nesil, Hadoop ve Spark gibi büyük veri iş yükleri için iyileştirilmiş özel bir blob depolama türüdür. Daha fazla bilgi için bkz. Azure Data Lake Storage 2. Nesil giriş.
Tasarım önerileri
Bu bölümde, Azure müşterileri için etkili olduğu kanıtlanmış özellikleri temel alan öneriler sağlanır.
Azure Özel Bağlantı kullanın. Güvenlik için, bunu destekleyen tüm depolama çözümleri için Azure Özel Bağlantı kullanmanızı öneririz. Azure Özel Bağlantı, Azure Depolama ve SQL Veritabanı gibi Azure Hizmetlerine ve sanal ağınızdaki özel bir uç nokta üzerinden Azure tarafından barındırılan hizmetlere erişim sağlar. Daha fazla bilgi için bkz. Azure Özel Bağlantı nedir?
İşletim sistemi için kısa ömürlü diskler kullanın. İşletim sistemi diskleri için kısa ömürlü diskler kullanmanızı öneririz. Bu özellikten yararlanmak için, yeterli boyutta geçici diske sahip bir VM boyutu seçin. Daha fazla bilgi için bkz . Azure VM'leri için kısa ömürlü işletim sistemi diskleri.
Yönetilen veritabanlarını kullanın. Uygulama verileri için yönetilen veritabanlarını kullanmanızı öneririz. Veritabanı seçeneklerinin listesi için bkz . Azure'da Veritabanı Türleri.
Aşağıdaki bölümlerde Azure diskleri, Azure Dosyalar ve blob depolama için daha fazla öneri açıklanmaktadır.
Azure diskleri
Azure diskleri için aşağıdaki tasarım seçeneklerini öneririz:
Premium veya Ultra diskleri kullanın. Çoğu durumda, yeterli performansı sağlamak için Premium veya Ultra diskler öneririz. Daha fazla bilgi için bkz. Azure Disk Depolama.
Diskler ve aktarım hızı için düğümü boyutlandırın. Kubernetes düğümünüzün boyutunun disk sayısını ve toplam aktarım hızını destekleyecek kadar büyük olduğundan emin olun. Boyutlar ve özellikler hakkında bilgi için bkz . Azure'da sanal makineler için boyutlar.
Kalıcı birimlerin anlık görüntülerini oluşturun. Anlık görüntü verileriyle önceden doldurulmuş yeni birimler sağlamak veya Azure DiskS CSI sürücüsünün anlık görüntü özelliğini kullanarak var olan bir birimi önceki bir duruma geri yüklemek için kalıcı birimlerin anlık görüntülerini almanızı öneririz. Daha fazla bilgi için bkz . Birim anlık görüntüleri.
Diskler arasında disk şeritlemekten kaçının. Kubernetes'te birden çok disk arasında şerit oluşturmaktan kaçınmanızı öneririz.
PV/PVC kullanın. Gerektiğinde dinamik olarak disk oluşturmak için Kubernetes'te PV ve PVC kullanmanızı öneririz. Kalıcı depolama hakkında daha fazla bilgi için bkz. Azure Kubernetes Service'te (AKS) uygulamalar için Depolama seçenekleri.
Azure Dosyaları
Azure Dosyalar için aşağıdaki tasarım seçeneklerini öneririz:
Premium'u seçin. Performans kritikse Premium katmanını kullanmanızı öneririz.
Ayrılmış depolama hesapları oluşturun. Dosya paylaşımlarınız için ayrılmış depolama hesapları sağlamanızı öneririz.
Statik veya dinamik olarak oluşturulan dosya paylaşımlarını seçin. AKS'nin dosya paylaşımlarını oluşturmasını mı yoksa bunları Kubernetes dışında statik olarak mı oluşturmak istediğinizi dikkatli bir şekilde değerlendirmenizi öneririz. Dinamik olarak oluşturulan Depolama dinamik olarak da silinebilir. AKS'nin dinamik olarak dosya paylaşımları oluşturmasına izin verme hakkında daha fazla bilgi için bkz. Azure Dosyalar ile dinamik olarak kalıcı birim oluşturma ve kullanma.
Azure NetApp Files
Azure NetApp Files için aşağıdaki tasarım seçeneklerini öneririz:
Uygulama gereksinimlerine göre bir performans katmanı seçin. Azure NetApp Files, farklı performans sınıfları sunan 3 performans katmanı sunar. Daha fazla bilgi için bkz. Azure NetApp Files için performansla ilgili önemli noktalar.
AKS kümesiyle aynı Azure bölgesinde kapasite havuzları oluşturun. Daha fazla bilgi için bkz . Azure NetApp Files için kapasite havuzu oluşturma.
Kapasite havuzları için Otomatik QoS türünü kullanın.
Ağınızı planlayın. Ağ tasarımı için iki seçenek vardır:
- AKS ve Azure NetApp Files için aynı sanal ağı kullanıyorsanız Azure NetApp Files için ayrılmış bir alt ağ oluşturun ve alt ağı Microsoft.NetApp/Volumes'a devredin.
- Farklı sanal ağlar kullanıyorsanız, aralarında sanal ağ eşlemesi oluşturun.
Blob depolama
Blob depolama için aşağıdaki tasarım seçeneklerini öneririz:
Depolama ile arabirim oluşturma amacıyla SDK kullanın. Blob depolama ile arabirim oluşturma amacıyla uygulama düzeyinde bir SDK kullanmanızı öneririz.
Depolama ile arabirim sağlamak için NFS ile CSI kullanın. Blob depolama ile arabirim oluşturma amacıyla uygulama düzeyinde SDK kullanamıyorsanız blob CSI sürücüsünde NFS v3 seçeneğini kullanmanızı öneririz. Daha fazla bilgi için bkz. Azure Blob depolama Kapsayıcısı Depolama Arabirimi (CSI) sürücüsünü kullanma.
Erişim için Microsoft Entra Id kullanın. Blob depolamaya erişim yetkisi vermek için Microsoft Entra Id kullanmanızı öneririz. Paylaşılan depolama hesabı anahtarı kullanmaktan kaçının. Daha fazla bilgi için bkz . Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme.
Katman düzeylerini ayarlayın. Seyrek erişilen verileri daha serin bir erişim katmanına taşımak için yaşam döngüsü yönetimi ilkelerini kullanmanızı öneririz. Daha fazla bilgi için bkz . Blob verileri için sık erişimli, seyrek erişimli ve arşiv erişim katmanları.
Sonraki adımlar
Kubecost kullanarak AKS'de bir dağıtıma, hizmete, etikete, poda veya ad alanına maliyet ayırmanın kapsamını nasıl daraltacağınızı öğrenin.