Aracılığıyla paylaş


Azure kapsayıcı hizmeti seçmeye yönelik genel mimari konular

Bu makale, Azure kapsayıcı hizmeti seçme işleminde size yol gösterir. Bazı iş yükleri için ortak ve kritik olan özellik düzeyinde dikkat edilmesi gereken noktalara genel bir bakış sağlar. İş yükünüzün güvenilirlik, güvenlik, maliyet iyileştirme, operasyonel mükemmellik ve performans verimliliği gereksinimlerini karşıladığından emin olmak için kararlar almanıza yardımcı olabilir.

Not

Bu makale, Azure kapsayıcı hizmeti seçme ile başlayan serinin ikinci bölümüdür. Bu mimari konuların bağlamını almak için öncelikle bu genel bakış makalesini okumanızı kesinlikle öneririz.

Genel bakış

Bu makaledeki önemli noktalar dört kategoriye ayrılmıştır:

Mimari ve ağ ile ilgili dikkat edilmesi gerekenler

  • İşletim sistemi desteği
  • Ağ adres alanları
  • Trafik akışını anlama
  • Alt ağları planlama
  • Kullanılabilir giriş IP'lerinin sayısı
  • Kullanıcı tanımlı yollar ve NAT ağ geçidi desteği
  • Özel ağ tümleştirmesi
  • Protokol kapsamı
  • Yük dengeleme
  • Hizmet bulma
  • Özel etki alanları ve yönetilen TLS
  • Karşılıklı TLS
  • Belirli Azure hizmetleri için ağ kavramları

Güvenlikle ilgili dikkat edilmesi gerekenler

  • Ağ ilkelerini kullanarak küme içi trafik için güvenlik sağlama
  • Ağ güvenlik grupları
  • Azure Anahtar Kasası tümleştirme
  • Yönetilen kimlik desteği
  • Kapsayıcılar için Defender ile tehdit koruması ve güvenlik açığı değerlendirmeleri
  • Güvenlik temelleri
  • Güvenlik için Azure İyi Tasarlanmış Çerçeve

İşlemle ilgili dikkat edilmesi gerekenler

  • Güncelleştirmeler ve düzeltme ekleri
  • Kapsayıcı görüntüsü güncelleştirmeleri
  • Dikey altyapı ölçeklenebilirliği
  • Yatay altyapı ölçeklenebilirliği
  • Uygulama ölçeklenebilirliği
  • Gözlemlenebilirlik
  • operasyonel mükemmellik için iyi tasarlanmış çerçeve

Güvenilirlikle ilgili dikkat edilmesi gerekenler

  • Servis düzeyi sözleşmeleri
  • Kullanılabilirlik alanları aracılığıyla yedeklilik
  • Sistem durumu denetimleri ve kendi kendini düzeltme
  • Sıfır kapalı kalma süresi uygulama dağıtımları
  • Kaynak sınırları
  • Güvenilirlik için İyi Tasarlanmış Çerçeve

Bu makalenin web uygulamaları ve API'ler, ağ, gözlemlenebilirlik, geliştirici araçları ve işlemler için olgun bir özellik kümesi sunan Azure kapsayıcı hizmetlerinin bir alt kümesine odaklandığını unutmayın: Azure Kubernetes Service (AKS), Azure Container Apps ve Kapsayıcılar için Web App. Tüm Azure kapsayıcı hizmetlerinin tam listesi için kapsayıcı hizmetleri ürün kategorisi sayfasına bakın.

Not

Bu kılavuzda iş yükü terimi, bir iş hedefini veya bir iş sürecinin yürütülmesini destekleyen bir uygulama kaynakları koleksiyonunu ifade eder. İş yükü, belirli uçtan uca işlevler sunmak için birlikte çalışan API'ler ve veri depoları gibi birden çok bileşen kullanır.

Mimariyle ilgili dikkat edilmesi gerekenler

Bu bölümde, önemli bir kapalı kalma süresi veya yeniden dağıtım gerekmeden tersine çevrilebilir veya düzeltilirken zor olan mimari kararlar açıklanmaktadır. Ağ ve güvenlik gibi temel bileşenler için bu hususu göz önünde bulundurmak özellikle gereklidir.

Bu önemli noktalar, İyi Tasarlanmış Çerçeve sütunlarına özgü değildir. Ancak, bir Azure kapsayıcı hizmeti seçtiğinizde işletme gereksinimleriyle ilgili ek inceleme ve değerlendirmeyi hak ederler.

İşletim sistemi desteği

Kapsayıcılı uygulamaların çoğu, tüm Azure kapsayıcı hizmetleri tarafından desteklenen Linux kapsayıcılarında çalışır. Windows kapsayıcıları gerektiren iş yükü bileşenleri için seçenekleriniz daha sınırlıdır.

Container Apps AKS Kapsayıcılar için Web App
Linux desteği
Windows desteği
Karma işletim sistemi desteği ❌*

*Kapsayıcılar için Web App için karma işletim sistemi desteği, Windows ve Linux için ayrı Azure Uygulaması Hizmet planları gerektirir.

Ağ konusunda dikkat edilmesi gerekenler

Güvenlik ve uyumluluk kısıtlamaları ve uygulanan yönergeler nedeniyle planlama süreçlerinizin erken aşamalarında ağ tasarımını anlamanız önemlidir. Genel olarak, bu kılavuzda ele alınan Azure hizmetleri arasındaki başlıca farklar tercihe bağlıdır:

  • Container Apps , hizmet bulma ve iç yönetilen etki alanları gibi Azure tarafından yönetilen birçok ağ özelliği sağlayan bir PaaS teklifidir. Biraz daha fazla yapılandırılabilirliğe ihtiyaç duyan iş yükü ekipleri, ağ seçeneklerini en üst düzeye çıkarmak için alternatifleri dikkate almadan önce iş yükü/ayrılmış profilleri kullanabilir.
  • AKS , üç hizmet arasında en çok yapılandırılabilen hizmettir ve ağ akışı üzerinde en fazla denetimi sağlar. Örneğin, özel giriş denetleyicileri ve Kubernetes ağ ilkeleri aracılığıyla küme içi trafiğin denetimini sağlar. İş yükü ekipleri, azure tarafından yönetilen çeşitli ağ eklentilerinden yararlanabilir ve daha geniş Kubernetes ekosisteminden tüm eklentileri yükleyip çalıştırabilir.
  • Kapsayıcılar için Web App, App Service'in özelliğidir. Bu nedenle, özellikle özel ağ tümleştirmesi olmak üzere ağ kavramları App Service'e çok özeldir. Bu hizmet, App Service'i zaten kullanan iş yükü ekiplerine aşina olacaktır. App Service deneyimi olmayan ve daha tanıdık bir Azure sanal ağ tümleştirmesi isteyen ekiplerin Container Apps'i göz önünde bulundurması önerilir.

Ağın temel bir altyapı katmanı olduğunu unutmayın. İş yükünü yeniden dağıtmadan tasarımda değişiklik yapmak genellikle zordur ve bu da kapalı kalma süresine neden olabilir. Bu nedenle, iş yükünüz belirli ağ gereksinimlerine sahipse, Azure kapsayıcı hizmeti seçiminizi daraltmadan önce bu bölümü dikkatle gözden geçirin.

Ağ adres alanları

Uygulamaları sanal ağlarla tümleştirdiğinizde, kapsayıcı örnekleri için yeterli IP adresinin kullanılabilir olduğundan emin olmak için bazı IP adresi planlaması yapmanız gerekir. Bu işlem sırasında, ek IP adresleri kullanan ek örneklerin dağıtıldığı güncelleştirmeler, mavi/yeşil dağıtımlar ve benzer durumlar için ek adresler planlayın.

