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.
- Azure Container Apps'te gizli dizileri yönetme
- Key Vault'la AKS'yi tümleştirme
- Azure Uygulaması Hizmeti'nde uygulama ayarları olarak Key Vault başvurularını kullanma
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.
- AKS'de yönetilen kimlik kullanma
- Azure Container Apps'te yönetilen kimlikler
- App Service için yönetilen kimlikleri kullanma
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:
- Container Apps için Azure güvenlik temeli
- Azure Kubernetes Service için Azure güvenlik temeli
- App Service için Azure güvenlik temeli
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:
- Otomatik izleme desteklenen ortamlar, diller ve kaynak sağlayıcıları
- Kubernetes için sıfır izleme uygulaması izleme
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:
- AKS için İyi Tasarlanmış Çerçeve gözden geçirmesi
- Container Apps'te Güvenilirlik
- Azure Uygulaması Hizmeti ve güvenilirliği
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:
- Andre Dewes | Kıdemli Müşteri Mühendisi
- Xuhong Liu | Kıdemli Hizmet Mühendisi
- Marcos Martinez | Kıdemli Hizmet Mühendisi
- Julie Ng | Kıdemli Mühendis
Diğer katkıda bulunanlar:
- Mick Alberts | Teknik Yazar
- Martin Gjoshevski | Kıdemli Müşteri Mühendisi
- Don High | Baş Müşteri Mühendisi
- Nelly Kiboi | Hizmet Mühendisi
- Faysal Mustafa | Kıdemli Müşteri Mühendisi
- Walter Myers | Baş Müşteri Mühendisliği Yöneticisi
- Sonalika Roy | Kıdemli Müşteri Mühendisi
- Paolo Salvatori | Baş Müşteri Mühendisi
- Victor Santana | Baş Müşteri Mühendisi
Nonpublic LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki adımlar
İlgili kaynaklar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin