Aracılığıyla paylaş


Erişim denetleyicilerini doğrulama

Bu makale, bir serinin bir parçasıdır. Genel bakış ile başlayın.

Erişim denetleyicileri nadiren sorunlara neden olur, ancak düzgün işlevselliklerini sağlamak çok önemlidir. Bu makalede, erişim denetleyicilerinin düzgün çalışmadığında diğer bileşenleri nasıl etkileyebileceği açıklanır. Ayrıca, erişim denetleyicisi performansını doğrulamak için kullanabileceğiniz komutları da açıklar.

Erişim denetleyicisi

Erişim denetleyicisi, bir nesnenin kalıcılığından önce ancak isteğin kimliği doğrulandıktan ve yetkilendirildikten sonra Kubernetes API sunucusuna yönelik istekleri kesen bir kod parçasıdır.

Erişim denetleyicileri doğrulayıcı, sessize alma veya her ikisinin birleşimi olabilir. Denetleyicilerin sesini kapatmak , bir isteği kabul etmeden önce ilgili nesneleri değiştirebilir. Denetleyicilerin doğrulanması yalnızca isteklerin önceden tanımlanmış belirli ölçütleri karşıladığından emin olur.

Erişim denetleyicilerinin birincil işlevlerinden biri nesne oluşturma, silme ve değiştirme isteklerini düzenlemektir. Buna ek olarak, erişim denetleyicileri özel fiilleri kısıtlayabilir, örneğin API sunucusu ara sunucusu aracılığıyla bir podla bağlantı isteğinde bulunabilir. Ancak, erişim denetleyicileri , watchveya listgibi işlemler de getdahil olmak üzere nesneleri okuma isteklerini engelleyemez.

Bazı bileşenler, web kancalarını kapatma ve doğrulama gibi erişim denetleyicilerini etkileyebilir. Kubernetes kümenize web kancalarını sessize alıp doğrularken, yüksek kullanılabilirlik sağlamak zorunlu olur. İyi durumda olmayan düğümler API sunucusu isteklerini engellememelidir. API sunucusuna yönelik isteklerin engellenmemesi için erişim denetimi işlem hattını izlemek çok önemlidir. İyi durumda olmayan erişim denetleyicileri, web kancalarının sesini kapatmayı ve doğrulamayı etkileyebilir. İzlemeniz gereken web kancası tabanlı erişim denetleyicileri şunlardır:

  • Ağ Geçidi Denetleyicisi'ni genişleten Azure Kubernetes Service (AKS) kümeleri için Azure İlkesi eklentisi. Ağ Geçidi Denetleyicisi, Açık İlke Aracısı için bir erişim denetleyicisi web kancasıdır.

  • Kubernetes kümesinde dinamik erişim denetleyicisi olarak çalışan Kyverno. Kyverno, Kubernetes API sunucusundan erişim web kancası HTTP geri çağrılarını doğrulayıp sessize alır ve kabul ilkelerini zorlayan veya istekleri reddeden sonuçları döndürmek için eşleşen ilkeler uygular. Sorun giderme başvurusu (APIServer başarısız web kancası çağrıları gibi) için Kyverno sorun giderme belgelerine bakın.

Alternatif olarak, düzgün çalışmayan erişim denetleyicileri hizmet kafesleri gibi çeşitli bileşenleri etkileyebilir. Istio ve Linkerd gibi hizmet kafesleri, diğer işlevlerin yanı sıra bir pod içine sepet kapsayıcılarının eklenmesini otomatikleştirmek için erişim denetleyicilerini kullanır. Hizmet ağlarının sorunsuz çalışmasını sağlamak için erişim denetleyicilerinin düzgün çalıştığını değerlendirmek ve doğrulamak önemlidir.

AKS kümeleri için Azure İlkesi eklentisinin durumunu denetleyin

AKS için Azure İlkesi eklentisini yüklerseniz, kümenizdeki Azure İlkesi erişim denetleyicilerinin yüklemesini ve işlevselliğini doğrulamak için aşağıdaki kubectl komutlarını kullanabilirsiniz:

# Verify that Azure Policy pods are running.
kubectl get pod -n gatekeeper-system

# Sample output
...
NAME                                     READY   STATUS    RESTARTS   AGE
gatekeeper-audit-65844778cb-rkflg        1/1     Running   0          163m
gatekeeper-controller-78797d4687-4pf6w   1/1     Running   0          163m
gatekeeper-controller-78797d4687-splzh   1/1     Running   0          163m
...

Gatekeeper-system ad alanında Azure İlkesi aracı podlarının kullanılabilirliğini doğrulamak için önceki komutu çalıştırın. Çıktı beklediğiniz gibi değilse erişim denetleyicisi, API hizmeti veya özel kaynak tanımı (CRD) ile ilgili bir sorun olduğunu gösterebilir.