Container Apps AKS Kapsayıcılar için Web App
Ayrılmış alt ağlar Tüketim planı: isteğe bağlı
Ayrılmış plan: gerekli
Zorunlu İsteğe bağlı
IP adresi gereksinimleri Tüketim planı: Bkz . Yalnızca tüketim ortamı.
Ayrılmış plan: Bkz . İş yükü profilleri ortamı.
Bkz. AKS için Azure sanal ağları. Bkz. App Service alt ağ gereksinimleri.

AKS gereksinimlerinin seçilen ağ eklentisine bağlı olduğunu unutmayın. AKS için bazı ağ eklentileri daha geniş IP ayırmaları gerektirir. Ayrıntılar bu makalenin kapsamı dışındadır. Daha fazla bilgi için bkz . AKS için ağ kavramları.

Trafik akışını anlama

Bir çözüm için gereken trafik akışı türleri ağ tasarımını etkileyebilir.

Aşağıdaki bölümlerde çeşitli ağ kısıtlamaları hakkında bilgi sağlanır. Bu kısıtlamalar, aşağıdakileri gerektirip gerektirmediğinize bağlı olarak ek alt ağ dağıtma gereksiniminizi etkiler:

  • Birden çok birlikte bulunan iş yükü.
  • Özel ve/veya genel giriş.
  • Kümedeki (Container Apps ve AKS için) veya bir sanal ağ içinde (tüm Azure kapsayıcı hizmetleri için) doğu-batı trafiğinin erişim denetimli akışı.

Alt ağ planlaması

Uygulamanızın iş yükünüz için örneklerini içerecek kadar büyük bir alt ağa sahip olduğunuzdan emin olmak, bu uygulamaların dağıtıldığı ağ ayak izini belirleyen tek faktör değildir.

Container Apps AKS Kapsayıcılar için Web App
Bir alt ağ içinde birlikte bulunan iş yükleri için destek* ❌* Yok*

*Bu teknik bir sınırlama değil, en iyi uygulamayı açıklar.

Container Apps için alt ağ tümleştirmesi yalnızca tek bir Container Apps ortamı için geçerlidir. Her Container Apps ortamı, genel veya özel tek bir giriş IP'sine kısıtlanır.

Her Container Apps ortamı yalnızca bağımlı uygulamaların birlikte bulunduğu tek bir iş yükü için tasarlanmıştır. Bu nedenle, hem genel hem de özel girişe ihtiyacınız varsa giriş yük dengelemesi için ek Azure ağ gereçleri eklemeniz gerekir. Örnek olarak Azure Uygulaması lication Gateway ve Azure Front Door verilebilir. Ayrıca, ayrıştırılması gereken birden çok iş yükünüz varsa, ek Container Apps ortamları gerekir, bu nedenle her ortam için ek bir alt ağ ayrılmalıdır.

AKS, küme içinde Kubernetes ağ ilkesi biçiminde ayrıntılı doğu-batı ağ akışı denetimi sağlar. Bu akış denetimi, aynı küme içinde farklı ağ güvenlik sınırlarına sahip birden çok iş yükünü segmentlere ayırmanıza olanak tanır.

Kapsayıcılar için Web App'te, alt ağ yeterince büyük olduğu sürece tek bir alt ağ ile tümleştirebileceğiniz uygulama sayısını sınırlamaz. Aynı sanal ağdaki web uygulamaları arasında erişim denetimi için en iyi yöntem yoktur. Her web uygulaması, sanal ağ veya İnternet'ten doğu-batı veya kuzey-güney trafiği için erişim denetimini bağımsız olarak yönetir.

Not

Kaynakları dağıtılan alt ağları yeniden boyutlandıramazsınız. İş yükü bileşenlerinin tamamını yeniden dağıtma gereğini önlemek için ağınızı planlarken fazladan dikkatli olun ve bu da kapalı kalma süresine neden olabilir.

Kullanılabilir giriş IP'lerinin sayısı

Aşağıdaki tabloda, azure kapsayıcı hizmetinin tek bir dağıtımında barındırılan rastgele sayıda uygulama için kaç IP'nin gösterilebileceğini tanımlamak için önceki alt ağ planlama bölümü dikkate alınmalıdır.

Container Apps AKS Kapsayıcılar için Web App
Giriş IP'lerinin sayısı Bir Birçok App Service Ortamı: Bir
App Service Ortamı Yok: Çok

Container Apps ortam başına genel veya özel bir IP'ye izin verir. AKS, genel veya özel olarak herhangi bir sayıda IP'ye izin verir. Kapsayıcılar için Web App, bir App Service Ortamı dışında bir App Service planındaki tüm uygulamalar için bir genel IP'ye ve Azure özel uç noktalarını kullanan birden çok farklı özel IP'ye izin verir.

Bir App Service Ortamı tümleştirilmiş web uygulamalarının trafiği yalnızca genel veya özel App Service Ortamı ilişkili tek giriş IP'siyle aldığına dikkat edin.

Kullanıcı tanımlı yollar ve NAT ağ geçidi desteği

Bir iş yükü, ayrıntılı ağ denetimi için kullanıcı tanımlı yollar (UDR) ve NAT ağ geçidi özellikleri gerektiriyorsa, Container Apps iş yükü profillerinin kullanılmasını gerektirir. ACA için yalnızca tüketim planında UDR ve NAT ağ geçidi uyumluluğu sağlanmaz.

Aks ve Kapsayıcılar için Web App bu iki ağ özelliğini sırasıyla standart sanal ağ işlevselliği veya sanal ağ tümleştirmesi aracılığıyla uygular. Ayrıntılı bilgi için aks düğüm havuzları ve App Service Ortamı Kapsayıcılar için Web App zaten doğrudan sanal ağ kaynaklarıdır. App Service Ortamı içinde olmayan Kapsayıcılar için Web App, sanal ağ tümleştirmesi aracılığıyla UDR'leri ve NAT ağ geçidini destekler. Sanal ağ tümleştirmesiyle, kaynak teknik olarak doğrudan sanal ağda yer almaz, ancak tüm giden erişim akışları sanal ağ üzerinden akar ve ağın ilişkili kuralları trafiği beklendiği gibi etkiler.

Container Apps AKS Kapsayıcılar için Web App
UDR desteği Yalnızca tüketim planı: ❌
İş yükü profili planı: ✅
NAT ağ geçidi desteği Yalnızca tüketim planı: ❌
İş yükü profili planı: ✅

Özel ağ tümleştirmesi

Hem giriş hem de çıkış için katı Katman 4 özel ağ gerektiren iş yükleri için Container Apps, AKS ve iş yüklerinin kendi kendine yönetilen bir sanal ağa dağıtıldığı ve özel ayrıntılı özel ağ denetimleri sağlayan tek kiracılı App Service Ortamı SKU'yu göz önünde bulundurmanız gerekir.

Container Apps AKS Kapsayıcılar için Web App
Sanal ağa özel giriş Özel uç nokta aracılığıyla
Sanal ağdan özel çıkış Sanal ağ tümleştirmesi aracılığıyla
Tam olarak gizlenen genel uç nokta Yalnızca App Service Ortamı
Kapsayıcılar için Web App ile özel ağ

Kapsayıcılar için Web App, bu makalede açıklanan diğer Azure hizmetleri tarafından aynı şekilde ortaya çıkarilmeyen ek ağ özellikleri sağlar. Katı özel ağ gereksinimlerini uygulamak için iş yükü ekiplerinin bu ağ kavramlarını tanıması gerekir. Bu ağ özelliklerini dikkatle gözden geçirin:

