Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Kubernetes Service (AKS) ist einer der Computedienste, die von Service Connector unterstützt werden.
In diesem Artikel wird Folgendes behandelt:
- Die Unterschiede zwischen Service Connector für AKS und anderen Rechendiensten.
- Die Vorgänge, die während der Erstellung einer Dienstverbindung auf dem Cluster ausgeführt werden.
- Die Vorgänge, die während der Erstellung einer Dienstverbindung für die Zieldienste ausgeführt werden.
- Verwenden der Kubernetes-Ressourcen, die von Service Connector erstellt wurden.
- Problembehandlung und Anzeigen von Dienstconnector-Protokollen in einem AKS-Cluster.
Voraussetzungen
- In diesem Leitfaden wird davon ausgegangen, dass Sie bereits die grundlegenden Konzepte von Service Connector kennen.
Unterschiede zwischen Dienstconnector für AKS und anderen Computediensten
Service Connector für AKS unterscheidet sich von der Funktionsweise mit anderen Computediensten, die von Service Connector auf verschiedene Arten unterstützt werden. Im Folgenden werden AKS-spezifische Optionen und Verhaltensweisen für jeden API-Vorgang beschrieben.
Kreation
Die AKS-spezifischen Erstellungsoptionen sind unten aufgeführt. Informationen zum Erstellen einer neuen Verbindung in AKS finden Sie in den Schnellstarts im Azure-Portal oder in der Azure CLI.
- Service Connector für AKS erfordert den
Kubernetes namespaceParameter, um anzugeben, wo die Kubernetes-Ressourcen erstellt werden sollen. Standardmäßig wird derdefaultNamespace verwendet. - Service Connector für AKS unterstützt
Workload Identityals die sichere Authentifizierungsoption für Anmeldeinformationen, während andere Compute-DiensteSystem Managed IdentityundUser Managed IdentityOptionen anbieten. - Bei Verwendung von Azure Key Vault als Zieldienst mit aktiviertem Secret Store CSI-Treiber verwendet Service Connector die vom Benutzer zugewiesene verwaltete Identität aus dem AKS
azure-keyvault-secrets-provider-Add-On für die Authentifizierung, ohne dass Benutzer den Authentifizierungstyp angeben müssen. - Service Connector für AKS unterstützt nur die Option
Firewall RulesNetworking, während andere Computedienste auchPrivate LinkundVirtual NetworkOptionen unterstützen können.
Konfigurationen auflisten
Der Dienstconnector für AKS zeigt nur Konfigurationen ohne Anmeldeinformationen in den Listenkonfigurationsansichten an. Benutzer sollten die Anmeldeinformationen bei Bedarf manuell in der zugehörigen Kubernetes-Ressource überprüfen.
Mit dem befehl Azure CLI az aks connection list-configuration ist der Wert einer Anmeldeinformationskonfiguration eine leere Zeichenfolge. Im Azure-Portal ist der Wert einer Anmeldeinformationskonfiguration ausgeblendet, wie unten dargestellt.
Validierung
Der Service Connector für AKS überprüft keine Konfigurationswertänderungen, die im Cluster des Benutzers vorgenommen wurden, unabhängig davon, ob es sich um Anmeldeinformationen oder nicht um Anmeldeinformationen handelt. Der Dienstconnector führt jedoch die folgenden Überprüfungen aus, wie bei anderen Computediensten:
- Überprüfen des Vorhandenseins des Zieldiensts
- Überprüfen von IP-Firewallregeln für den Zugriff auf den Zieldienst
- Sicherstellen der Rollenzuweisung für die Workloadidentität für den Zugriff auf den Zieldienst
Die Ausgabe des Azure CLI Befehls az aks connection validate ist immer success. Das gleiche gilt für das Azure-Portal, wie unten dargestellt.
Vorgänge, die vom Dienstconnector im AKS-Cluster ausgeführt werden
Die vom Service Connector im AKS-Cluster ausgeführten Vorgänge variieren je nach den Zieldiensten und Authentifizierungstypen, die beim Erstellen einer Dienstverbindung ausgewählt wurden. Im Folgenden sind die Vorgänge aufgeführt, die vom Dienstconnector ausgeführt werden können.
Hinzufügen der Kubernetes-Erweiterung „Dienstconnector“
Beim ersten Erstellen einer Dienstverbindung wird dem Cluster eine Kubernetes-Erweiterung sc-extension hinzugefügt. Später hilft die Erweiterung beim Erstellen von Kubernetes-Ressourcen im Cluster des Benutzers, wenn eine Dienstverbindungsanforderung an Service Connector kommt. Die Erweiterung befindet sich im AKS-Cluster des Benutzers im Azure-Portal im Menü Extensions + applications.
Die Metadaten der Clusterverbindung werden auch in der Erweiterung gespeichert. Durch das Deinstallieren der Erweiterung werden alle Verbindungen im Cluster unbrauchbar. Der Erweiterungsoperator wird im Clusternamespace sc-systemgehostet.
Erstellen von Kubernetes-Ressourcen
Service Connector erstellt Kubernetes-Ressourcen im Namespace, den der Benutzer beim Erstellen der Dienstverbindung angibt. Die Kubernetes-Ressourcen speichern die Verbindungsinformationen, die von den Workloaddefinitionen des Benutzers oder dem Anwendungscode benötigt werden, um mit den Zieldiensten zu kommunizieren. Je nach Authentifizierungstyp werden unterschiedliche Kubernetes-Ressourcen erstellt. Für die Connection String und Service Principal Authentifizierungsarten wird ein Kubernetes Secret erstellt. Für den Workload Identity Authentifizierungstyp wird zusätzlich zu einem Kubernetes-Geheimnis auch ein Kubernetes-Dienstkonto erstellt.
Sie finden die Kubernetes-Ressourcen, die von Service Connector für jede Dienstverbindung im Azure Portal in Ihrer Kubernetes-Ressource erstellt wurden, im Menü "Service Connector".
```
```
Durch das Löschen einer Dienstverbindung wird die zugeordnete Kubernetes-Ressource nicht gelöscht. Entfernen Sie ihre Ressource bei Bedarf manuell, z. B. mit dem kubectl delete Befehl.
Aktivieren des azureKeyvaultSecretsProvider Add-Ons
Wenn der Zieldienst Azure Key Vault und der CSI-Treiber für den geheimen Speicher aktiviert ist, aktiviert Service Connector das azureKeyvaultSecretsProvider-Add-On für den Cluster.
Folgen Sie der Anleitung zum Verbinden mit Azure Key Vault mit dem CSI-Treiber, um eine Verbindung zu Azure Key Vault unter Verwendung des Secret Store CSI-Treibers herzustellen.
Aktivieren der Workloadidentität und des OIDC-Ausstellers (OpenID Connect)
Wenn der Authentifizierungstyp lautet Workload Identity, aktiviert Service Connector die Workloadidentität und den OIDC-Aussteller für den Cluster.
Wenn der Authentifizierungstyp lautet Workload Identity, wird eine vom Benutzer zugewiesene verwaltete Identität benötigt, um die Verbundidentitätsanmeldeinformationen zu erstellen. Erfahren Sie mehr über Workload-Identitäten oder lesen Sie das folgende Lernprogramm, um eine Verbindung mit Azure Storage mithilfe einer Workloadidentität einzurichten.
Vorgänge, die vom Service Connector für die Zieldienste ausgeführt werden
Der Dienstconnector für AKS führt dieselben Vorgänge für Zieldienste wie andere Computedienste aus. Die Vorgänge variieren jedoch je nach Zieldiensttypen und Authentifizierungsmethoden. Im Folgenden werden einige mögliche Vorgänge aufgelistet.
Abrufen von Verbindungskonfigurationen
Service Connector ruft die erforderlichen Verbindungskonfigurationen vom Zieldienst ab und legt sie als Kubernetes-Geheimnis im Cluster des Benutzers fest. Die Verbindungskonfigurationen variieren je nach Zieldiensttyp und Authentifizierungsmethode:
- Für den Authentifizierungstyp
Connection Stringenthält die Konfiguration in der Regel einen geheimen Dienstschlüssel oder connection string. - Für den
Workload Identity-Authentifizierungstyp ist in der Regel der Dienstendpunkt enthalten. - Für den
Service Principal-Authentifizierungstyp sind die Mandanten-ID, die Client-ID und der geheime Clientschlüssel des Dienstprinzipals enthalten.
Ausführliche Informationen zu bestimmten Zieldiensten finden Sie in der entsprechenden Dokumentation, z. B. im Handbuch für Foundry Tools .
Erstellen von IP-basierten Firewallregeln
Service Connector ruft die ausgehende öffentliche IP aus dem AKS-Cluster ab und erstellt IP-Firewallregeln für den Zieldienst, um den Netzwerkzugriff vom Cluster zu ermöglichen.
Erstellen von Microsoft Entra ID-Rollenzuweisungen
Bei Verwendung des Authentifizierungstyps Workload Identity erstellt Service Connector automatisch eine Rollenzuweisung für die Identität. Die zugewiesene Rolle variiert je nach Zieldienst, um einen angemessenen Zugriff sicherzustellen.
Benutzer können Rollenzuweisungen auch nach Bedarf anpassen. Weitere Informationen finden Sie unter Rollenanpassung.
Verwenden der vom Dienstconnector erstellten Kubernetes-Ressourcen
Service Connector erstellt verschiedene Kubernetes-Ressourcen je nach ausgewähltem Zieldiensttyp und Authentifizierungstyp. In den folgenden Abschnitten wird gezeigt, wie Sie die vom Dienstconnector erstellten Kubernetes-Ressourcen in Ihrer Clusterworkloaddefinition und in Ihrem Anwendungscode verwenden.
Kubernetes-Geheimnis
Ein Kubernetes-Geheimnis wird erstellt, wenn der Authentifizierungstyp entweder Connection String oder Service Principal. Ihre Clusterworkloaddefinition kann direkt auf das Geheimnis verweisen. Der folgende Codeschnipsel zeigt ein Beispiel.
apiVersion: batch/v1
kind: Job
metadata:
namespace: default
name: sc-sample-job
spec:
template:
spec:
containers:
- name: raw-linux
image: alpine
command: ['printenv']
envFrom:
- secretRef:
name: <SecretCreatedByServiceConnector>
restartPolicy: OnFailure
Anschließend kann Ihr Anwendungscode die Verbindungszeichenfolge im Geheimnis auf Grundlage einer Umgebungsvariablen verwenden. Überprüfen Sie den folgenden Beispielcode , um mehr über die Namen der Umgebungsvariablen und deren Verwendung in Ihrem Anwendungscode zur Authentifizierung bei verschiedenen Zieldiensten zu erfahren.
Kubernetes-Dienstkonto
Ein Kubernetes-Dienstkonto und ein Secret werden erstellt, wenn der Authentifizierungstyp auf Workload Identity gesetzt ist. Ihre Clusterworkloaddefinition kann auf das Dienstkonto und den geheimen Schlüssel verweisen, um sich über die Workloadidentität zu authentifizieren. Der folgende Codeschnipsel zeigt ein Beispiel.
apiVersion: batch/v1
kind: Job
metadata:
namespace: default
name: sc-sample-job
labels:
azure.workload.identity/use: "true"
spec:
template:
spec:
serviceAccountName: <ServiceAccountCreatedByServiceConnector>
containers:
- name: raw-linux
image: alpine
command: ['printenv']
envFrom:
- secretRef:
name: <SecretCreatedByServiceConnector>
restartPolicy: OnFailure
Schauen Sie sich das folgende Tutorial an, um zu lernen, wie man eine Verbindung zu Azure Storage mit Workload-Identität herstellt.
Problembehandlung und Anzeigen von Protokollen
Wenn beim Erstellen einer Dienstverbindung ein Fehler auftritt, der auch durch Wiederholen des Vorgangs nicht behoben werden kann, erhalten Sie mithilfe der folgenden Methoden weitere Informationen zur Problembehandlung.
Überprüfen der Kubernetes-Erweiterung „Dienstconnector“
Die Service Connector Kubernetes-Erweiterung basiert auf Azure Arc-fähigen Kubernetes-Clustererweiterungen. Verwenden Sie die folgenden Befehle, um nach Fehlern zu suchen, die während der Erweiterungsinstallation oder des Aktualisierungsprozesses auftreten.
Installieren Sie die Erweiterung
k8s-extensionAzure CLI.az extension add --name k8s-extensionRufen Sie den Status der Erweiterung „Dienstconnector“ ab. Überprüfen Sie die
statuses-Eigenschaft in der Befehlsausgabe, um Fehler zu identifizieren.az k8s-extension show \ --resource-group MyClusterResourceGroup \ --cluster-name MyCluster \ --cluster-type managedClusters \ --name sc-extension
Überprüfen der Kubernetes-Clusterprotokolle
Wenn während der Erweiterungsinstallation ein Fehler auftritt und die Fehlermeldung in der statuses Eigenschaft keine ausreichenden Informationen bereitstellt, können Sie die Kubernetes-Protokolle mit den folgenden Schritten weiter untersuchen.
Stellen Sie eine Verbindung mit Ihrem AKS-Cluster her.
az aks get-credentials \ --resource-group MyClusterResourceGroup \ --name MyClusterDie Erweiterung „Dienstconnector“ wird im
sc-system-Namespace mithilfe eines Helm-Charts installiert. Überprüfen Sie den Namespace und das Helm-Release mithilfe der folgenden Befehle.Überprüfen Sie, ob der Namespace vorhanden ist.
kubectl get nsÜberprüfen Sie den Helm-Releasestatus.
helm list -n sc-system
Während der Erweiterungsinstallation oder -aktualisierung erstellt ein Kubernetes-Auftrag
sc-jobnamens Kubernetes die Kubernetes-Ressourcen für die Dienstverbindung. Der Erweiterungsfehler wird in der Regel durch einen Fehler bei der Auftragsausführung verursacht. Überprüfen Sie den Auftragsstatus, indem Sie die folgenden Befehle ausführen. Wennsc-jobnicht imsc-system-Namespace existiert, sollte es erfolgreich ausgeführt worden sein. Dieser Auftrag ist so konzipiert, dass er nach erfolgreicher Ausführung automatisch gelöscht wird.Überprüfen Sie, ob der Auftrag vorhanden ist.
kubectl get job -n sc-systemRufen Sie den Auftragsstatus ab.
kubectl describe job/sc-job -n sc-systemZeigen Sie die Auftragsprotokolle an.
kubectl logs job/sc-job -n sc-system
Häufige Fehler und Behebung
Fehler beim Erstellen der Erweiterung
Fehlermeldung:
-
Unable to get a response from the agent in time. Extension pods can't be scheduled if all the node pools in the cluster are "CriticalAddonsOnly" tainted
Risikominderung:
Verweisen auf Fehler bei der Erstellung von Erweiterungen
Helm-Fehler
Fehlermeldungen:
Unable to download the Helm chart from the repo URL
Dieser Fehler wird durch Konnektivitätsprobleme verursacht, die sowohl durch Blockierungen beim Egress als auch zwischen dem Cluster und der Firewall entstehen.
Informationen zum Beheben dieses Problems finden Sie unter Outbound Network and FQDN rules for Azure Kubernetes Service (AKS) clusters, und fügen Sie den erforderlichen FQDN hinzu, um das Service Connector Helm-Chart abzurufen: mcr.microsoft.com
Fehlermeldungen:
Timed out waiting for resource readinessHelm chart rendering failed with given valuesResource already exists in your clusterOperation is already in progress for Helm
Risikominderung:
Siehe Helmfehler
Konflikt:
Fehlermeldung:
Operation returned an invalid status code: Conflict.
Grund:
Dieser Fehler tritt in der Regel auf, wenn versucht wird, eine Dienstverbindung zu erstellen, während sich der Azure Kubernetes Service (AKS) Cluster in einem Aktualisierungszustand befindet. Das Dienstverbindungsupdate verursacht einen Konflikt mit dem ausgeführten Update. Dieser Fehler tritt auch auf, wenn Ihr Abonnement nicht beim Microsoft.KubernetesConfiguration Ressourcenanbieter registriert ist.
Risikominderung:
Vergewissern Sie sich, dass Ihr Cluster den Status „Erfolgreich“ hat, und wiederholen Sie die Erstellung.
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihr Abonnement beim
Microsoft.KubernetesConfigurationRessourcenanbieter registriert ist.az provider register -n Microsoft.KubernetesConfiguration
Nicht autorisierter Ressourcenzugriff
Fehlermeldung:
You do not have permission to perform ... If access was recently granted, please refresh your credentials.
Grund:
Service Connector erfordert Berechtigungen zum Ausführen der Azure Ressourcen, mit denen Sie eine Verbindung herstellen möchten, um Verbindungsvorgänge in Ihrem Auftrag auszuführen. Dieser Fehler weist auf einen Mangel an erforderlichen Berechtigungen für einige Azure Ressourcen hin.
Risikominderung:
Überprüfen Sie die Berechtigungen für die in der Fehlermeldung angegebenen Azure Ressourcen. Richten Sie die erforderlichen Berechtigungen ein, und wiederholen Sie die Erstellung.
Fehlende Abonnementregistrierung
Fehlermeldung:
The subscription is not registered to use namespace 'Microsoft.KubernetesConfiguration'
Grund:
Service Connector erfordert, dass das Abonnement bei Microsoft.KubernetesConfiguration registriert wird, bei dem es sich um den Ressourcenanbieter für Azure Arc-fähige Kubernetes-Clustererweiterungen handelt.
Risikominderung:
Registrieren Sie den Microsoft.KubernetesConfiguration Ressourcenanbieter, indem Sie den folgenden Befehl ausführen. Weitere Informationen zu Registrierungsfehlern des Ressourcenanbieters finden Sie unter Beheben von Fehlern für die Registrierung von Ressourcenanbietern.
az provider register -n Microsoft.KubernetesConfiguration
Nächster Schritt
Erfahren Sie mehr über die Integration verschiedener Zieldienste sowie deren Konfigurationseinstellungen und Authentifizierungsmethoden.