Kubernetes için Azure İlkesi'ni kullanarak AKS kaynak kotası ilkelerini yapılandırma

Tamamlandı

Azure İlkesi, standartları uygulamanıza ve bulut ortamınız için büyük ölçekte uyumluluk değerlendirmesi gerçekleştirmenize yardımcı olur. Çalışanların kuruluştaki şirket yazılımlarını, donanımlarını ve diğer kaynakları kullanmasına nasıl izin verilip verilmeyişlerini tanımlamak için şirketlerin iş kuralları uygulaması iyi bir uygulamadır. Bu nedenle işletmeler, erişimi zorunlu kılmak, gözden geçirmek ve tanımlamak için ilkeler kullanır. İlkeler, kuruluşların idare gereksinimlerine ve yasal gereksinimlere uygun hareket etmesini, en iyi yöntemleri ve kuruluş kurallarını uygulamasını sağlar.

Azure Kubernetes Service (AKS), buluta özel uygulamalarınızı ilkelerle verimli bir şekilde düzenlemenizi sağlar. Ekiplerin uygun maliyetli bir yaklaşım sağlamak için AKS'yi nasıl kullandığını yönetmek için iş kurallarını zorunlu kılmanız gerektiğinin farkındasınız. Bu fikri Azure tabanlı bulut kaynaklarınıza uygulamak için Azure İlkesi kullanmaya karar verirsiniz.

Kubernetes için Azure İlkesi nasıl kullanılacağını tartışmadan önce, Kubernetes'in içinden bu özelliği etkinleştiren birkaç kavramı daha anlamanız gerekir.

Kubernetes erişim denetleyicisi nedir?

Erişim denetleyicisi, istenen Kubernetes nesnesinin kalıcılığı sağlanmadan önce Kubernetes API'sine gönderilen kimliği doğrulanmış ve yetkilendirilmiş istekleri kesen bir Kubernetes eklentisidir. Örneğin yeni bir iş yükü dağıttığınızı ve dağıtımda belirli bellek gereksinimlerine sahip bir pod isteği olduğunu düşünün. Erişim denetleyicisi dağıtım isteğini keser ve kümede kalıcı hale getirmeden önce dağıtımı yetkilendirmesi gerekir.

Erişim denetleyicisini kümenin kullanım şeklini idare edip uygulayan bir yazılım olarak düşünebilirsiniz. Bu, Kubernetes nesnesi oluşturma, silme ve değiştirme isteklerini sınırlar.

Erişim denetleyicisi web kancası nedir?

Erişim denetleyicisi web kancası, erişim isteklerini alan ve bu isteklere göre işlem yapan bir HTTP geri çağırma işlevidir. Erişim denetleyicilerinin çalışma zamanında yapılandırılması gerekir. Bu denetleyiciler, derlenmiş giriş eklentiniz için veya web kancası olarak çalışan dağıtılmış bir uzantı için mevcuttur.

Erişim web kancalarının iki türü vardır: Doğrulama web kancası ve değiştiren web kancası. Önce değiştiren web kancası çağrılır ve bu tür, API sunucusuna gönderilen nesneleri değiştirip varsayılan değerleri uygulayabilir. Doğrulama web kancası, nesne değerlerini doğrular ve istekleri reddeder.

Open Policy Agent (OPA) nedir?

Open Policy Agent (OPA), yazar ilkeleri için üst düzey bildirim temelli bir dil sunan açık kaynaklı ve genel amaçlı bir ilke altyapısıdır. Bu ilkeler, sisteminizin nasıl davranması gerektiğini belirten kurallar tanımlamanızı sağlar.

OPA Gatekeeper nedir?

OPA Gatekeeper, OPA söz dizimini izleyen Özel Kaynak Tanımı (CRD) tabanlı ilkeleri zorunlu kılan açık kaynak, doğrulayan, Kubernetes erişim denetleyicisi web kancasıdır.