Bir PaaS çözümü istiyorsanız ve birden çok Azure çözümünde paylaşılan ağ kavramlarını tercih ediyorsanız Container Apps'i göz önünde bulundurmanız gerekir.

Protokol kapsamı

Barındırma platformu için önemli bir nokta, gelen uygulama istekleri (giriş) için desteklenen ağ protokolleridir. Kapsayıcılar için Web App, yalnızca HTTP ve HTTPS'yi destekleyen en katı seçenektir. Container Apps ayrıca gelen TCP bağlantılarına da izin verir. AKS, otomatik olarak seçilen bağlantı noktalarında TCP ve UDP'nin kısıtlanmamış kullanımını destekleyen en esnek bağlantı noktasıdır.

Container Apps AKS Kapsayıcılar için Web Uygulaması
Protokol ve bağlantı noktası desteği HTTP (bağlantı noktası 80)*
HTTPS (bağlantı noktası 443)*
TCP (80 ve 443 hariç 1-65535 numaralı bağlantı noktaları)
TCP (herhangi bir bağlantı noktası)
UDP (herhangi bir bağlantı noktası)
HTTP (bağlantı noktası 80)
HTTPS (bağlantı noktası 443)
WebSocket desteği
HTTP/2 desteği

*Container Apps ortamında HTTP/S, küme içi iletişim için herhangi bir bağlantı noktasında gösterilebilir. Bu senaryoda, CORS ve oturum benzişimi gibi yerleşik Container Apps HTTP özellikleri geçerli değildir.

Hem Container Apps hem de Kapsayıcılar için Web App, yerleşik HTTPS girişi için TLS 1.2'yi destekler.

Yük dengeleme

Kapsayıcılar için Container Apps ve Web App ile Azure, Katman 4 ve Katman 7 yük dengeleyicilerini tamamen soyutlar.

Buna karşılık AKS, Azure'ın kubernetes API'siyle birlikte çalışarak iş yükü ekibinin yapılandırdığı temel Azure altyapısını yönettiği paylaşılan bir sorumluluk modeli kullanır. AKS'de Katman 7 yük dengelemesi için, AKS yönetilen uygulama yönlendirme eklentisi veya Kapsayıcılar için Application Gateway gibi Azure tarafından yönetilen seçenekleri belirleyebilir veya tercih ettiğiniz giriş denetleyicisini dağıtabilir ve kendi kendine yönetebilirsiniz.

Container Apps AKS Kapsayıcılar için Web App
Katman 4 yük dengeleyici Azure tarafından yönetilen Paylaşılan sorumluluk Azure tarafından yönetilen
Katman 7 yük dengeleyici Azure tarafından yönetilen Paylaşılan veya kendi kendine yönetilen Azure tarafından yönetilen

Hizmet bulma

Bulut mimarilerinde kaynakları yeniden dengelemek için çalışma zamanları istediğiniz zaman kaldırılabilir ve yeniden oluşturulabilir, bu nedenle örnek IP adresleri düzenli olarak değişir. Bu mimariler, güvenilir ve tutarlı iletişim için tam etki alanı adlarını (FQDN) kullanır.

Container Apps AKS Kapsayıcılar için Web App
Hizmet bulma Azure tarafından yönetilen FQDN Yapılandırılabilir Kubernetes Azure tarafından yönetilen FQDN

Kapsayıcılar için Web Apps, genel giriş (kuzey-güney iletişim) FQDN'lerini kullanıma hazır olarak sağlar. Ek DNS yapılandırması gerekmez. Ancak, diğer uygulamalar (doğu-batı iletişimi) arasındaki trafiği kolaylaştırmak veya kısıtlamak için yerleşik bir mekanizma yoktur.

Container Apps ayrıca genel giriş FQDN'leri de sağlar. Ancak Container Apps, uygulamanın FQDN'sinin kullanıma sunulmasını sağlayarak ve trafiği yalnızca ortamda kısıtlayarak daha da ileri gider. Bu işlevsellik doğu-batı iletişimini yönetmeyi ve Dapr gibi bileşenleri etkinleştirmeyi kolaylaştırır.

Kubernetes dağıtımları başlangıçta küme içinde veya dışından bulunamaz. Kubernetes API'sinin tanımladığı şekilde Kubernetes hizmetleri oluşturmanız gerekir. Bu hizmet, uygulamaları ağ üzerinden adreslenebilir bir şekilde kullanıma sunar.

Önemli

Yalnızca Container Apps ve AKS, kendi ortamlarındaki iç DNS düzenleri aracılığıyla hizmet bulma sağlar. Bu işlevsellik, geliştirme/test ve üretim ortamlarında DNS yapılandırmalarını basitleştirebilir. Örneğin, geliştirme/test ve üretimde aynı olabilmeleri için bu ortamları yalnızca ortam veya küme içinde benzersiz olması gereken rastgele hizmet adlarıyla oluşturabilirsiniz. Kapsayıcılar için Web App ile Azure DNS ile çakışmaları önlemek için hizmet adlarının farklı ortamlarda benzersiz olması gerekir.

Özel etki alanları ve yönetilen TLS

Hem Container Apps hem de Kapsayıcılar için Web App, özel etki alanları ve sertifika yönetimi için kullanıma hazır çözümler sağlar.

Container Apps AKS Kapsayıcılar için Web App
Özel etki alanlarını yapılandırma Kutudan çıktı BYO Kutudan çıktı
Azure FQDN'leri için Yönetilen TLS Kutudan çıktı Yok Kutudan çıktı
Özel etki alanları için yönetilen TLS Önizlemede BYO İlk çalıştırma veya KCG

AKS kullanıcıları, özel etki alanları için DNS, küme yapılandırmaları ve TLS sertifikalarını yönetmekle sorumludur. AKS yönetilen TLS sunmasa da, müşteriler Kubernetes ekosisteminden gelen yazılımlardan (örneğin TLS sertifikalarını yönetmek için popüler cert-manager ) yararlanabilir.

Karşılıklı TLS

Gelen trafiği kısıtlamanın bir diğer alternatifi de karşılıklı TLS 'dir (mTLS). Karşılıklı TLS, hem istemcinin hem de iletişimdeki sunucunun kimliğinin doğrulanmasını sağlayan bir güvenlik protokolüdür. Kimlik doğrulamasını gerçekleştirmek için her iki taraf da herhangi bir veri iletilmeden önce sertifikaları değiştirir ve doğrular.

Kapsayıcılar için Web App, gelen istemci bağlantıları için yerleşik mTLS desteğine sahiptir. Ancak uygulamanın App Service platformunun ilettiği HTTP üst bilgisine X-ARR-ClientCert erişerek sertifikayı doğrulaması gerekir.

Container Apps ayrıca mTLS için yerleşik desteğe sahiptir. İstemci sertifikasını, X-Forwarded-Client-Cert HTTP üst bilgisindeki uygulamaya iletir. Ayrıca, tek bir ortamdaki uygulamalar arasında iç iletişim için otomatik mTLS'yi kolayca etkinleştirebilirsiniz.

AKS'de karşılıklı TLS, gelen istemci bağlantıları için mTLS özelliklerini ve hizmetler arasında küme içi iletişimi içeren yönetilen bir eklenti olarak Istio tabanlı hizmet ağı aracılığıyla uygulanabilir. İş yükü ekipleri, Kubernetes ekosisteminden başka bir hizmet ağı teklifini yüklemeyi ve yönetmeyi de seçebilir. Bu seçenekler Kubernetes'te mTLS uygulamasını en esnek hale getirir.

Hizmete özgü ağ kavramları

