Freigeben über


Überprüfen der Zugangssteuerungscontroller

Dieser Artikel ist Teil einer Serie. Beginnen Sie mit der Übersicht.

Admission Controller verursachen selten Probleme, aber es ist wichtig, ihre ordnungsgemäße Funktion sicherzustellen. In diesem Artikel wird erläutert, wie sich Steuerungscontroller auf andere Komponenten auswirken können, wenn sie nicht ordnungsgemäß funktionieren. Außerdem werden Befehle beschrieben, mit denen Sie die Leistung des Admission Controllers validieren können.

Zugriffskontroller

Ein Admission Controller ist ein Codeabschnitt, der Anforderungen an einen Kubernetes-API-Server abfängt, nachdem eine Anforderung authentifiziert und autorisiert wurde, aber bevor ein Objekt persistent gespeichert wird.

Zugangssteuerungscontroller können überprüfen, mutieren oder eine Kombination von beidem tun. Mutieren-Controller können verwandte Objekte ändern, bevor eine Anforderung zugelassen wird. Überprüfen-Controller stellen nur sicher, dass Anforderungen bestimmte vordefinierte Kriterien erfüllen.

Eine der Hauptfunktionen von Zugriffskontrollsystemen besteht darin, Anforderungen für die Erstellung, Löschung und Bearbeitung von Objekten zu regeln. Darüber hinaus können Admission Controller benutzerdefinierte Verben einschränken, wie zum Beispiel das Anfordern einer Verbindung zu einem Pod über einen API-Server-Proxy. Zulassungskontroller können jedoch Anfragen zum Lesen von Objekten nicht blockieren, einschließlich Vorgängen wie get, watch oder list.

Einige Komponenten können sich auf Zugangssteuerungscontroller auswirken, z. B. mutierende und überprüfende Webhooks. Wenn Sie Mutating und Validieren von Webhooks in Ihren Kubernetes-Cluster integrieren, müssen Sie eine hohe Verfügbarkeit sicherstellen. Fehlerhafte Knoten sollten keine API-Serveranforderungen blockieren. Es ist wichtig, die Pipeline für die Zulassungskontrolle zu überwachen, damit Anforderungen an den API-Server nicht blockiert werden. Fehlerhafte Zugangssteuerungscontroller können das Mutieren und Überprüfen von Webhooks beeinträchtigen. Zu Webhook-basierten Zugangssteuerungscontroller, die Sie überwachen sollten, zählen:

Alternativ können Zulassungskontrollen, die nicht ordnungsgemäß funktionieren, verschiedene Komponenten betreffen, wie zum Beispiel Service-Meshes. Servicegitter wie Istio und Linkerdverwenden Zugangssteuerungscontroller, um die Injektion von Sidecarcontainern in einem Pod zu automatisieren. Es ist wichtig zu bewerten und zu überprüfen, ob die Admission Controller ordnungsgemäß funktionieren, um einen nahtlosen Betrieb der Service-Mesh sicherzustellen.

Überprüfen des Status des Azure-Richtlinien-Add-Ons für AKS-Cluster

Wenn Sie das Azure-Richtlinien-Add-On für AKS installieren, können Sie die folgenden `kubectl`-Befehle verwenden, um die Installation und Funktionalität der Azure Policy Admission Controller in Ihrem Cluster zu überprüfen:

# 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
...

Führen Sie den vorherigen Befehl aus, um die Verfügbarkeit von Azure Policy Agent-Pods im Gatekeeper-Systemnamespace zu überprüfen. Wenn die Ausgabe nicht den Erwartungen entspricht, kann es auf ein Problem mit einem Admission Controller, API-Dienst oder einer benutzerdefinierten Ressourcendefinition (CRD) hinweisen.

# 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
...

Mit dem vorherigen Befehl können Sie überprüfen, ob alle API-Ressourcen ordnungsgemäß funktionieren. Stellen Sie sicher, dass die Ausgabe die erwarteten Ressourcen ohne Fehler oder fehlende Komponenten enthält. Verwenden Sie die Befehle kubectl get pod und kubectl api-resources, um den Status des Azure-Richtlinien-Add-Ons für AKS zu überprüfen und die Funktionalität von Zulassungskontrollern in Ihrem Kubernetes-Cluster zu validieren. Überwachen Sie regelmäßig die Admission Controller, um sicherzustellen, dass sie ordnungsgemäß funktionieren, sodass Sie den Gesamtzustand und die Stabilität Ihres Clusters aufrechterhalten können.

Verwenden Sie den folgenden kubectl get Befehl, um zu bestätigen, dass Richtlinienzuweisungen auf Ihren Cluster angewendet werden:

kubectl get constrainttemplates

Hinweis

Richtlinienzuweisungen können bis zu 20 Minuten dauern, bis sie mit jedem Cluster synchronisiert werden.

Die Ausgabe sollte ungefähr wie im folgenden Beispiel aussehen:

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

Weitere Informationen finden Sie in den folgenden Ressourcen:

Überprüfen von Webhooks

Führen Sie die folgenden Schritte aus, um sicherzustellen, dass das Validieren und Ändern von Webhooks wie vorgesehen in Ihrem Kubernetes-Cluster funktioniert.

  1. Führen Sie den folgenden Befehl aus, um die validierenden Webhooks im Cluster aufzulisten:

    kubectl get ValidatingWebhookConfiguration -o wide
    

    Die Ausgabe sollte ungefähr wie im folgenden Beispiel aussehen:

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

    Überprüfen Sie die Ausgabe, um zu überprüfen, ob die überprüfenden Webhooks vorhanden sind und ihre Konfigurationen wie erwartet sind. Die Ausgabe enthält den Namen jedes validierenden Webhooks, die Anzahl der Webhooks und das Alter jedes Webhooks.

  2. Führen Sie den folgenden Befehl aus, um die mutierenden Webhooks im Cluster aufzulisten:

    kubectl get MutatingWebhookConfiguration -o wide
    

    Die Ausgabe sollte ungefähr wie im folgenden Beispiel aussehen:

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

    Überprüfen Sie die Ausgabe, um sicherzustellen, dass die mutierenden Webhooks korrekt aufgeführt sind und ihre Konfigurationen wie gewünscht sind. Die Ausgabe enthält den Namen der einzelnen mutierenden Webhooks, die Anzahl der Webhooks und das Alter jedes Webhooks.

  3. Führen Sie den folgenden Befehl aus, um bestimmte Details für einen bestimmten Zugangssteuerungscontroller abzurufen:

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

    Ersetzen Sie <mutating-webhook-name> durch den Namen des mutierenden Webhooks, für den Sie Details abrufen möchten. Die Ausgabe dieses Befehls zeigt die YAML-Darstellung der Konfiguration des angegebenen mutierenden Webhooks an.

Führen Sie die Befehle in diesem Abschnitt aus, und überprüfen Sie die Ausgabe, damit Sie bestätigen können, dass die validierenden und mutierenden Webhooks im Kubernetes-Cluster vorhanden und wie erwartet konfiguriert sind. Diese Überprüfung ist unerlässlich, um ein ordnungsgemäßes Funktionieren zu gewährleisten. Es ist auch wichtig, sicherzustellen, dass die Webhooks Richtlinien zum Überprüfen und Ändern von Ressourcen im Cluster einhalten.

Beitragende

Dieser Artikel wird von Microsoft verwaltet. Sie wurde ursprünglich von den folgenden Mitwirkenden verfasst.

Hauptautoren:

Andere Mitwirkende:

Um nicht öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.