OPA Gatekeeper'ın amacı, hizmetler için sabit kodlanmış ilke kuralları yerine yapılandırma kullanarak erişim ilkelerini özelleştirmenize olanak sağlamaktır. Ayrıca ilkeyi ihlal eden kaynakları tanımlamanız için kümenizin tam kapsamlı bir görünümünü sunar.

Kurallarla kuruluş genelinde ilkeler tanımlamak için OPA Gatekeeper'ı kullanın:

  • Yapılandırılan tüm podlara CPU ve bellek sınırları gibi maksimum kaynak sınırlarının uygulanması.

  • Yalnızca onaylanan depolardaki görüntülerin dağıtılması.

  • Bir kümedeki tüm ad alanlarının etiketleri için adlandırma kuralı, her ad alanı için bir kişi noktası belirtmelidir.

  • Küme hizmetlerinin genel olarak benzersiz seçicilere sahip olması zorunlu kılın.

AKS için Azure İlkesi

Azure İlkesi, OPA Gatekeeper'ın (sürüm 3) kapsamını genişletir ve yerleşik ilkeler aracılığıyla AKS tümleştirmesi sunar. Bu ilkeler büyük ölçekte uygulanır ve kümenizi tek bir yerden ve tutarlı bir şekilde korur.

Şirketinizin geliştirme ekipleri, geliştirme süreçlerini iyileştirmek ve Kubernetes geliştirme iş akışlarını basitleştirmek için DevSpaces gibi geliştirme araçlarından faydalanmak istiyor. Ekip üyelerinin projeleri için belirli kaynak sınırlarına bağlı kaldıklarından emin olmak istiyorsunuz. Geliştirme ad alanlarındaki işlem kaynağı, depolama kaynağı ve nesne sayısını tanımlayan bir ilke oluşturmaya karar veriyorsunuz.

Kaynak sınırlarını ayarlamak için kaynak kotalarını ad alanı düzeyinde uygulayabilir ve kaynak kullanımını izleyerek ilke kotalarını ayarlayabilirsiniz. Bu strateji sayesinde geliştirme ekibinin kullandığı kaynakları ayırabilir ve sınırlayabilirsiniz.

AKS için Azure İlkesi Eklentisi'ni etkinleştirme

AKS için Azure İlkesi Eklentisi özelliğini kaydetmek için izlemeniz gereken birkaç adım vardır. Burada örnekler sağlayacağız, ancak sonraki ünitede adımları tamamlayacaksınız.

  1. az provider register komutunu kullanarak iki kaynak sağlayıcısı kaydedin:

    • Microsoft.ContainerService ve Microsoft.Policy Analizler: Bu kaynak sağlayıcıları, ilke olayları hakkındaki bilgileri sorgulama ve kapsayıcıları yönetme gibi eylemleri destekler. Bunlar, ilke düzeltmesini sorgulamaya, oluşturmaya, güncelleştirmeye veya silmeye yönelik eylemlerdir.

    Aşağıdaki örnekte iki kayıt komutu gösterilmiştir:

    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.PolicyInsights
    
  2. AKS-AzurePolicyAutoApprove özelliğini Microsoft. ContainerService kaynak sağlayıcısına kaydedin. Aşağıda komutun bir örneği verilmiştir:

    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
  3. Başarılı özellik kaydını onayladıktan sonra, yeni özellik kaydını yaymak için parametresiyle --namespace komutunu çalıştırınaz provider register. Aşağıda komutun bir örneği verilmiştir:

    az provider register -n Microsoft.ContainerService
    
  4. azure-policy eklentisini etkinleştirin:

    az aks enable-addons \
        --addons azure-policy \
        --name myAKSCluster \
        --resource-group myResourceGroup
    

    Eklentinin etkinleştirilmesi, iş yüklerini kümenizdeki iki ad alanında zamanlar. İlk ad alanı ve içeren azure-policy kube-system'dir.azure-policy-webhook İkinci ad alanı, öğesini içeren gatekeeper-system'dirgatekeeper-controller-manager. Bu iş yükleri, AKS kontrol düzlemine gönderilen istekleri değerlendirmeden sorumludur. Yapılandırılan ilkelerinize bağlı olarak, ilke web kancanız isteklere izin verebilir veya istekleri reddedebilir.