Yukarıdaki bölümlerde dikkate alınması gereken en yaygın noktalardan bazıları açıklanmaktadır. Daha fazla ayrıntı ve tek tek Azure kapsayıcı hizmetlerine özgü ağ özellikleri hakkında daha fazla bilgi edinmek için şu makalelere bakın:

Yukarıdaki bölümler ağ tasarımına odaklanır. Ağ güvenliği ve ağ trafiğinin güvenliğini sağlama hakkında daha fazla bilgi edinmek için sonraki bölüme geçin.

Güvenlik konuları

Güvenlik risklerinin ele alınamaması yetkisiz erişime, veri ihlallerine veya hassas bilgilerin sızmasına neden olabilir. Kapsayıcılar, uygulamanız için kapsüllenmiş bir ortam sunar. Ancak barındırma sistemleri ve temel alınan ağ katmanlarında ek korumalar gerekir. Azure kapsayıcı hizmeti seçiminizin, her uygulamanın güvenliğini tek tek sağlamak için özel gereksinimlerinizi desteklemesi ve yetkisiz erişimi önlemek ve saldırı riskini azaltmak için uygun güvenlik önlemlerini sağlaması gerekir.

Güvenlik karşılaştırmaya genel bakış

Container Apps, AKS ve Kapsayıcılar için Web App dahil olmak üzere azure hizmetlerinin çoğu Key Vault ve yönetilen kimlikler dahil olmak üzere önemli güvenlik teklifleriyle tümleştirilir.

Bu kılavuzdaki hizmetlerden AKS, genellikle yapılandırma seçenekleriyle güvenli hale getirilebilen temel bileşenleri inceleyerek kısmen en fazla yapılandırılabilirlik ve genişletilebilirlik sunar. Örneğin, müşteriler Kubernetes API sunucusunda yerel hesapları devre dışı bırakabilir veya yapılandırma seçenekleri aracılığıyla temel düğümlerde otomatik güncelleştirmeleri açabilir.

Ayrıntılı karşılaştırma için, iş yükü güvenlik gereksinimlerinizin karşılandığından emin olmak için aşağıdaki noktaları dikkatle gözden geçirin.

Kubernetes denetim düzlemi güvenliği

AKS, kapsayıcı düzenlemesini özelleştirebilmeniz için Kubernetes API'sine tam erişim sağlayarak bu makalede ele alınan üç seçenek arasında en fazla esnekliği sunar. Ancak Kubernetes API'sine bu erişim önemli bir saldırı yüzeyini de temsil eder ve bunun güvenliğini sağlamanız gerekir.

Önemli

Bu bölümün, denetim düzlemi olarak Azure Resource Manager API'sini kullanan Kapsayıcılar için Web Uygulaması ile ilgili olmadığını unutmayın.

Kimlik tabanlı güvenlik

Müşteriler API'ye kimlik tabanlı erişimin güvenliğini sağlamakla sorumludur. Kubernetes, erişim denetimleriyle güvenli hale getirilmesi gereken kendi kimlik doğrulama ve yetkilendirme yönetim sistemini kullanıma sunar.

Azure'da kimlik ve erişim yönetimi için tek bir cam düzlemden yararlanmak için Kubernetes'e özgü yerel hesapları devre dışı bırakmak ve bunun yerine AKS tarafından yönetilen Microsoft Entra tümleştirmesini Kubernetes için Azure RBAC ile birlikte uygulamak en iyi yöntemdir. Bu en iyi uygulamayı uygularsanız yöneticilerin birden çok platformda kimlik ve erişim yönetimi gerçekleştirmesi gerekmez.

Container Apps AKS
Kubernetes API erişim denetimleri Erişim yok Tam erişim

Container Apps kullanan müşterilerin Kubernetes API'sine erişimi yoktur. Microsoft bu API için güvenlik sağlar.

Ağ tabanlı güvenlik

Kubernetes denetim düzlemine ağ erişimini kısıtlamak istiyorsanız, iki seçenek sağlayan AKS'yi kullanmanız gerekir. İlk seçenek, API sunucusunun özel ağıyla AKS kümesinin özel ağı arasında Azure Özel Bağlantı kullanan özel AKS kümelerini kullanmaktır. İkinci seçenek, API sunucusunun temsilci alt ağ ile tümleştirildiği API Server Sanal Ağ tümleştirmesi (önizleme) seçeneğidir. Daha fazla bilgi edinmek için belgelere bakın.

Kubernetes API'sine ağ ile kısıtlanmış erişim uygulamanın sonuçları vardır. En önemlisi, yönetim yalnızca özel ağ içinden gerçekleştirilebilir. Bu genellikle Azure DevOps veya GitHub Actions için şirket içinde barındırılan aracılar dağıtmanız gerektiği anlamına gelir. Diğer sınırlamalar hakkında bilgi edinmek için ürüne özgü belgelere bakın.

Container Apps AKS
Kubernetes API ağ güvenliği PaaS'ta yapılandırılamaz Yapılandırılabilir: genel IP veya özel IP

Bu noktalar Container Apps için geçerli değildir. PaaS olduğundan, Microsoft temel alınan altyapıyı soyutlar.

Veri düzlemi ağ güvenliği

Aşağıdaki ağ özellikleri, bir iş yükünden ve iş yükünden erişimi denetlemek için kullanılabilir.

Küme içi trafik için güvenlik sağlamak için ağ ilkelerini kullanma

Bazı güvenlik duruşları, örneğin birden çok veya çok katmanlı uygulamaları barındırmak için çok kiracılı ortamlar kullandığınızda bir ortamda ağ trafiği ayrımını gerektirir. Bu senaryolarda AKS'yi seçmeniz ve Kubernetes kümelerinde Katman 4 ağlarının ayrıntılı yapılandırmasını sağlayan buluta özel bir teknoloji olan ağ ilkelerini uygulamanız gerekir.

Container Apps AKS Kapsayıcılar için Web App
Ağ ilkeleri Tüketim planı: ❌
Ayrılmış plan: ❌

Bu makalede açıklanan üç Azure hizmetinden, küme içinde daha fazla iş yükü yalıtımını destekleyen tek hizmet AKS'dir. Ağ ilkeleri Container Apps'te veya Kapsayıcılar için Web App'te desteklenmez.

Ağ güvenlik grupları

Tüm senaryolarda, giriş ve çıkışı sanal ağ düzeyinde düzenleyen Katman 4 trafik kurallarını kullanmanızı sağlayan ağ güvenlik gruplarını kullanarak daha geniş sanal ağ içindeki ağ iletişimini düzenleyebilirsiniz.

Container Apps AKS Kapsayıcılar için Web App
Ağ güvenlik grupları Tüketim planı: ✅
Ayrılmış plan: ✅
✅ Sanal ağ ile tümleşik uygulamalar: yalnızca çıkış

Giriş için IP kısıtlamaları

Genellikle ağ trafiği kısıtlamaları yukarıda açıklanan Katman 4 kuralları aracılığıyla uygulanır. Ancak, sanal ağ tümleştirmesi olmayan uygulamaların PaaS senaryolarında, uygulama katmanındaki trafiği kısıtlamak yararlı olabilir.

Kapsayıcılar için Container Apps ve Web App, tek tek uygulamalarda giriş trafiği için yerleşik kaynak IP kısıtlamaları sağlar.

Container Apps AKS Kapsayıcılar için Web App
Uygulama katmanında giriş IP kısıtlamaları Kutudan çıktı Kendi kendine veya yönetilen eklenti aracılığıyla Kutudan çıktı
Kaynak tüketimi - Küme kaynaklarını kullanır -

