Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Kubernetes Service (AKS) is een van de rekenservices die worden ondersteund door Service Connector.
In dit artikel wordt het volgende behandeld:
- De verschillen tussen Service Connector voor AKS en andere rekenservices.
- De bewerkingen die worden uitgevoerd op het cluster tijdens het maken van een serviceverbinding.
- De bewerkingen die worden uitgevoerd op de doelservices tijdens het maken van een serviceverbinding.
- Gebruik de Kubernetes-resources die zijn gemaakt door Service Connector.
- Problemen met serviceconnectorlogboeken in een AKS-cluster oplossen en weergeven.
Vereiste voorwaarden
- In deze handleiding wordt ervan uitgegaan dat u de basisconcepten van Service Connector al kent.
Verschillen tussen serviceconnector voor AKS en andere rekenservices
Serviceconnector voor AKS verschilt op verschillende manieren qua werking met andere rekenservices die door Service Connector worden ondersteund. Hieronder vindt u een overzicht van AKS-specifieke opties en gedragingen voor elke API-bewerking.
Creatie
Hieronder vindt u de AKS-specifieke aanmaakopties. Raadpleeg de quickstarts van Azure Portal of Azure CLI voor meer informatie over het maken van een nieuwe verbinding in AKS.
- Serviceconnector voor AKS vereist de
Kubernetes namespace
parameter om op te geven waar de Kubernetes-resources moeten worden gemaakt. Standaard wordt dedefault
naamruimte gebruikt. - Serviceconnector voor AKS ondersteunt
Workload Identity
als de optie voor verificatie van beveiligde referenties, terwijl andere compute servicesSystem Managed Identity
enUser Managed Identity
als opties bieden. - Wanneer u Azure Key Vault gebruikt als doelservice waarvoor het CSI-stuurprogramma secret store is ingeschakeld, gebruikt Service Connector de door de gebruiker toegewezen beheerde identiteit van de AKS-invoegtoepassing
azure-keyvault-secrets-provider
voor verificatie, zonder dat gebruikers het verificatietype hoeven op te geven. - Service Connector voor AKS ondersteunt alleen de
Firewall Rules
netwerkoptie, terwijl andere rekenservices ook dePrivate Link
enVirtual Network
opties kunnen ondersteunen.
Configuraties weergeven
Serviceconnector voor AKS geeft alleen niet-referentieconfiguraties weer in de lijstconfiguratieweergaven. Gebruikers moeten de referenties in de bijbehorende Kubernetes-resource indien nodig handmatig controleren.
Met de Azure CLI-opdracht az aks connection list-configuration is de waarde van een referentieconfiguratie een lege tekenreeks. In Azure Portal is de waarde van een referentieconfiguratie verborgen, zoals hieronder wordt weergegeven.
Validatie
Service Connector voor AKS valideert geen wijzigingen in configuratiewaarden die zijn aangebracht in het cluster van de gebruiker, ongeacht of het om referentie- of niet-referentieconfiguraties gaat. Service Connector voert echter de volgende validaties uit, net als voor andere rekenservices:
- Het bestaan van de doelservice controleren
- IP-firewallregels controleren voor toegang tot de doelservice
- Zorg ervoor dat roltoewijzing voor workload-identiteit toegang heeft tot de doelservice
De uitvoer van de Azure CLI-opdracht az aks connection validate is altijd success
. Hetzelfde geldt voor Azure Portal, zoals hieronder wordt weergegeven.
Bewerkingen uitgevoerd door Service Connector op het AKS-cluster
De bewerkingen die door Service Connector op het AKS-cluster worden uitgevoerd, variëren afhankelijk van de doelservices en verificatietypen die zijn geselecteerd bij het maken van een serviceverbinding. Hieronder ziet u de mogelijke bewerkingen die door serviceconnector worden uitgevoerd.
De Kubernetes-extensie serviceconnector toevoegen
Een Kubernetes-extensie met de naam sc-extension
wordt toegevoegd aan het cluster wanneer er voor het eerst een serviceverbinding wordt gemaakt. Later helpt de extensie bij het maken van Kubernetes-resources in het cluster van de gebruiker, wanneer er een serviceverbindingsaanvraag wordt verzonden naar serviceconnector. De extensie vindt u in het AKS-cluster van de gebruiker in Azure Portal, in het menu Extensies en toepassingen .
De metagegevens van de clusterverbinding worden ook opgeslagen in de extensie. Als u de extensie verwijdert, worden alle verbindingen in het cluster niet beschikbaar. De extensieoperator wordt gehost in de clusternaamruimte sc-system
.
De Kubernetes-resources maken
ServiceConnector maakt Kubernetes-resources in de naamruimte die de gebruiker opgeeft bij het maken van de serviceverbinding. De Kubernetes-resources slaan de verbindingsgegevens op die nodig zijn voor de workloaddefinities of toepassingscode van de gebruiker om te communiceren met de doelservices. Afhankelijk van het verificatietype worden verschillende Kubernetes-resources gemaakt. Voor de auth-typen Connection String
en Service Principal
wordt een Kubernetes-geheim gemaakt. Voor het Workload Identity
verificatietype wordt naast een Kubernetes-geheim ook een Kubernetes-serviceaccount gemaakt.
U vindt de Kubernetes-resources die door Service Connector zijn gemaakt voor elke serviceverbinding in Azure Portal in uw Kubernetes-resource in het menu Serviceconnector.
Als u een serviceverbinding verwijdert, wordt de bijbehorende Kubernetes-resource niet verwijderd. Verwijder indien nodig de resource handmatig met behulp van bijvoorbeeld de kubectl delete
opdracht.
Het azureKeyvaultSecretsProvider
invoegtoepassing inschakelen
Als de doelservice Azure Key Vault is en de Secret Store CSI-driver is ingeschakeld, schakelt Service Connector de azureKeyvaultSecretsProvider
invoegtoepassing voor het cluster in.
Volg de zelfstudie verbinding maken met Azure Key Vault met behulp van CSI-stuurprogramma om een verbinding met Azure Key Vault in te stellen met behulp van het CSI-stuurprogramma secret store.
Workloadidentiteit en OIDC-verlener (OpenID Connect) inschakelen
Als het verificatietype Workload Identity
is, schakelt Service Connector workload-identiteit en OIDC-uitgever voor het cluster in.
Als het verificatietype is Workload Identity
, is een door de gebruiker toegewezen beheerde identiteit nodig om de federatieve identiteitsreferentie te maken. Meer informatie over workload-identiteiten of raadpleeg de zelfstudie om een verbinding met Azure Storage in te stellen met behulp van een workload-identiteit.
Bewerkingen uitgevoerd door serviceconnector op de doelservices
ServiceConnector voor AKS voert dezelfde bewerkingen uit op doelservices als andere rekenservices. De bewerkingen variëren echter, afhankelijk van de typen doelservices en verificatiemethoden. Hieronder vindt u enkele mogelijke bewerkingen.
Verbindingsconfiguraties ophalen
ServiceConnector haalt de vereiste verbindingsconfiguraties op uit de doelservice en stelt deze in als een Kubernetes-geheim in het cluster van de gebruiker. De verbindingsconfiguraties variëren op basis van het doelservicetype en de verificatiemethode:
- Voor het
Connection String
verificatietype bevat de configuratie doorgaans een servicegeheim of verbindingsreeks. - Voor het
Workload Identity
verificatietype bevat het meestal het service-eindpunt. - Voor het
Service Principal
verificatietype bevat het de tenant-id, de client-id en het clientgeheim van de service-principal.
Raadpleeg de bijbehorende documentatie, zoals de Handleiding voor Azure AI-services voor gedetailleerde informatie over specifieke doelservices.
Firewallregels op basis van IP maken
Service Connector haalt het uitgaande openbare IP-adres op uit het AKS-cluster en maakt IP-firewallregels op de doelservice om netwerktoegang vanuit het cluster toe te staan.
Roltoewijzingen voor Microsoft Entra-id maken
Wanneer u het Workload Identity
verificatietype gebruikt, maakt Service Connector automatisch een roltoewijzing voor de identiteit. De toegewezen rol varieert op basis van de doelservice om de juiste toegang te garanderen.
Gebruikers kunnen zo nodig ook roltoewijzingen aanpassen. Zie rolaanpassing voor meer informatie.
De Kubernetes-resources gebruiken die zijn gemaakt door Service Connector
Serviceconnector maakt verschillende Kubernetes-resources, afhankelijk van het doelservicetype en het geselecteerde verificatietype. In de volgende secties ziet u hoe u de Kubernetes-resources gebruikt die zijn gemaakt door Service Connector in de definitie van uw clusterworkloads en toepassingscode.
Kubernetes-geheim
Er wordt een Kubernetes-geheim gemaakt wanneer het verificatietype is ingesteld op of Connection String
Service Principal
. De definitie van uw clusterworkload kan rechtstreeks naar het geheim verwijzen. Het volgende codefragment bevat een voorbeeld.
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
Uw toepassingscode kan de verbindingsreeks in het geheim van een omgevingsvariabele gebruiken. Raadpleeg de volgende voorbeeldcode voor meer informatie over de namen van omgevingsvariabelen en hoe u deze kunt gebruiken in uw toepassingscode om te verifiëren bij verschillende doelservices.
Kubernetes-serviceaccount
Er worden een Kubernetes-serviceaccount en een geheim gemaakt wanneer het verificatietype is ingesteld op Workload Identity
. De definitie van de clusterworkload kan verwijzen naar het serviceaccount en geheim om te authenticeren door de workloadidentiteit. Het volgende codefragment bevat een voorbeeld.
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
Raadpleeg de volgende zelfstudie voor meer informatie over het maken van verbinding met Azure Storage met behulp van workloadidentiteit.
Problemen met logboeken oplossen en weergeven
Als er een fout optreedt en niet kan worden opgelost door opnieuw te proberen bij het maken van een serviceverbinding, helpen de volgende methoden om meer informatie te verzamelen voor het oplossen van problemen.
Service-connector Kubernetes-extensie controleren
De Serviceconnector-Kubernetes-extensie is gebaseerd op Azure Arc-compatibele Kubernetes-clusterextensies. Gebruik de volgende opdrachten om te controleren op eventuele fouten die optreden tijdens de installatie van de extensie of het updateproces.
Installeer de
k8s-extension
Azure CLI-extensie.az extension add --name k8s-extension
Haal de status van de serviceconnector-extensie op. Controleer de
statuses
eigenschap in de opdrachtuitvoer om eventuele fouten te identificeren.az k8s-extension show \ --resource-group MyClusterResourceGroup \ --cluster-name MyCluster \ --cluster-type managedClusters \ --name sc-extension
Kubernetes-clusterlogboeken controleren
Als er een fout optreedt tijdens de installatie van de extensie en het foutbericht in de statuses
eigenschap onvoldoende informatie bevat, kunt u dit verder onderzoeken door de Kubernetes-logboeken te controleren met de volgende stappen.
Maak verbinding met uw AKS-cluster.
az aks get-credentials \ --resource-group MyClusterResourceGroup \ --name MyCluster
De serviceconnector-extensie wordt in de
sc-system
naamruimte geïnstalleerd met behulp van een Helm-grafiek. Controleer de naamruimte en de Helm-release met behulp van de volgende opdrachten.Controleer of de naamruimte bestaat.
kubectl get ns
Controleer de status van de helm-release.
helm list -n sc-system
Tijdens de installatie of update van de extensie maakt een Kubernetes-taak met de naam
sc-job
de Kubernetes-resources voor de serviceverbinding. Een mislukte taakuitvoering zorgt er doorgaans voor dat de extensie mislukt. Controleer de taakstatus door de volgende opdrachten uit te voeren. Alssc-job
niet bestaat in desc-system
naamruimte, had het succesvol uitgevoerd moeten zijn. Deze taak is ontworpen om automatisch te worden verwijderd na een geslaagde uitvoering.Controleer of de taak bestaat.
kubectl get job -n sc-system
Haal de taakstatus op.
kubectl describe job/sc-job -n sc-system
Bekijk de taaklogboeken.
kubectl logs job/sc-job -n sc-system
Veelvoorkomende fouten en oplossingen
Fout bij het maken van extensies
Foutbericht:
-
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
Mitigatie:
Raadpleeg fouten bij het maken van extensies
Helm-fouten
Foutberichten:
Unable to download the Helm chart from the repo URL
Deze fout wordt veroorzaakt door connectiviteitsproblemen die optreden tussen het cluster en de firewall, in combinatie met uitgaande blokkades.
Als u dit probleem wilt oplossen, raadpleegt u uitgaande netwerk- en FQDN-regels voor AKS-clusters (Azure Kubernetes Service) en voegt u de FQDN toe die is vereist voor het ophalen van de Helm-grafiek voor serviceconnector: scaksextension.azurecr.io
Foutberichten:
Timed out waiting for resource readiness
Helm chart rendering failed with given values
Resource already exists in your cluster
Operation is already in progress for Helm
Mitigatie:
Verwijs naar Helm-fouten
Conflict
Foutbericht:
Operation returned an invalid status code: Conflict
.
Reden:
Deze fout treedt meestal op wanneer u probeert een serviceverbinding te maken terwijl het Azure Kubernetes Service (AKS)-cluster in een update toestand verkeert. De update van de serviceverbinding conflicteert met de doorlopende update. Deze fout treedt ook op wanneer uw abonnement niet is geregistreerd bij de Microsoft.KubernetesConfiguration
resourceprovider.
Mitigatie:
Zorg ervoor dat uw cluster de status Geslaagd heeft en probeer het opnieuw te maken.
Voer de volgende opdracht uit om te controleren of uw abonnement is geregistreerd bij de
Microsoft.KubernetesConfiguration
resourceprovider.az provider register -n Microsoft.KubernetesConfiguration
Onbevoegde toegang tot bronnen
Foutbericht:
You do not have permission to perform ... If access was recently granted, please refresh your credentials
.
Reden:
ServiceConnector vereist machtigingen om de Azure-resources te laten werken waarmee u verbinding wilt maken, om namens u verbindingsbewerkingen uit te voeren. Deze fout geeft aan dat er onvoldoende machtigingen zijn voor sommige Azure-resources.
Mitigatie:
Controleer de machtigingen voor de Azure-resources die zijn opgegeven in het foutbericht. Haal de vereiste machtigingen op en probeer het opnieuw te maken.
Ontbrekende abonnementsregistratie
Foutbericht:
The subscription is not registered to use namespace 'Microsoft.KubernetesConfiguration'
Reden:
Serviceconnector vereist dat het abonnement is geregistreerd bij Microsoft.KubernetesConfiguration
, de resourceprovider voor Kubernetes-clusterextensies met Azure Arc.
Mitigatie:
Registreer de Microsoft.KubernetesConfiguration
resourceprovider door de volgende opdracht uit te voeren. Raadpleeg voor meer informatie fouten in resourceproviderregistratie oplossen.
az provider register -n Microsoft.KubernetesConfiguration
Volgende stap
Leer hoe u verschillende doelservices kunt integreren en lees meer over hun configuratie-instellingen en verbindingsmethoden.