Freigeben über


Überprüfen der Zugangssteuerungscontroller

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

Zugangssteuerungscontroller verursachen selten Probleme, doch es ist wichtig, ihre ordnungsgemäße Funktion sicherzustellen. In diesem Artikel wird erläutert, wie Zugangssteuerungscontroller andere Komponenten beeinträchtigen können, wenn sie nicht ordnungsgemäß funktionieren. Außerdem werden Befehle beschrieben, mit denen Sie die Leistung des Controllers überprüfen können.

Zugangssteuerungscontroller

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

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 Zugangssteuerungscontrollern besteht darin, Anforderungen für die Erstellung, Löschung und Änderung von Objekten zu regeln. Darüber hinaus können Zugangssteuerungscontroller benutzerdefinierte Verben einschränken, z. B. das Anfordern einer Verbindung mit einem Pod über einen API-Serverproxy. Die Zugangssteuerungscontroller können jedoch keine Anforderungen zum Lesen von Objekten 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 das Mutieren und Überprüfen von Webhooks in Ihren Kubernetes-Cluster integrieren, müssen Sie Hochverfügbarkeit sicherstellen. Fehlerhafte Knoten sollten keine API-Serveranforderungen blockieren. Es ist wichtig, die Pipeline für die Zugangssteuerung 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 Zugangssteuerungscontroller, die nicht ordnungsgemäß funktionieren, verschiedene Komponenten beeinträchtigen, z. B. Dienstgitter. 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 Zugangssteuerungscontroller ordnungsgemäß funktionieren, um den nahtlosen Betrieb eines Dienstgitters sicherzustellen.

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

Wenn Sie das Azure Policy-Add-On für AKS installieren, können Sie die folgenden kubectl-Befehle verwenden, um die Installation und Funktionalität von Azure- Azure Policy-Zugangssteuerungscontrollern 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 Namespace gatekeeper-system zu überprüfen. Wenn die Ausgabe nicht den Erwartungen entspricht, kann es auf ein Problem mit einem Zugangssteuerungscontroller, 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 erwarteten Ressourcen ohne Fehler oder fehlende Komponenten in der Ausgabe enthalten sind. Verwenden Sie die Befehle kubectl get pod und kubectl api-resources, um den Status des Azure Policy-Add-Ons für AKS zu überprüfen und die Funktionalität von Zugangssteuerungscontrollern in Ihrem Kubernetes-Cluster zu überprüfen. Überwachen Sie die Zugangssteuerungscontroller regelmäßig, um sicherzustellen, dass sie ordnungsgemäß funktionieren, damit Sie den allgemeine Integrität und Stabilität Ihres Clusters aufrecht erhalten können.

Verwenden Sie den folgenden kubectl get-Befehl aus, um zu überprüfen, ob die Richtlinienzuweisungen auf Ihren Cluster angewendet werden:

kubectl get constrainttemplates

Hinweis

Die Synchronisierung der Policy-Zuweisungen mit den einzelnen Clustern kann bis zu 20 Minuten dauern.

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 Überprüfen und Mutieren von Webhooks in Ihrem Kubernetes-Cluster wie erwartet funktioniert.

  1. Führen Sie den folgenden Befehl aus, um die überprüfenden 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 sicherzustellen, dass die überprüfenden Webhooks vorhanden sind und die gewünschte Konfigurationen aufweisen. Die Ausgabe enthält den Namen der einzelnen überprüfenden 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 werden und die gewünschten Konfigurationen aufweisen. 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 überprüfenden und mutierenden Webhooks im Kubernetes-Cluster vorhanden und wie gewünscht konfiguriert sind. Diese Überprüfung ist unerlässlich, um ein ordnungsgemäßes Funktionieren zu gewährleisten. Es ist auch wichtig, sicherzustellen, dass die Webhooks die Richtlinien zum Überprüfen und Ändern von Ressourcen im Cluster einhalten.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.