AKS iş yükleri için uygulama, seçilen giriş denetleyicisine bağlıdır. Hem kendi kendine yönetilen hem de Azure tarafından yönetilen uygulama yönlendirme eklentisi küme kaynaklarını kullanır.

Uygulama düzeyinde güvenlik

İş yüklerinin güvenliğini yalnızca ağ ve altyapı düzeyinde değil, iş yükü ve uygulama düzeyinde de yapmanız gerekir. Azure kapsayıcı çözümleri, uygulamalarınız için güvenlik uygulamasını ve denetimlerini standartlaştırmaya yardımcı olmak için Azure güvenlik teklifleriyle tümleştirilir.

Key Vault tümleştirmesi

Bu bileşenler için gelişmiş güvenlik sağlayan Key Vault gibi bir anahtar yönetimi çözümünde gizli dizileri, anahtarları ve sertifikaları depolamak ve yönetmek en iyi yöntemdir. Gizli dizileri kodda veya Azure işlem hizmetinde depolamak ve yapılandırmak yerine tüm uygulamaların Key Vault ile tümleştirilmesi gerekir.

Key Vault tümleştirmesi, uygulama geliştiricilerinin uygulama kodlarına odaklanmasını sağlar. Bu makalede açıklanan Azure kapsayıcı hizmetlerinin üçü de gizli dizileri Key Vault hizmetinden otomatik olarak eşitleyebilir ve bunları genellikle ortam değişkenleri veya bağlı dosyalar olarak uygulamaya sağlayabilir.

Container Apps AKS Kapsayıcılar için Web App
Key Vault tümleştirmesi

Daha fazla bilgi için bkz.

Yönetilen kimlik desteği

Atanan yönetilen kimliklere sahip uygulamalar Azure kaynaklarına parola olmadan erişebilir. Bu kılavuzda belirtilen tüm kapsayıcı hizmetleri yönetilen kimlikleri destekler.

Container Apps AKS Kapsayıcılar için Web App
Yönetilen kimlik desteği

Daha fazla bilgi için bkz.

Kapsayıcılar için Defender ile tehdit koruması ve güvenlik açığı değerlendirmeleri

Güvenlik açıklarına karşı tehdit koruması da önemlidir. Kapsayıcılar için Defender'ı kullanmak en iyi yöntemdir. Güvenlik açığı değerlendirmeleri Azure kapsayıcı kayıt defterlerinde desteklenir, bu nedenle bunlar yalnızca bu makalede açıklananlar tarafından değil, herhangi bir Azure kapsayıcı hizmeti tarafından kullanılabilir. Ancak Kapsayıcılar için Defender çalışma zamanı koruması yalnızca AKS için kullanılabilir.

AKS yerel Kubernetes API'sini kullanıma sunarken küme güvenliği, Kubernetes ekosisteminden Kubernetes'e özgü güvenlik araçlarıyla da değerlendirilebilir.

Container Apps AKS Kapsayıcılar için Web App
Çalışma zamanı tehdit koruması

Daha fazla bilgi için bkz. Bulut için Defender kapsayıcılar destek matrisi.

Kapsayıcı görüntüsü güvenlik açığı değerlendirmelerinin gerçek zamanlı taramalar olmadığını unutmayın. Azure kapsayıcı kayıt defteri düzenli aralıklarla taranır.

Güvenlik temelleri

Genel olarak, çoğu Azure kapsayıcı hizmeti Azure güvenlik tekliflerini tümleştirir. Genel olarak, bir güvenlik özellik kümesinin bulut güvenliğini uygulamanın yalnızca küçük bir parçası olduğunu unutmayın. Kapsayıcı hizmetleri için güvenlik uygulama hakkında daha fazla bilgi için aşağıdaki hizmete özgü güvenlik temellerine bakın:

Güvenlik temelleri, bu makalenin kapsamı dışında olan donanım şifrelemesi ve günlüğe kaydetme dahil olmak üzere diğer Azure tümleştirmelerini kapsar.

İyi Tasarlanmış Güvenlik Çerçevesi

Bu makalede, burada açıklanan kapsayıcı hizmetleri özellikleri arasındaki temel farklar ele alınmaktadır.

AKS hakkında daha eksiksiz güvenlik yönergeleri için bkz . İyi Tasarlanmış Çerçeve gözden geçirmesi - AKS.

İşlemle ilgili dikkat edilmesi gerekenler

Bir iş yükünü üretim ortamında başarıyla çalıştırmak için ekiplerin merkezi günlüğe kaydetme, izleme, ölçeklenebilirlik, düzenli güncelleştirmeler ve düzeltme eki uygulama ve görüntü yönetimi gibi operasyonel mükemmellik uygulamalarını uygulaması gerekir.

Güncelleştirmeler ve düzeltme ekleri

Bir uygulamanın temel işletim sisteminin güncelleştirilmiş ve düzenli olarak yamalı olması önemlidir. Ancak, her güncelleştirmede hata riski olduğunu unutmayın. Bu bölümde ve bir sonraki bölümde, müşteri ile platform arasındaki paylaşılan sorumlulukla ilgili olarak üç kapsayıcı hizmetiyle ilgili önemli noktalar açıklanmaktadır.

Yönetilen bir Kubernetes hizmeti olarak AKS, düğüm işletim sistemi ve kontrol düzlemi bileşenleri için güncelleştirilmiş görüntüleri sağlar. Ancak iş yükü ekipleri, güncelleştirmeleri kümelerine uygulamakla sorumludur. Kümelerinizin güncel olduğundan emin olmak için güncelleştirmeleri el ile tetikleyebilir veya küme otomatik yükseltme kanalları özelliğinden yararlanabilirsiniz. AKS kümelerine düzeltme eki uygulama ve yükseltme hakkında bilgi edinmek için AKS 2. gün işlemleri kılavuzuna bakın.

Kapsayıcılar için Container Apps ve Web App, PaaS çözümleridir. Azure güncelleştirmeleri ve düzeltme eklerini yönetmekten sorumludur, bu nedenle müşteriler AKS yükseltme yönetiminin karmaşıklığını önleyebilir.

Container Apps AKS Kapsayıcılar için Web App
Denetim düzlemi güncelleştirmeleri Platform Müşteri Platform
Konak güncelleştirmeleri ve düzeltme ekleri Platform Müşteri Platform
Kapsayıcı görüntüsü güncelleştirmeleri ve düzeltme ekleri Müşteri Müşteri Müşteri

Kapsayıcı görüntüsü güncelleştirmeleri

Azure kapsayıcı çözümünden bağımsız olarak müşteriler her zaman kendi kapsayıcı görüntülerinden sorumludur. Kapsayıcı tabanlı görüntüler için güvenlik yamaları varsa, görüntülerinizi yeniden derlemek sizin sorumluluğunuzdadır. Bu güvenlik açıkları hakkında uyarı almak için Container Registry'de barındırılan kapsayıcılar için Kapsayıcılar için Defender'ı kullanın.

Ölçeklenebilirlik

Ölçeklendirme, talepleri karşılamak için kaynak kapasitesini ayarlamak, performansı sağlamak için daha fazla kapasite eklemek ve tasarruf etmek için kullanılmayan kapasiteyi kaldırmak için kullanılır. Bir kapsayıcı çözümü seçtiğinizde altyapı kısıtlamalarını ve ölçeklendirme stratejilerini dikkate almanız gerekir.

Dikey altyapı ölçeklenebilirliği