# Check that all API resources are working correctly. Use the following command to list all API resources.
kubectl api-resources

# Sample output
...
NAME                                     SHORTNAMES    APIGROUP                       NAMESPACED   KIND
bindings                                                                              true         Binding
componentstatuses                        cs                                           false        ComponentStatus
configmaps                               cm                                           true         ConfigMap
...

Önceki komut, tüm API kaynaklarının düzgün çalıştığını doğrulamanıza yardımcı olur. Çıkışın herhangi bir hata veya eksik bileşen olmadan beklenen kaynakları içerdiğinden emin olun. kubectl get pod AKS için Azure İlkesi eklentisinin durumunu denetlemek ve Kubernetes kümenizdeki erişim denetleyicilerinin işlevselliğini doğrulamak için ve kubectl api-resources komutlarını kullanın. Kümenizin genel durumunu ve kararlılığını koruyabilmeniz için erişim denetleyicilerinin düzgün çalıştığından emin olmak için düzenli olarak izleyin.

İlke atamalarının kümenize uygulandığını onaylamak için aşağıdaki kubectl get komutu kullanın:

kubectl get constrainttemplates

Not

İlke atamalarının her kümeyle eşitlenmesi 20 dakika kadar sürebilir.

Çıkışınız aşağıdaki örneğe benzer olmalıdır:

NAME                                     AGE
k8sazureallowedcapabilities              23m
k8sazureallowedusersgroups               23m
k8sazureblockhostnamespace               23m
k8sazurecontainerallowedimages           23m
k8sazurecontainerallowedports            23m
k8sazurecontainerlimits                  23m
k8sazurecontainernoprivilege             23m
k8sazurecontainernoprivilegeescalation   23m
k8sazureenforceapparmor                  23m
k8sazurehostfilesystem                   23m
k8sazurehostnetworkingports              23m
k8sazurereadonlyrootfilesystem           23m
k8sazureserviceallowedports              23m

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Web kancalarını doğrulama

Web kancalarını doğrulamanın ve sessize alma işleminin Kubernetes kümenizde beklendiği gibi çalıştığından emin olmak için aşağıdaki adımları izleyin.

  1. Kümedeki doğrulayıcı web kancalarını listelemek için aşağıdaki komutu çalıştırın:

    kubectl get ValidatingWebhookConfiguration -o wide
    

    Çıkışınız aşağıdaki örneğe benzer olmalıdır:

    NAME                         WEBHOOKS   AGE
    aks-node-validating-webhook   1          249d
    azure-policy-validating-webhook-configuration   1          249d
    gatekeeper-validating-webhook-configuration     1          249d
    

    Doğrulama web kancalarının mevcut olduğunu ve yapılandırmalarının beklendiği gibi olduğunu doğrulamak için çıktıyı gözden geçirin. Çıktı, her doğrulayıcı web kancasının adını, web kancalarının sayısını ve her web kancasının yaşını içerir.

  2. Kümedeki sessize alan web kancalarını listelemek için aşağıdaki komutu çalıştırın:

    kubectl get MutatingWebhookConfiguration -o wide
    

    Çıkışınız aşağıdaki örneğe benzer olmalıdır:

    NAME                         WEBHOOKS   AGE
    aks-node-mutating-webhook    1          249d
    azure-policy-mutating-webhook-configuration    1          249d
    gatekeeper-mutating-webhook-configuration      1          249d
    

    Mutating web kancalarının doğru listelenmiş olduğundan ve yapılandırmalarının istendiği gibi olduğundan emin olmak için çıktıyı denetleyin. Çıktı, her bir sessize alan web kancasının adını, web kancalarının sayısını ve her web kancasının yaşını içerir.

  3. Belirli bir erişim denetleyicisinin belirli ayrıntılarını almak için aşağıdaki komutu çalıştırın:

    kubectl get MutatingWebhookConfiguration <mutating-webhook-name> -o yaml
    

    değerini, ayrıntılarını almak istediğiniz sessize alan web kancasının adıyla değiştirin <mutating-webhook-name> . Bu komutun çıktısı, belirtilen mutating web kancası yapılandırmasının YAML gösterimini görüntüler.

Bu bölümdeki komutları çalıştırın ve Kubernetes kümesindeki doğrulayıcı ve sessize alınan web kancalarının beklendiği gibi mevcut ve yapılandırılmış olduğunu onaylayabilmeniz için çıktıyı gözden geçirin. Bu doğrulama, düzgün çalıştığından emin olmak için gereklidir. Web kancalarının kümedeki kaynakları doğrulama ve değiştirme ilkelerine bağlı kalmasını sağlamak için de önemlidir.

Katkıda Bulunanlar

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

Asıl yazarlar:

Diğer katkıda bulunanlar:

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