Yerleşik ilke tanımı atama

Azure ortamınızın ilkelerini yönetmek için Azure İlkesi uyumluluk panosunu kullanmanız gerekir. Pano, kaynak başına, ilke başına ayrıntı düzeyinde detaya gitmenizi sağlar. Bu pano, var olan kaynaklar için toplu düzeltme, yeni kaynaklar için de otomatik düzeltme eylemleriyle kaynaklarınızı uyumlu hale getirmenize yardımcı olur.

Her ilke için aşağıdaki genel bakış bilgileri listelenir:

Öğe Açıklama Örnek
Ad Politika adı. [Önizleme]: Kapsayıcı CPU ve bellek kaynak sınırlarının Kubernetes kümesinde belirtilen sınırları aşmadığından emin olun.
Scope Bu ilkenin uygulandığı abonelik kaynak grubu. mySubscription/rg-akscostsaving.
Uyumluluk durumu Atanan ilkelerin durumu. Uyumlu, Çakışan, Başlatılmadı veya Kaydedilmedi.
Kaynak uyumluluğu İlkeyle uyumlu kaynakların yüzdesi. Bu hesaplama yapılırken uyumlu, uyumsuz ve çakışan kaynaklar dikkate alınır. 100
Uyumlu olmayan kaynaklar Bir veya daha fazla ilke kuralını ihlal eden benzersiz kaynak sayısı. 3
Uyumlu olmayan ilkeler Uyumlu olmayan ilkelerin sayısı. 5

Buradan, tetiklenen olayların kaynak ve ilke başına ayrıntılarına gidebilirsiniz. Örneğin, reddedilen iş yükü dağıtımının ayrıntılarını inceleyebilirsiniz.

İlke atama

İlke atamak için, Azure İlkesi gezinti panelindeki Yazma bölümünün altındaki Atamalar seçeneğini belirleyin.

Azure ilkelerini iki yoldan biriyle atarsınız: girişim olarak adlandırılan bir ilke grubu veya tek bir ilke olarak.

Girişim ataması

Girişim ataması, belirli bir hedefe veya amaca yönelik olarak bir araya getirilmiş olan Azure ilkesi tanımlarından oluşur. Örneğin amacınız, kaynaklarınıza Ödeme Kartı Sektörü Veri Güvenliği Standartlarını uygulamak olabilir.

İlke ataması

İlke ataması tek bir ilke atar, örneğin: Kubernetes kümesinde ayrıcalıklı kapsayıcılara izin verme.

İlke atama adımları

Her ilke bir dizi yapılandırma adımı kullanılarak tanımlanır. Yakaladığınız bilgi miktarı, seçtiğiniz ilke türüne bağlıdır.

Örneğin geliştiriciler tarafından şirketin bulut ortamında gerçekleştirilen kaynak dağıtımını sınırlandırmak için yerleşik Azure Kubernetes Service Azure ilkelerinden birini atayabilirsiniz. Bu ilkenin adı şudur: Kapsayıcı CPU ve bellek kaynak sınırlarının Kubernetes kümesinde belirtilen sınırları aşmadığından emin ol.

Bu ilkede, dağıtım istekleri tarafından yapılacak kaynak istekleri için izin verilen sınırı ayarlamanız gerekir.

İlke atarken yapılandırılabilir seçeneklere göz atalım.

Temel ilke bilgileri

Birinci adımda yeni ilkeyi tanımlayan temel bilgileri seçmeniz ve girmeniz gerekir. Örneğin, bu bilgiler ilke ve kaynak kapsamı olabilir. Bu tabloda yapılandırabileceğiniz her öğe gösterilir:

Öğe Açıklama
Scope Kapsam, ilke atamasının hangi kaynaklara veya kaynak grubuna uygulandığını belirler. Bu değer, bir aboneliği veya yönetim grubunu temel alır. Kapsam düzeyinin bir düzey altındaki kaynakları seçiminizin dışında tutabilirsiniz.
İlke Tanımı Uygulamak istediğiniz ilke. Yerleşik ilke seçeneklerden birini kullanabilirsiniz.
Atama adı Atanan ilkeyi tanımlamak için kullanılan ad.
Açıklama İlkeyi açıklayan serbest metin biçiminde bir açıklama.
İlke uygulama Etkin ve Devre Dışı'nı seçebilirsiniz. Bu seçenek Devre Dışı olduğunda ilke uygulanmaz ve uyumlu olmayan istekler reddedilmez.
Atayan Varsayılan değeri kayıtlı kullanıcı olan serbest metin değeridir. Bu değeri değiştirebilirsiniz.

İlke parametreleri

Her ilke için geçerli olan iş kurallarını ayrıca yapılandırmanız gerekir. Tüm ilkeler aynı iş kurallarına sahip değildir ve bu nedenle her ilke için farklı parametreler geçerlidir.

Örneğin Kapsayıcı CPU ve bellek kaynak sınırlarının Kubernetes kümesinde belirtilen sınırları aşmadığından emin ol ilkesi için üç parametre ayarlamanız gerekir:

  • Kapsayıcı için izin verilen en yüksek CPU birimi
  • Kapsayıcı için izin verilen en fazla bellek bayt sayısı
  • İlkenin dışında tutulacak Kubernetes ad alanlarının listesi

Bu ilkeyi Web Uygulaması yalnızca HTTPS üzerinden erişilebilir olmalıdır ilkesiyle karşılaştırırsanız, ilkede yapılandırılması gereken özel parametre olmadığını görürsünüz.

Tüm ilkelerin bir Etki ayarı vardır. Bu ayar, ilke yürütmeyi etkinleştirir veya devre dışı bırakır. Parametrelerde olduğu gibi, ilkelerin de Etkileri farklı olabilir.

Örneğin, kaynak yönetimi ilkesi için Efekt değeri olarak denetim, reddetme veya devre dışı bırakma seçeneğini belirleyebilirsiniz. Web uygulaması ilkesi için yalnızca denetle veya devre dışı bırak değerini seçebilirsiniz.

Bu tabloda şu an için ilke tanımlarında desteklenen tüm etkiler listelenmiştir:

Etki Açıklama
Arkasına Ekle İstenen kaynağa daha fazla alan ekler
Denetle Etkinlik günlüğünde bir uyarı olayı oluşturur
AuditIfNotExists Koşulla eşleşen kaynakla ilgili kaynakların denetlenmeye olanak tanır
Reddet İlke tanımı aracılığıyla tanımlı standartlara uymayan bir kaynak isteğini engeller ve istek başarısız olur
DeployIfNotExists Koşul karşılandığında şablon dağıtımı yürütür
Devre dışı Test durumları için veya ilke tanımının etkiyi parametreleştirdiği ve tek bir atamayı devre dışı bırakmak istediğiniz durumlar için kullanışlıdır
Değiştir Oluşturma veya güncelleştirme sırasında bir kaynakta etiket ekler, güncelleştirir veya kaldırır

İlke düzeltme

Son adım, ilke düzeltme aşamasıdır. İlkeler atadığınızda, kaynakların zaten mevcut olması ve yeni ilkeyi ihlal etmiş olması mümkündür. Varsayılan olarak, yeni ilkeye yalnızca yeni oluşturulan kaynaklar uygulanır. Yeni bir ilke atadıktan sonra mevcut kaynakları denetlemek için düzeltmeyi kullanın. Düzeltme görevleri, uygulanan ilke türlerine bağlı olarak farklılık gösterebilir.

Sonraki alıştırmada maliyetleri daha da düşürmek için Kapsayıcı CPU ve bellek kaynak sınırlarının Kubernetes kümesinde belirtilen sınırları aşmadığından emin olun ilkesini kullanacaksınız.