Dikey ölçeklendirme , mevcut altyapıyı (yani işlem CPU'sunu ve belleği) artırma veya azaltma özelliğini ifade eder. Farklı iş yükleri için farklı miktarda işlem kaynağı gerekir. Bir Azure kapsayıcı çözümü seçtiğinizde, belirli bir Azure hizmeti için kullanılabilen donanım SKU tekliflerini bilmeniz gerekir. Bunlar farklılık gösterir ve ek kısıtlamalar uygulayabilir.

AKS için Azure belgelerindeki sanal makinelerin boyutlarını ve bölge başına AKS kısıtlamalarını gözden geçirin.

Bu makaleler, diğer iki hizmet için SKU teklifleri hakkında ayrıntılı bilgi sağlar:

Yatay altyapı ölçeklenebilirliği

Yatay ölçeklendirme , VM düğümleri gibi yeni altyapı aracılığıyla kapasiteyi artırma veya azaltma özelliğini ifade eder. Ölçeklendirme artar veya azalırken Container Apps tüketim katmanı temel alınan sanal makineleri soyutlar. Kalan Azure kapsayıcı hizmetleri için, standart Azure Resource Manager API'sini kullanarak yatay ölçeklendirme stratejisini yönetirsiniz.

Ölçeği genişletmenin ve içinde örneklerin yeniden dengelenmesi içerdiğini ve bu nedenle kapalı kalma süresi riski de oluşturduğunu unutmayın. Risk, dikey ölçeklendirme ile ilgili riskten daha küçüktür. Bununla birlikte, iş yükü ekipleri her zaman uygulamalarının hatayla başa çıkabileceğinden emin olmak ve kapalı kalma süresini önlemek için uygulamalarının düzgün başlangıç ve kapatma işlemlerini gerçekleştirmekten sorumludur.

Container Apps AKS Kapsayıcılar için Web App
Altyapı ölçeğini daraltma ve genişletme Tüketim planı: Yok
Ayrılmış plan: yapılandırılabilir
Konfigüre edilebilir Konfigüre edilebilir
Esnek donanım sağlama Tüketim planı: Yok
Ayrılmış plan: İş yükü profilleriyle soyutlanmış
Herhangi bir VM SKU'su Soyutlanmış. Bkz. App Service planı.

Önemli

Container Apps Ayrılmış planı (iş yükü profilleri) ve Kapsayıcılar için Web Uygulaması (App Service planları) aracılığıyla sağlanan donanım sağlama seçenekleri AKS kadar esnek değildir. İhtiyaçlarınızın karşılandığından emin olmak için her hizmette kullanılabilen SKU'ları tanımanız gerekir.

Uygulama ölçeklenebilirliği

Altyapı ve uygulamaların ölçeklendirmesini tetiklemenin tipik ölçüsü kaynak tüketimidir: CPU ve bellek. Bazı kapsayıcı çözümleri, HTTP istekleri gibi uygulamaya özgü bağlamla ölçümlere göre kapsayıcı örneği sayısını ölçeklendirebilir. Örneğin AKS ve Container Apps, KEDA aracılığıyla ileti kuyruklarına ve ölçekleyicileri aracılığıyla diğer birçok ölçüme göre kapsayıcı örneklerini ölçeklendirebilir. Bu özellikler, uygulamanız için ölçeklenebilirlik stratejisini seçerken esneklik sağlar. Kapsayıcılar için Web App, Azure tarafından sağlanan ölçeklenebilirlik seçeneklerine dayanır. (Aşağıdaki tabloya bakın.) Kapsayıcılar için Web App, KEDA gibi özel ölçekleyici yapılandırmalarını desteklemez.

Container Apps AKS Kapsayıcılar için Web App
Kapsayıcı ölçeği genişletme HTTP, TCP veya ölçüm tabanlı (CPU, bellek, olay temelli). Ölçüm tabanlı (CPU, bellek veya özel). El ile, ölçüm tabanlı veya otomatik (önizleme).
Olay odaklı ölçeklenebilirlik Evet. Bulutta yerel. Evet. Bulutta yerel. Ek yapılandırma gereklidir. Evet. Azure kaynağına özgü.

Gözlemlenebilirlik

İş yükü izleme

Karmaşık veya çok katmanlı uygulamalar için ölçümleri toplamak zor olabilir. Ölçümleri almak için kapsayıcılı iş yüklerini Azure İzleyici ile iki şekilde tümleştirebilirsiniz:

  • Otomatik izleme. Kod değişikliği gerekmez.
  • El ile izleme. SDK'nın ve/veya istemcinin tümleştirilmesi ve yapılandırılması için gereken en az kod değişikliği.
Container Apps AKS Kapsayıcılar için Web App
Platform aracılığıyla otomatik izleme Kısmi destek*
Aracı aracılığıyla otomatik izleme Kısmi destek* Yok
El ile izleme SDK veya OpenTelemetry aracılığıyla SDK veya OpenTelemetry aracılığıyla SDK veya OpenTelemetry aracılığıyla

*Aks ve Kapsayıcılar için Web App, uygulama diline bağlı olarak Linux ve Windows iş yüklerinin belirli yapılandırmaları için otomatik izleme desteği sağlar. Daha fazla bilgi için şu makalelere bakın:

Uygulama kodu içindeki izleme uygulama geliştiricilerin sorumluluğundadır, bu nedenle herhangi bir Azure kapsayıcı çözümünden bağımsızdır. İş yükünüz aşağıdaki gibi çözümleri kullanabilir:

Günlükler

Tüm Azure kapsayıcı hizmetleri uygulama ve platform günlüğü işlevselliği sağlar. Uygulama günlükleri , iş yükünüz tarafından oluşturulan konsol günlükleridir. Platform günlükleri , ölçeklendirme ve dağıtımlar gibi uygulamanızın kapsamı dışında platform düzeyinde gerçekleşen olayları yakalar.

Kapsayıcı hizmetlerinin günlüğe kaydetme işlevi arasındaki temel farklar platform günlüğüyle ilgilidir: günlüğe kaydedilenler ve günlüklerin dahili olarak nasıl düzenleneceğini. Azure İzleyici, Azure'da bu hizmetlerle tümleşen ana günlük hizmetidir. İzleyici, farklı kaynaklardan gelen günlükleri kategorilere ayırmak için kaynak günlüklerini kullanır. Her Azure hizmetinde hangi günlüklerin kullanılabilir olduğunu belirlemenin bir yolu, hizmetlerin her biri için kullanılabilen kaynak günlüğü kategorilerine bakmaktır.

Container Apps AKS Kapsayıcılar için Web App
Günlük akışı desteği (gerçek zamanlı akış)
Azure İzleyici desteği
Azure İzleyici kaynak günlükleri Konsol ve sistem Kubernetes API sunucusu, Denetim, Zamanlayıcı, Küme Otomatik Ölçeklendiricisi ve daha fazlası ConsoleLogs, HTTPLogs, EnvironmentPlatformLogs ve daha fazlası

Tablodaki kaynak günlüklerinin her birinin ayrıntılı açıklaması için tablodaki bağlantıları seçin.

Kapsayıcı hizmetlerinin günlüğe kaydetme özelliklerinin kısa bir özeti aşağıdadır:

  • Container Apps tüm iç Kubernetes günlüklerini iki kategoriye ayırır. Konsol günlükleri olarak adlandırılan bir tane, iş yükü kapsayıcı günlüklerini içerir. İkinci bir Sistem kategorisi, platformla ilgili tüm günlükleri içerir.
  • AKS , Kubernetes ile ilgili tüm günlükleri ve günlüğe kaydedilebilecekler üzerinde ayrıntılı denetim sağlar. Ayrıca kubectl gibi günlük akışı için Kubernetes istemci araçlarıyla tam uyumluluğu korur.
  • Kapsayıcılar için Web App, platformu (App Service) yalnızca kapsayıcı iş yükleri için olmadığından birçok kaynak günlüğü kategorisi sağlar. İç Docker platformunu yöneten kapsayıcıya özgü işlemler için AppServicePlatformLogs günlük kategorisini sağlar. Bir diğer önemli kategori de ölçeklendirme ve yapılandırma değişiklikleri gibi olayları günlüğe kaydeden AppServiceEnvironmentPlatformLogs kategorisidir.

operasyonel mükemmellik için iyi tasarlanmış çerçeve

Bu makalede, burada açıklanan kapsayıcı hizmetleri özellikleri arasındaki temel farklar ele alınmaktadır. Aşağıdaki hizmetler için operasyonel mükemmellik kılavuzunun tamamını gözden geçirmek için bu makalelere bakın:

Güvenilirlik

Güvenilirlik , sistemin hatalara tepki verme ve tam işlevsel kalma yeteneğini ifade eder. Uygulama yazılımı düzeyinde iş yükleri önbelleğe alma, yeniden deneme, devre kesici desenleri ve sistem durumu denetimleri gibi en iyi yöntemleri uygulamalıdır. Altyapı düzeyinde Azure, veri merkezlerinde donanım hataları ve güç kesintileri gibi fiziksel hataların işlenmesinden sorumludur. Hatalar yine de oluşabilir. İş yükü ekipleri uygun Azure hizmet katmanını seçmeli ve kullanılabilirlik alanları arasında otomatik yük devretme gerçekleştirmek için gerekli minimum örnek yapılandırmalarını uygulamalıdır.

Uygun hizmet katmanını seçmek için hizmet düzeyi sözleşmelerinin (SLA) ve kullanılabilirlik alanlarının nasıl çalıştığını anlamanız gerekir.

Servis düzeyi sözleşmeleri

Güvenilirlik genellikle SLA'lar gibi iş odaklı ölçümler veya kurtarma süresi hedefleri (RTO' lar) gibi kurtarma ölçümleriyle ölçülür.

