AKS iş yüklerinin güvenliğini sağlamak için Azure Front Door kullanma
Bu makalede, Azure Front Door, Azure Web Uygulaması Güvenlik Duvarı ve Azure Özel Bağlantı hizmetini daha güvenli bir şekilde kullanarak Azure Kubernetes Service'te (AKS) çalışan bir iş yükünün nasıl kullanıma sunulup korundığı açıklanmaktadır. Bu mimari, bir web uygulamasını kullanıma açmak için NGINX giriş denetleyicisini kullanır. NGINX giriş denetleyicisi, AKS iç yük dengeleyicisinin ön uç IP yapılandırması olarak özel ip adresi kullanacak şekilde yapılandırılır. Dağıtım, uçtan uca Aktarım Katmanı Güvenliği (TLS) şifrelemesi sağlar.
Mimari
Grafana logosu, ilgili şirketinin ticari markasıdır. Bu işaretin kullanılması herhangi bir onay anlamına gelmez.
Bu mimarinin bir Visio dosyasını indirin.
İş Akışı
Aşağıdaki diyagramda, dağıtım ve çalışma zamanı sırasında ileti akışına yönelik adımlar gösterilmektedir.
Dağıtım iş akışı
NGINX giriş denetleyicisini dağıtmak için aşağıdaki yöntemlerden birini kullanabilirsiniz:
Yönetilen NGINX giriş denetleyicisi:AKS için uygulama yönlendirme eklentisini kullanarak yönetilen bir NGINX giriş denetleyicisi dağıtın. Dağıtım, yönetilen NGINX giriş denetleyicisini iç yük dengeleyicinin ön uç IP adresi yapılandırması
kubernetes-internal
olarak özel bir IP adresi kullanacak şekilde yapılandırıyor. Daha fazla bilgi için bkz. NGINX giriş denetleyicisini uygulama yönlendirme eklentisiyle Azure özel DNS bölgesini destekleyecek şekilde yapılandırma.Yönetilmeyen NGINX giriş denetleyicisi: Helm aracılığıyla yönetilmeyen bir NGINX giriş denetleyicisi yükleyin. Dağıtım betiği, yönetilmeyen NGINX giriş denetleyicisini iç yük dengeleyicinin ön uç IP adresi yapılandırması
kubernetes-internal
olarak özel bir IP adresi kullanacak şekilde yapılandırıyor. Daha fazla bilgi için bkz . İç IP adresi kullanarak giriş denetleyicisi oluşturma.
Aşağıdaki iş akışı önceki diyagrama karşılık gelir:
Güvenlik mühendisi, iş yükünün kullandığı özel etki alanı için bir sertifika oluşturur ve bunu bir Azure anahtar kasasına kaydeder. İyi bilinen bir sertifika yetkilisinden geçerli bir sertifika alabilirsiniz.
Platform mühendisi, Bicep parametreleri dosyasında gerekli bilgileri
main.bicepparams
belirtir ve Azure kaynaklarını oluşturmak için Bicep modüllerini dağıtır. Gerekli bilgiler şunları içerir:Azure kaynakları için bir ön ek.
İş yükü konak adı ve Azure Front Door özel etki alanı için TLS sertifikasını tutan mevcut anahtar kasasının adı ve kaynak grubu.
Anahtar kasasında sertifikanın adı.
Azure Front Door özel etki alanını çözümlemek için kullanılan DNS bölgesinin adı ve kaynak grubu.
Dağıtım betiği AKS kümesinde aşağıdaki nesneleri oluşturur:
Yönetilmeyen bir NGINX giriş denetleyicisi kullanıyorsanız Helm aracılığıyla NGINX giriş denetleyicisi.
Örnek httpbin web uygulaması için bir Kubernetes dağıtımı ve hizmeti.
NGINX giriş denetleyicisi aracılığıyla web uygulamasını kullanıma sunan bir Kubernetes giriş nesnesi.
Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısının kullanıcı tanımlı yönetilen kimliğini kullanarak belirtilen anahtar kasasından TLS sertifikasını alan SecretProviderClass özel kaynağı. Bu bileşen, giriş nesnesinin başvurduğunu TLS sertifikasını içeren bir Kubernetes gizli dizisi oluşturur.
Azure Front Door gizli dizisi kaynağı , anahtar kasasında bulunan TLS sertifikasını yönetmek ve depolamak için kullanılır. Bu sertifika, Azure Front Door uç noktasıyla ilişkili özel etki alanı tarafından kullanılır. Azure Front Door profili, Key Vault'tan TLS sertifikasını almak için Key Vault Yöneticisi rol atamasıyla kullanıcı tarafından atanan yönetilen kimliği kullanır.
Not
Dağıtımın sonunda trafiğin çıkış noktasına özel olarak geçebilmesi için önce özel uç nokta bağlantısını onaylamanız gerekir. Daha fazla bilgi için bkz. Azure Front Door Premium'da Özel Bağlantı ile kaynağınızın güvenliğini sağlama. Özel uç nokta bağlantılarını onaylamak için Azure portalını, Azure CLI'yı veya Azure PowerShell'i kullanın. Daha fazla bilgi için bkz . Özel uç nokta bağlantısını yönetme.
Çalışma zamanı iş akışı
Aşağıdaki adımlar, bir dış istemci uygulamasının çalışma zamanı sırasında başlattığı bir istek için ileti akışını açıklar. Bu iş akışı, önceki diyagramdaki turuncu sayılara karşılık gelir.
İstemci uygulaması, web uygulamasına istek göndermek için özel etki alanını kullanır. Özel etki alanıyla ilişkili DNS bölgesi, özel etki alanının DNS sorgusunu Azure Front Door uç noktasının özgün ana bilgisayar adına yeniden yönlendirmek için bir CNAME kaydı kullanır.
Azure Front Door trafik yönlendirmesi birkaç aşamada gerçekleşir. başlangıçta istek, Azure Front Door iletişim durum noktalarından birine gönderilir. Ardından Azure Front Door, trafik için uygun hedefi belirlemek üzere yapılandırmayı kullanır. Azure Front Door önbelleğe alma, web uygulaması güvenlik duvarı (WAF), yönlendirme kuralları, kural altyapısı ve önbelleğe alma yapılandırması gibi çeşitli faktörler yönlendirme işlemini etkileyebilir. Daha fazla bilgi için bkz . Yönlendirme mimarisine genel bakış.
Azure Front Door, gelen isteği AKS tarafından barındırılan iş yükünü kullanıma sunan Özel Bağlantı hizmetine bağlı Azure özel uç noktasına iletir.
İstek Özel Bağlantı hizmetine gönderilir.
İstek kubernetes-internal AKS iç yük dengeleyiciye iletilir.
İstek, yönetilen veya yönetilmeyen NGINX giriş denetleyicisinin podunu barındıran aracı düğümlerinden birine gönderilir.
NGINX giriş denetleyicisi çoğaltmalarından biri isteği işler.
NGINX giriş denetleyicisi, isteği iş yükü podlarından birine iletir.
Bileşenler
Genel veya özel AKS kümesi aşağıdaki düğüm havuzlarından oluşur:
Ayrılmış bir alt ağdaki sistem düğümü havuzu. Varsayılan düğüm havuzu yalnızca kritik sistem podlarını ve hizmetlerini barındırıyor. Sistem düğümlerinin düğüm taint değeri vardır, bu nedenle uygulama podları bu düğüm havuzunda zamanlanamaz.
Ayrılmış bir alt ağda kullanıcı iş yüklerini ve yapıtlarını barındıran bir kullanıcı düğümü havuzu.
Dağıtım için rol tabanlı erişim denetimi (RBAC) rol atamaları gerekir; bu atamalar şunlardır:
rolü ataması
objectID
. Grafana Yönetici rolü örnek üzerinde tam denetim sağlar. Bu denetim rol atamalarını yönetmeyi ve veri kaynaklarını görüntülemeyi, düzenlemeyi ve yapılandırmayı içerir. Daha fazla bilgi için bkz . Azure Yönetilen Grafana erişimini paylaşma.Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısının kullandığı kullanıcı tanımlı yönetilen kimliğe yönelik TLS sertifikasını içeren mevcut Key Vault kaynağında Key Vault Yöneticisi rol ataması. Bu atama, kaynak anahtar kasasından sertifikayı okuyabilmesi için CSI sürücüsüne erişim sağlar.
Azure Front Door Premium , Katman 7 küresel yük dengeleyici ve modern bulut içeriği teslim ağıdır. Kullanıcılarınızla uygulamalarınızın dünya genelindeki statik ve dinamik web içeriği arasında hızlı, güvenilir ve gelişmiş güvenlik erişimi sağlar. Microsoft genel uç ağını kullanarak içeriğinizi teslim etmek için Azure Front Door'u kullanabilirsiniz. Ağ, dünya çapında dağıtılmış yüzlerce küresel ve yerel varlık noktasına sahiptir. Böylece, kuruluşunuza ve tüketici müşterilerinize yakın olan iletişim noktalarını kullanabilirsiniz.
Bu çözümde Azure Front Door, aks tarafından barındırılan bir örnek web uygulamasını bir Özel Bağlantı hizmeti ve NGINX giriş denetleyicisi aracılığıyla kullanıma açmak için kullanılır. Azure Front Door, Azure Front Door uç noktası için özel bir etki alanını kullanıma sunma amacıyla yapılandırılmıştır. Özel etki alanı, Key Vault'tan okunan bir TLS sertifikası içeren Azure Front Door gizli dizisini kullanacak şekilde yapılandırılır.
Azure Web Uygulaması Güvenlik Duvarı, Azure Front Door aracılığıyla kullanıma sunulan AKS tarafından barındırılan uygulamaları Open Web Application Security Project (OWASP) güvenlik açıkları, SQL eklemeleri ve siteler arası betik oluşturma gibi yaygın web tabanlı saldırılara karşı korur. Bu bulutta yerel, kullandıkça öde teknolojisi lisanslama gerektirmez. Azure Web Uygulaması Güvenlik Duvarı, web uygulamalarınız için koruma sağlar ve web hizmetlerinizi yaygın açıklara ve güvenlik açıklarına karşı korur.
Azure Front Door özel etki alanının ad çözümlemesi için bir Azure DNS bölgesi kullanılır. Azure DNS'yi DNS etki alanınızı barındırmak ve DNS kayıtlarınızı yönetmek için kullanabilirsiniz.
CNAME kaydı, bir etki alanı adından diğerine bir diğer ad veya işaretçi oluşturmak için kullanılır. Özel etki alanı için DNS sorgularını Azure Front Door uç noktasının özgün ana bilgisayar adına yeniden yönlendirmek için bir CNAME kaydı yapılandırabilirsiniz.
Metin (TXT) kaydı, özel etki alanı için doğrulama belirtecini içerir. Etki alanıyla ilişkili rastgele metin bilgilerini depolamak için DNS bölgesi içinde txt kaydı kullanabilirsiniz.
aks kümesinin kubernetes-internal iç yük dengeleyicisine başvurmak için bir Özel Bağlantı hizmeti yapılandırılır. Azure Front Door Premium'da kaynağınıza Özel Bağlantı etkinleştirdiğinizde, Azure Front Door, Azure Front Door tarafından yönetilen bölgesel bir özel ağdan özel bir uç nokta oluşturur. Onayınız için kaynakta bir Azure Front Door özel uç nokta isteği alırsınız. Daha fazla bilgi için bkz. Azure Front Door Premium'da Özel Bağlantı ile kaynağınızın güvenliğini sağlama.
Azure Sanal Ağ altı alt ağa sahip tek bir sanal ağ oluşturmak için kullanılır:
SystemSubnet , sistem düğümü havuzunun aracı düğümleri için kullanılır.
UserSubnet , kullanıcı düğümü havuzunun aracı düğümleri için kullanılır.
PodSubnet , AKS kümesi dinamik IP adresi ayırma ile Azure içerik ağ arabirimini kullanacak şekilde yapılandırıldığında podlara özel IP adreslerini dinamik olarak ayırmak için kullanılır.
ApiServerSubnet, API sunucusu uç noktasını aks kümesinin dağıtıldığı bu temsilci alt ağa doğrudan yansıtmak için API sunucusu sanal ağ tümleştirmesini kullanır.
AzureBastionSubnet, Azure Bastion konağı için kullanılır.
VmSubnet , özel AKS kümesine bağlanan atlama kutusu sanal makinesi (VM) ve özel uç noktalar için kullanılır.
Azure'da yük dengeleyiciler ve yönetilen diskler gibi daha fazla kaynak oluşturmak için AKS kümesi tarafından kullanıcı tarafından atanan yönetilen kimlik kullanılır.
Azure Sanal Makineleri , VM alt akında isteğe bağlı bir atlama kutusu VM'sini oluşturmak için kullanılır.
AKS aracısı düğümlerine ve VM'lerine Güvenli Yuva Kabuğu bağlantısı sağlamak için AKS kümesi sanal ağında bir Azure Bastion konağı dağıtılır.
Azure Depolama hesabı, hem hizmet sağlayıcısının hem de hizmet tüketici vm'lerinin önyükleme tanılama günlüklerini depolamak için kullanılır. Önyükleme tanılaması, vm durumunu tanılamak için konsol çıkışını ve ekran görüntülerini görüntülemek için kullanabileceğiniz bir hata ayıklama özelliğidir.
Azure Container Registry kapsayıcı görüntülerini ve yapıtlarını oluşturmak, depolamak ve yönetmek için kullanılır.
Key Vault gizli dizileri, sertifikaları ve anahtarları depolamak için kullanılır. Podlar gizli dizileri, sertifikaları ve anahtarları dosya olarak bağlamak için Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısını kullanabilir.
Daha fazla bilgi için bkz . Aks kümesinde Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısını kullanma ve Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısına erişmek için kimlik sağlama.
Bu projede mevcut bir Key Vault kaynağı, giriş Kubernetes nesnesinin ve Azure Front Door uç noktasının özel etki alanının kullandığı TLS sertifikasını içerir.
Aşağıdaki kaynakların her biri için bir Azure özel uç noktası ve bir Azure özel DNS bölgesi oluşturulur:
- Container Registry
- Key Vault
- Depolama hesabı
Azure ağ güvenlik grupları (NSG), VM'leri ve Azure Bastion konaklarını barındıran alt ağlara yönelik gelen ve giden trafiği filtrelemek için kullanılır.
Azure İzleyici çalışma alanı, İzleyici'nin topladığı veriler için benzersiz bir ortamdır. Her çalışma alanının kendi veri deposu, yapılandırması ve izinleri vardır. Azure İzleyici Günlükleri çalışma alanları birden çok Azure kaynağından günlükler ve ölçüm verileri içerirken İzleyici çalışma alanları yalnızca Prometheus ile ilgili ölçümleri içerir.
Prometheus'a dayalı Prometheus uyumlu bir izleme çözümü kullanarak ölçümleri büyük ölçekte toplamak ve analiz etmek için Prometheus için yönetilen hizmeti kullanabilirsiniz. Prometheus sorgu dilini (PromQL) kullanarak, temel altyapıyı çalıştırmak zorunda kalmadan izlenen altyapının ve iş yüklerinin performansını analiz edebilir ve bunlarla ilgili uyarı verebilirsiniz.
Azure Yönetilen Grafana örneği, Bicep modülünün dağıttığı AKS kümesinin oluşturduğu Prometheus ölçümlerini görselleştirmek için kullanılır. İzleyici çalışma alanınızıAzure Yönetilen Grafana'ya bağlayabilir ve Prometheus ölçümlerini görselleştirmek için yerleşik ve özel Grafana panoları kullanabilirsiniz. Grafana Enterprise, genişletilebilir veri görselleştirmeleri sağlayan Azure Yönetilen Grafana'yı destekler. Yerleşik yüksek kullanılabilirliğe sahip Grafana panolarını hızla ve kolayca dağıtabilirsiniz. Panolara erişimi denetlemek için Azure güvenlik ölçülerini de kullanabilirsiniz.
Azure İzleyici Günlükleri çalışma alanı, azure kaynaklarından tanılama günlüklerini ve ölçümlerini toplamak için kullanılır ve bunlar şunlardır:
- AKS kümeleri
- Key Vault
- Azure NSG'leri
- Container Registry
- Depolama hesapları
Bicep dağıtım betiği, AKS kümesinde aşağıdaki nesneleri oluşturan bir Bash betiğini çalıştırmak için kullanılır:
Örnek httpbin web uygulaması için bir Kubernetes dağıtımı ve hizmeti.
NGINX giriş denetleyicisi aracılığıyla web uygulamasını kullanıma sunan bir Kubernetes giriş nesnesi.
Gizli Dizi Deposu CSI Sürücüsü için Key Vault sağlayıcısının kullanıcı tanımlı yönetilen kimliğini kullanarak belirtilen anahtar kasasından TLS sertifikasını alan SecretProviderClass özel kaynağı. Bu bileşen, giriş nesnesi tarafından başvuruda bulunan TLS sertifikasını içeren bir Kubernetes gizli dizisi oluşturur.
(İsteğe bağlı) Yönetilmeyen bir NGINX giriş denetleyicisi kullanmayı tercih ettiyseniz Helm aracılığıyla NGINX giriş denetleyicisi.
(İsteğe bağlı) Cert-manager
(İsteğe bağlı) Prometheus ve Grafana
Alternatifler
AKS kümesi yük dengeleyicisine otomatik olarak yönetilen Özel Bağlantı hizmeti oluşturmak için Özel Bağlantı hizmeti özelliğini kullanabilirsiniz. Özel bağlantı sağlamak için hizmetinize özel uç nokta bağlantıları oluşturmanız gerekir. Özel Bağlantı hizmeti aracılığıyla kubernetes hizmetini kullanıma açmak için ek açıklamaları kullanabilirsiniz. Bu makaledeki mimari, Azure Load Balancer kümesine başvurmak için el ile bir Özel Bağlantı hizmeti oluşturur.
Senaryo ayrıntıları
Bu senaryoda AKS'de çalışan bir iş yükünü güvenli bir şekilde kullanıma seçip korumak için Azure Front Door Premium, uçtan uca TLS şifrelemesi, Azure Web Uygulaması Güvenlik Duvarı ve Özel Bağlantı hizmeti kullanılır.
Bu mimari, TLS bağlantısını sonlandırmak ve Front Door'da gelen trafiğin şifresini çözmek için Azure Front Door TLS ve Güvenli Yuva Katmanı (SSL) boşaltma özelliğini kullanır. Trafik, AKS kümesinde barındırılan bir web uygulaması olan kaynak öğeye iletilmeden önce yeniden şifrelenmektedir. HTTPS, Azure Front Door kaynak olarak yapılandırılan AKS tarafından barındırılan iş yüküne bağlandığında Azure Front Door'da iletme protokolü olarak yapılandırılır. Bu uygulama, istemciden kaynağına kadar tüm istek işlemi için uçtan uca TLS şifrelemesi uygular. Daha fazla bilgi için bkz. Azure Front Door Premium'da Özel Bağlantı ile kaynağınızın güvenliğini sağlama.
NGINX giriş denetleyicisi AKS tarafından barındırılan web uygulamasını kullanıma sunar. NGINX giriş denetleyicisi, iç yük dengeleyicinin kubernetes-internal
ön uç IP yapılandırması olarak özel bir IP adresi kullanacak şekilde yapılandırılır. NGINX giriş denetleyicisi, web uygulamasını kullanıma açmak için aktarım protokolü olarak HTTPS kullanır. Daha fazla bilgi için bkz . İç IP adresi kullanarak giriş denetleyicisi oluşturma.
AKS kümesi aşağıdaki özellikleri kullanacak şekilde yapılandırılmıştır:
API sunucusu sanal ağ tümleştirmesi , API sunucusu ile küme düğümleri arasında ağ iletişimi sağlar. Bu özellik için özel bağlantı veya tünel gerekmez. API sunucusu, temsilci alt ağındaki bir iç yük dengeleyici VIP'sinin arkasında kullanılabilir. Küme düğümleri, temsilci alt ağı kullanacak şekilde yapılandırılır. API sunucunuzla düğüm havuzlarınız arasındaki ağ trafiğinin yalnızca özel ağda kaldığından emin olmak için API sunucusu sanal ağ tümleştirmesini kullanabilirsiniz. API sunucusu sanal ağ tümleştirmesi olan AKS kümeleri birçok avantaj sağlar. Örneğin, kümeyi yeniden dağıtmadan genel ağ erişimini veya özel küme modunu etkinleştirebilir veya devre dışı bırakabilirsiniz. Daha fazla bilgi için bkz . API sunucusu sanal ağ tümleştirmesi ile AKS kümesi oluşturma.
Azure NAT Gateway , AKS tarafından barındırılan iş yüklerinin başlattığı giden bağlantıları yönetir. Daha fazla bilgi için bkz . AKS kümeniz için yönetilen veya kullanıcı tarafından atanan nat ağ geçidi oluşturma.
Olası kullanım örnekleri
Bu senaryo, AKS'de çalışan bir web uygulaması veya REST API için güvenlik ve uyumluluk gereksinimlerini karşılamaya yönelik bir çözüm sağlar.
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanabileceğiniz bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz. Well-Architected Framework.
Aşağıdaki önemli noktalardan bazıları özellikle AKS kümesinin güvenliğini geliştirmek için Azure Front Door, Azure Web Uygulaması Güvenlik Duvarı ve Özel Bağlantı hizmetinin kullanımıyla ilgili değildir. Ancak güvenlik, performans, kullanılabilirlik, güvenilirlik, depolama ve izleme konuları bu çözümün temel gereksinimleridir.
Güvenilirlik
Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesine yardımcı olur. Daha fazla bilgi için bkz . Güvenilirlik için tasarım gözden geçirme denetim listesi.
Bu öneriler tek kiracılı AKS çözümleri için gereklidir ve sisteme bağlı kullanıcı ve iş yüklerinin sayısı nedeniyle güvenilirlik hedeflerinin daha yüksek olduğu çok kiracılı AKS çözümlerine özgü değildir. AKS kümenizin ve iş yüklerinizin kullanılabilirliğini iyileştirmek için aşağıdaki önerileri göz önünde bulundurun.
Bölge içi dayanıklılık
AKS kümenizin düğüm havuzlarını bir bölgedeki tüm kullanılabilirlik alanlarına dağıtın.
Bölge içi dayanıklılık ve yüksek kullanılabilirlik için Container Registry'de bölge yedekliliğini etkinleştirin.
Aks kümenizde podları bölgeler, kullanılabilirlik alanları ve düğümler gibi hata etki alanları arasında nasıl yayabileceğinizi denetlemek için topoloji yayma kısıtlamalarını kullanın.
Üretim AKS kümeleriniz için Standart veya Premium katmanını kullanın. Bu katmanlar, kullanılabilirlik alanlarını kullanan kümeler için Kubernetes API sunucu uç noktasının %99,95 kullanılabilirliğini ve kullanılabilirlik alanlarını kullanmayan kümeler için %99,9 kullanılabilirliği garanti eden çalışma süresi hizmet düzeyi sözleşmesi (SLA) özelliğini içerir. Daha fazla bilgi için bkz . AKS küme yönetimi için Ücretsiz, Standart ve Premium fiyatlandırma katmanları.
Kapsayıcı görüntülerini ve Oracle Bulut Altyapısı (OCI) yapıtlarını depolamak için Container Registry kullanıyorsanız alanlar arası yedekliliği etkinleştirin. Container Registry isteğe bağlı bölge yedekliliğini ve coğrafi çoğaltmayı destekler. Bölge yedekliliği, belirli bir bölgedeki bir kayıt defterine veya çoğaltma kaynağına (çoğaltma) dayanıklılık ve yüksek kullanılabilirlik sağlar. Coğrafi çoğaltma, kullanılabilirlik sağlamak ve bölgesel işlemler için gecikme süresini azaltmak için kayıt defteri verilerini bir veya daha fazla Azure bölgesinde çoğaltır.
Olağanüstü durum kurtarma ve iş sürekliliği
Çözümünüzü iki bölgeye dağıtmayı göz önünde bulundurun. İkinci bölge olarak eşleştirilmiş Azure bölgesini kullanın.
Kalite güvencesi (QA) ortamında bölgesel yük devretme işlemlerini betik, belge ve düzenli aralıklarla test edin.
Beklendiği gibi çalıştıklarını doğrulamak için yeniden çalışma yordamlarını test edin.
Kapsayıcı görüntülerinizi Container Registry'de depolayın. Kayıt defterini AKS çözümünüzü dağıttığınız her bölgeye coğrafi olarak çoğaltın.
Mümkünse, hizmet durumunu bir kapsayıcıda depolamayın. Bunun yerine, hizmet durumunu çok bölgeli çoğaltmayı destekleyen bir hizmet olarak Azure platformu (PaaS) depolama çözümünde depolayın. Her hizmetin kritik verilerini bölgeler arasında koruyabildiğiniz için bu yaklaşım dayanıklılığı artırır ve olağanüstü durum kurtarmayı basitleştirir.
Depolama kullanıyorsanız, depolama alanınızı birincil bölgeden yedekleme bölgesine geçirmek için işlemleri hazırlayın ve test edin.
Güvenlik
Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik için tasarım gözden geçirme denetim listesi.
GENEL HTTPS uç noktasını kullanıma sunan AKS tarafından barındırılan web uygulamalarını ve hizmetlerini korumak için WAF kullanın. SQL ekleme, siteler arası betik oluşturma ve diğer web açıklarından yararlanma gibi yaygın tehditlere karşı koruma sağlamanız gerekir. OWASP kurallarını ve kendi özel kurallarınızı izleyin. Azure Web Uygulaması Güvenlik Duvarı, web uygulamalarınız için yaygın açıklardan yararlanma ve güvenlik açıklarına karşı geliştirilmiş merkezi koruma sağlar. Azure Application Gateway, Azure Front Door veya Azure Content Delivery Network kullanarak Azure WAF dağıtabilirsiniz.
İş yükü dağıtılmış hizmet reddi (DDoS) saldırılarına karşı savunmak için Azure DDoS Koruması ve uygulama tasarımı en iyi yöntemlerini kullanın. Azure, altyapısını ve hizmetlerini DDoS saldırılarına karşı korur. Bu koruma bölgelerin, kullanılabilirlik alanlarının ve hizmetlerin kullanılabilirliğini sağlamaya yardımcı olur. Ayrıca, iş yükünüzün genel uç noktalarını Katman 4 ve Katman 7'deki DDoS saldırılarına karşı da korumanız gerekir. Çevre sanal ağlarında Azure DDOS Koruması'nı etkinleştirebilirsiniz.
Belirli bir kaynak IP adresinden uygulamanıza tanımlı bir hız sınırı süresi içinde izin verdiğiniz istek sayısını yönetmek ve denetlemek için Azure Front Door için Azure Web Uygulaması Güvenlik Duvarı hız sınırı kuralını kullanın. Hız sınırlama ilkelerini zorunlu kılmaya yardımcı olmak ve uygulamanızı aşırı trafik veya olası kötüye kullanımlardan korumanıza yardımcı olmak için bu özelliği kullanın. En iyi uygulama performansını ve güvenliğini korumak ve istek sınırları için ayrıntılı denetim sağlamak için hız sınırı kuralını yapılandırın.
Azure Front Door ile ilişkili WAF ilkesini önleme moduna yapılandırın. Önleme modunda WAF ilkesi gelen istekleri analiz eder ve bunları yapılandırılan kurallarla karşılaştırır. İstek, karşılandığında trafiği reddetmek üzere ayarlanmış bir veya daha fazla kuralla eşleşiyorsa WAF ilkesi kötü amaçlı trafiğin web uygulamalarınıza ulaşmasını engeller. Bu ölçü, uygulamalarınızı olası güvenlik açıklarına ve yetkisiz erişim girişimlerine karşı korumanıza yardımcı olur. Daha fazla bilgi için bkz. Azure Front Door'da Azure Web Uygulaması Güvenlik Duvarı.
AKS iş yüklerinin kullandığı Key Vault, Azure Service Bus ve Azure SQL Veritabanı gibi tüm PaaS hizmetleri için bir Azure özel uç noktası oluşturun. Uygulamalar ve bu hizmetler arasındaki trafik genel İnternet'e açık değildir. AKS kümesi sanal ağı ile özel uç nokta üzerinden PaaS hizmetinin bir örneği arasındaki trafik Microsoft omurga ağına gider, ancak Azure güvenlik duvarından geçmez. Özel uç nokta, veri sızıntısına karşı güvenlik ve koruma sağlar. Daha fazla bilgi için bkz. Özel Bağlantı nedir?.
AKS kümesinin önünde Application Gateway kullanırken genel kullanıma yönelik AKS tarafından barındırılan iş yüklerinin saldırılara karşı korunmasına yardımcı olmak için WAF ilkesi kullanın.
Hangi bileşenlerin birbiriyle iletişim kurabileceğini denetlemek için Kubernetes ağ ilkelerini kullanın. Bu denetim, hizmet içi iletişimlerin güvenliğini sağlar ve bunlara yardımcı olur. Varsayılan olarak, Kubernetes kümesindeki tüm podlar sınırlama olmadan trafik gönderebilir ve alabilir. Güvenliği geliştirmek için Azure ağ ilkelerini veya Calico ağ ilkelerini kullanarak çeşitli mikro hizmetler arasındaki trafik akışını denetleyan kurallar tanımlayabilirsiniz. Ağ düzeyinde erişim denetimini zorunlu kılmaya yardımcı olması için Azure ağ ilkelerini kullanın. AKS kümenizde ayrıntılı ağ segmentasyonu ve güvenlik ilkeleri uygulamak için Calico ağ ilkelerini kullanın. Daha fazla bilgi için bkz . AKS'de ağ ilkelerini kullanarak podlar arasındaki trafiğin güvenliğini sağlama.
AKS düğümlerinize uzak bağlantıyı kullanıma sunma. Yönetim sanal ağında bir Azure Bastion konağı veya atlama kutusu oluşturun. Trafiği AKS kümenize yönlendirmek için Azure Bastion ana bilgisayarını kullanın.
Üretim ortamınızda özel bir AKS kümesi kullanmayı göz önünde bulundurun. Alternatif olarak, API sunucusuna erişimin güvenliğini sağlamak için AKS'de en azından yetkili IP adresi aralıklarını kullanabilirsiniz. Bir ortak kümede yetkili IP adresi aralıkları kullandığınızda, Azure güvenlik duvarı ağ kuralı koleksiyonundaki tüm çıkış IP adreslerine izin verin. Küme içi işlemler Kubernetes API sunucusunu kullanır.
Maliyet İyileştirmesi
Maliyet İyileştirme, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarına odaklanır. Daha fazla bilgi için bkz . Maliyet İyileştirme için tasarım gözden geçirme denetim listesi.
Trafik koşullarına göre pod ve düğüm sayısını ölçeklendirmek için küme otomatik ölçeklendiricisini, Kubernetes olay temelli Otomatik Ölçeklendirme'yi ve yatay pod otomatik ölçeklendiricisini kullanın.
Kaynak ayırmayı iyileştirmek ve uygulama yoğunluğunun artırılması için podlar için uygun kaynak isteklerini ve sınırlarını ayarlayın. Daha fazla bilgi için bkz . AKS'de kaynak yönetimi için en iyi yöntemler.
Ad alanları içinde bellek ve CPU kullanımı kotaları ayarlamak için ResourceQuota nesnelerini kullanın. Bu yapılandırma gürültülü komşu sorunlarını önlemeye ve uygulama yoğunluğunun artırılmasına yardımcı olur. Daha fazla bilgi için bkz . Ad alanında sınır aralığını ayarlama.
Podların gerektirdiği CPU ve bellek kaynaklarını analiz etmek ve ayarlamak için dikey pod otomatik ölçeklendiricisini uygulayın. Bu yaklaşım kaynak ayırmayı iyileştirir.
İş yükü gereksinimlerine göre düğüm havuzları için uygun VM boyutunu seçin.
Belirli iş yükleri için farklı VM boyutlarına sahip birden çok düğüm havuzu oluşturun. Kaynak ayırmayı iyileştirmek için düğüm etiketlerini, düğüm seçicileri ve benzimi kurallarını kullanın.
Düğüm havuzlarını durdurun veya kullanmadığınızda AKS kümelerinin ölçeğini küçültün.
Maliyetleri izlemek ve iyileştirmek için Azure Danışmanı, Azure rezervasyonları ve Azure tasarruf planları gibi maliyet yönetimi araçlarından yararlanın.
Azure'da kullanılmayan kapasiteden yararlanmak ve maliyeti azaltmak için spot düğüm havuzlarını kullanmayı göz önünde bulundurun.
AKS maliyetlerini izlemek ve yönetmek için Kubecost gibi araçları kullanın.
Maliyet izleme ve yönetimi geliştirmek için AKS kaynaklarını belirli iş yükleriyle veya kiracılarla ilişkilendirmek için Azure etiketlerini kullanın.
Daha fazla bilgi için bkz. AKS'de maliyet iyileştirme ve Maliyetleri iyileştirme.
Operasyonel Mükemmellik
Operasyonel Mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel Mükemmellik için tasarım gözden geçirme denetim listesi.
DevOps
İş yüklerinizi AKS'ye dağıtmak için sürekli tümleştirme ve sürekli teslim işlem hattında Helm grafiği kullanın.
Bir uygulamayı kullanıcıların kullanımına açmadan önce düzgün bir şekilde test etmek için uygulama yaşam döngüsü yönetiminizde A/B test ve kanarya dağıtımlarını kullanın.
Kümeye dağıtılan özel kapsayıcı görüntülerini depolamak için Container Registry'yi veya Harbor veya Docker Hub gibi Microsoft dışı bir kayıt defterini kullanın.
Üretim ortamınızın ağ topolojisini ve güvenlik duvarı kurallarını yansıtan ayrı bir üretim öncesi ortamda iş yüklerinizde girişi ve çıkışı test edin.
İzleme
AKS kümesinin ve iş yüklerinin sistem durumunu izlemek için kapsayıcı içgörülerini kullanın.
Cloud Native Computing Foundation'ın Prometheus projesini temel alan Prometheus uyumlu bir izleme çözümü kullanarak ölçümleri büyük ölçekte toplamak ve analiz etmek için Prometheus için yönetilen hizmeti kullanın.
Prometheus için yönetilen hizmetinizi Grafana panosunda veri kaynağı olarak kullanmak için Azure Yönetilen Grafana örneğine bağlayın. Ardından Prometheus ölçümlerini kullanan önceden oluşturulmuş birden çok panoya erişebilir ve özel panolar oluşturabilirsiniz.
Azure İzleyici Günlükleri çalışma alanında tanılama günlüklerini ve ölçümleri toplamak için Container Registry ve Key Vault gibi tüm PaaS hizmetlerini yapılandırın.
Bu senaryoyu dağıtın
Bu senaryonun kaynak kodu GitHub'da kullanılabilir. Bu açık kaynak çözümü MIT Lisansı kapsamında lisanslanır.
Önkoşullar
Etkin bir Azure aboneliği. Hesabınız yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
Desteklenen platformlardan birinde Visual Studio Code ve Bicep uzantısı.
Azure CLI sürüm 2.58.0 veya üzeri. Daha fazla bilgi için bkz . Azure CLI'yı yükleme.
Örnek web uygulaması için geçerli bir TLS sertifikasına sahip mevcut bir Key Vault kaynağı.
CNAME kaydı aracılığıyla Azure Front Door özel etki alanının ad çözümlemesi için mevcut bir Azure DNS bölgesi.
Azure'a dağıtım
workbench GitHub deposunu kopyalayın.
git clone https://github.com/Azure-Samples/aks-front-door-end-to-end-tls.git
README dosyasındaki yönergeleri izleyin. Bu adım için Azure abonelik bilgilerinize ihtiyacınız vardır.
Katkıda Bulunanlar
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
Asıl yazar:
- Paolo Salvatori | Baş Hizmet Mühendisi
Nonpublic LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki adımlar
- AKS kümesi en iyi yöntemleri
- Azure Front Door'da Azure Web Uygulaması Güvenlik Duvarı
- Gelişmiş zamanlayıcı özellikleri için en iyi deneyimler
- Kimlik doğrulaması ve yetkilendirme için en iyi yöntemler
- AKS'deki temel zamanlayıcı özellikleri için en iyi yöntemler
- AKS'de iş sürekliliği ve olağanüstü durum kurtarma için en iyi yöntemler
- AKS'de küme güvenliği ve yükseltmeleri için en iyi yöntemler
- AKS'de kapsayıcı görüntüsü yönetimi ve güvenliği için en iyi yöntemler
- AKS'de ağ bağlantısı ve güvenliği için en iyi yöntemler
- AKS'de depolama ve yedekleme için en iyi yöntemler
- Azure Front Door için en iyi yöntemler
- Özel AKS kümesi oluşturma
- Azure Front Door'da çıkış noktaları ve kaynak grupları
- Yönlendirme mimarisine genel bakış
- Azure Front Door Premium'da Özel Bağlantı ile kaynağınızın güvenliğini sağlama
- Trafik hızlandırma
- Azure Front Door faturalamayı anlama
- Azure Front Door'da kural kümesi nedir?
- Azure Front Door nedir?