Azure'da belirli hizmetler için birçok SLA vardır. %100 hizmet düzeyi diye bir şey yoktur, çünkü hatalar her zaman yazılım ve donanımda ve doğada, örneğin fırtınalarda ve depremlerde oluşabilir. SLA garanti değildir, finansal olarak desteklenmiş bir hizmet kullanılabilirliği sözleşmesidir.

En son SLA'lar ve ayrıntılar için Microsoft lisanslama web sitesinden Microsoft Online Services için en son SLA belgesini indirin.

Ücretsiz ve ücretli katmanlar

Azure hizmetlerinin ücretsiz katmanları genellikle bir SLA sunmaz ve bu da üretim dışı ortamlar için uygun maliyetli seçimler yapmalarını sağlar. Ancak üretim ortamları için SLA'sı olan ücretli bir katman seçmek en iyi yöntemdir.

AKS için ek faktörler

AKS'nin farklı bileşenler ve yapılandırmalar için farklı SLA'ları vardır:

  • Kontrol düzlemi. Kubernetes API sunucusunun ayrı bir SLA'sı vardır.
  • Veri düzlemi. Düğüm havuzları temel alınan VM SKU SLA'larını kullanır.
  • Kullanılabilirlik alanları. AKS kümesinde kullanılabilirlik alanlarının etkinleştirilip etkinleştirilmediğine ve kullanılabilirlik alanları arasında birden çok örnek çalıştırılıp çalıştırılmadığına bağlı olarak, iki düzlem için farklı SLA'lar vardır.

Birden çok Azure hizmeti kullandığınızda bileşik SLA'ların tek tek hizmet SLA'larından farklı ve daha düşük olabileceğini unutmayın.

Kullanılabilirlik alanlarıyla yedeklilik

Kullanılabilirlik alanları , tek bir bölge içinde bağımsız elektrik gücü, soğutma vb. olan farklı veri merkezleridir. Sonuçta elde edilen yedeklilik, çok bölgeli mimariler uygulamanıza gerek kalmadan hata toleransını artırır.

Azure'ın bir veri merkezi bölgesi çalıştırdığı her ülkede/bölgede kullanılabilirlik alanları vardır. Birden çok kapsayıcı örneğinin kullanılabilirlik alanları arasında geçişine izin vermek için kullanılabilirlik alanı desteği sağlayan SKU'ları, hizmet katmanlarını ve bölgeleri seçtiğinizden emin olun.

Özellik Container Apps AKS Kapsayıcılar için Web App
Kullanılabilirlik alanı desteği Tam Tam Tam

Örneğin, donanımın barındırıldığı kullanılabilirlik alanında bir sorun oluşursa, tek bir örneği çalıştıracak şekilde yapılandırılmış bir uygulama veya altyapı kullanılamaz duruma gelir. Kullanılabilirlik alanı desteğini tam olarak kullanmak için, kapsayıcının bölgelere yayılmış en az üç örneği yapılandırmasına sahip iş yüklerini dağıtmanız gerekir.

Sistem durumu denetimleri ve kendi kendini düzeltme

Sistem durumu denetimi uç noktaları, güvenilir bir iş yükü için çok önemlidir. Ancak bu uç noktaları oluşturmak çözümün yalnızca yarısıdır. Diğer yarısı ise barındırma platformunun ne yaptığını ve ne zaman hata olduğunu denetlemektir.

Sistem durumu yoklaması türlerini daha iyi ayırt etmek için Kubernetes'in yerleşik yoklama türlerine göz atın:

  • Başlangıç. Uygulamanın başarıyla başlatılıp başlatılmadığını denetler.
  • Hazır olma durumu. Uygulamanın gelen istekleri işlemeye hazır olup olmadığını denetler.
  • Canlılık. Uygulamanın hala çalışıp çalışmadığını ve yanıt verip vermediğini denetler.

Dikkat edilmesi gereken bir diğer önemli nokta da bu sistem durumu denetimlerinin uygulamadan ne sıklıkta isteniyor olduğudur (iç ayrıntı düzeyi). Bu istekler arasında uzun bir aralık varsa, örneğin iyi durumda olmadığı kabul edilene kadar trafiğe hizmet etmeye devam edebilirsiniz.

Uygulamaların çoğu HTTP(S) protokolü aracılığıyla sistem durumu denetimlerini destekler. Ancak, bazılarında bu denetimleri gerçekleştirmek için TCP veya gRPC gibi başka protokoller gerekebilir. Sistem durumu denetimi sisteminizi tasarlarken bunu aklınızda bulundurun.

Container Apps AKS Kapsayıcılar için Web Uygulaması
Başlangıç yoklamaları Kısmi destek
Hazırlık yoklamaları
Canlılık yoklamaları
Aralık ayrıntı düzeyi Saniye Saniye 1 dakika
Protokol desteği HTTP(S)
TCP
HTTP(S)
TCP
gRPC
HTTP(S)

Kapsayıcılar için Web App'te sistem durumu denetimlerinin uygulanması en kolayıdır. Dikkat edilmesi gereken bazı önemli noktalar vardır:

  • Başlangıç yoklamaları yerleşiktir ve değiştirilemez. Kapsayıcınızın başlangıç bağlantı noktasına bir HTTP isteği gönderir. Uygulamanızdan gelen tüm yanıtlar başarılı bir başlangıç olarak kabul edilir.
  • Hazır olma yoklamalarını desteklemez. Başlangıç araştırması başarılı olursa, kapsayıcı örneği iyi durumdaki örnekler havuzuna eklenir.
  • Sistem durumu denetimini bir dakikalık aralıklarla gönderir. Aralığı değiştiremezsiniz.
  • İyi durumda olmayan bir örneğin iç yük dengeleme mekanizmasından kaldırılması için ayarlayabileceğiniz minimum eşik iki dakikadır. İyi durumda olmayan örnek, sistem durumu denetimi başarısız olduktan sonra en az iki dakika boyunca trafik alır. Bu ayar için varsayılan değer 10 dakikadır.

Öte yandan Container Apps ve AKS çok daha esnek ve benzer seçenekler sunar. Belirli farklılıklar açısından AKS, Container Apps'te bulunmayan sistem durumu denetimleri gerçekleştirmek için aşağıdaki seçenekleri sağlar:

Otomatik onarım

Hatalı bir kapsayıcı örneğini tanımlamak ve bu örneğe trafik göndermeyi durdurmak bir başlangıçtır. Sonraki adım, otomatik düzeltmeyi uygulamaktır. Otomatik düzeltme , iyi durumda olmayan bir durumdan kurtarma girişiminde uygulamayı yeniden başlatma işlemidir. Üç kapsayıcı hizmeti şöyle karşılaştırır:

  • Kapsayıcılar için Web App'te, sistem durumu denetimi başarısız olduktan hemen sonra kapsayıcı örneğini yeniden başlatma seçeneği yoktur. Örnek bir saat boyunca başarısız olursa, yeni bir örnekle değiştirilir. Örnekleri izleyen ve yeniden başlatan otomatik düzeltme adlı başka bir özellik daha vardır. Doğrudan sistem durumu denetimleriyle ilgili değildir. Bellek sınırları, HTTP isteği süresi ve durum kodları gibi çeşitli uygulama ölçümlerini kullanır.
  • Kapsayıcı Uygulamaları ve AKS, canlılık yoklaması tanımlanan hata eşiğine ulaşırsa kapsayıcı örneğini otomatik olarak yeniden başlatmayı dener.

Sıfır kapalı kalma süresi uygulama dağıtımları

Kullanıcıların kapalı kalma süresine neden olmadan uygulamaları dağıtma ve değiştirme özelliği, güvenilir bir iş yükü için çok önemlidir. Bu makalede açıklanan üç kapsayıcı hizmeti de sıfır kapalı kalma süresi dağıtımlarını destekler ancak farklı şekillerde çalışır.

Container Apps AKS Kapsayıcılar için Web App
Sıfır kapalı kalma süresi stratejisi Sıralı güncelleştirme Sıralı güncelleştirme ve diğer tüm Kubernetes stratejileri Dağıtım yuvaları

Uygulama mimarilerinin de sıfır kapalı kalma süresi dağıtımını desteklemesi gerektiğini unutmayın. Kılavuz için bkz . Azure İyi Tasarlanmış Çerçeve .

Kaynak sınırları

Güvenilir bir paylaşılan ortamın bir diğer önemli bileşeni de kapsayıcılarınızın kaynak kullanımı (CPU veya bellek gibi) üzerindeki denetiminizdir. Tek bir uygulamanın tüm kaynakları kapladığı ve diğer uygulamaları kötü durumda bıraktığı senaryolardan kaçınmanız gerekir.

Container Apps AKS Kapsayıcılar için Web App
Kaynak sınırları (CPU veya bellek) Uygulama/kapsayıcı başına Uygulama/kapsayıcı başına
Ad alanı başına
App Service planı başına
  • Kapsayıcılar için Web Uygulaması: Tek bir App Service planında birden çok uygulama (kapsayıcı) barındırabilirsiniz. Örneğin, kapsayıcılarda birden çok web uygulaması çalıştırabileceğiniz iki CPU çekirdeği ve 4 GiB RAM içeren bir plan ayırabilirsiniz. Ancak, uygulamalardan birini belirli bir CPU veya bellek miktarıyla kısıtlayamazsınız. Hepsi aynı App Service planı kaynakları için rekabet ederler. Uygulama kaynaklarınızı yalıtmak istiyorsanız ek App Service planları oluşturmanız gerekir.
  • Container Apps: Ortamınızdaki uygulama başına CPU ve bellek sınırları ayarlayabilirsiniz. Ancak, CPU ve belleğin izin verilen bir dizi bileşimiyle kısıtlanmış durumdasınız. Örneğin, bir vCPU ve 1 GiB bellek yapılandıramazsınız, ancak bir vCPU ve 2 GiB bellek yapılandırabilirsiniz. Container Apps ortamı, Kubernetes ad alanına benzer.
  • AKS: Düğümleriniz bunu destekleyecek donanıma sahip olduğu sürece vCPU ve belleğin herhangi bir bileşimini seçebilirsiniz. Kümenizi bu şekilde segmentlere ayırmak istiyorsanız, kaynakları ad alanı düzeyinde de sınırlayabilirsiniz.

Güvenilirlik için İyi Tasarlanmış Çerçeve

Bu makale, Azure'daki kapsayıcı hizmetleri özellikleri arasındaki temel farklılıklara odaklanır. Belirli bir hizmet için tam güvenilirlik kılavuzunu gözden geçirmek istiyorsanız şu makalelere bakın:

Sonuç

İyi tasarlanmış çözümler, başarılı iş yüklerinin temellerini belirler. İş yükü büyüdükçe ve ekipler bulut yolculuklarında ilerledikçe mimariler ayarlansa da, özellikle ağ ile ilgili bazı kararların önemli bir kapalı kalma süresi veya yeniden dağıtım olmadan geri alınması zordur.

Genel olarak, Azure kapsayıcı hizmetlerini karşılaştırdığınızda bir tema ortaya çıkar: AKS en temel altyapıyı ortaya çıkar ve böylece en büyük yapılandırılabilirlik ve genişletilebilirliği sunar. OPERASYONEL ek yük ve karmaşıklık miktarı AKS iş yükleri için yüksek oranda değişkendir. Bazı ekipler, Microsoft tarafından yönetilen eklentiler ve uzantıların yanı sıra otomatik yükseltme özelliklerini kullanarak operasyonel ek yükü büyük ölçüde azaltabilir. Diğer müşteriler Kubernetes ve CNCF ekosisteminin tam genişletilebilirliğini kullanmak için kümenin tam denetimini tercih edebilir. Örneğin, Microsoft yönetilen GitOps uzantısı olarak Flux sunsa da, birçok ekip bunun yerine ArgoCD'yi kendi başına ayarlamayı ve çalıştırmayı seçer.

Örneğin CNCF uygulamaları gerektirmeyen, daha az operasyon deneyimine sahip olan veya uygulama özelliklerine odaklanmayı tercih eden iş yükü ekipleri bir PaaS teklifini tercih edebilir. Öncelikle Container Apps'i dikkate almalarını öneririz.

Container Apps ve Kapsayıcılar için Web App, Microsoft tarafından yönetilen altyapının benzer düzeylerini sağlayan PaaS teklifleri olsa da, kapsayıcı uygulamalarının Kubernetes'e daha yakın olması ve hizmet bulma, olay odaklı otomatik ölçeklendirme, Dapr tümleştirmesi ve daha fazlası için bulutta yerel özellikler sağlaması önemli bir farktır. Ancak, bu özelliklere ihtiyacı olmayan ve App Service ağ ve dağıtım modellerini bilen ekipler Kapsayıcılar için Web App'i tercih edebilir.

Genelleştirmeler, dikkate almanız gereken Azure kapsayıcı hizmetleri listesini daraltmanıza yardımcı olabilir. Ancak, tek tek gereksinimleri ayrıntılı olarak inceleyerek ve bunları hizmete özgü özellik kümelerine eşleştirerek seçiminizi doğrulamanız gerektiğini unutmayın.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Diğer katkıda bulunanlar:

Nonpublic LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar