Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Kubernetes Service (AKS) är en av de beräkningstjänster som stöds av Service Connector.
Denna artikel omfattar:
- Skillnaderna mellan Service Connector för AKS och andra beräkningstjänster.
- De åtgärder som körs i klustret när en tjänstanslutning skapas.
- De åtgärder som körs på måltjänsterna när en tjänstanslutning skapas.
- Använda Kubernetes-resurserna som skapats av Service Connector.
- Felsöka och visa loggar för Service Connector i ett AKS-kluster.
Förutsättningar
- Den här guiden förutsätter att du redan känner till de grundläggande begreppen i Service Connector.
Skillnader mellan Service Connector för AKS och andra beräkningstjänster
Service Connector för AKS skiljer sig från hur det fungerar med andra beräkningstjänster som stöds av Service Connector på flera sätt. Följande beskriver AKS-specifika alternativ och beteenden för varje API-åtgärd.
Skapelse
De AKS-specifika skapandealternativen visas nedan. Gå till Azure-portalen eller Azure CLI-snabbstarter för att lära dig hur du skapar en ny anslutning i AKS.
- Service Connector för AKS kräver att parametern
Kubernetes namespaceanger var Kubernetes-resurserna ska skapas. Som standard använder dendefaultnamnområdet. - Service Connector för AKS stöder
Workload Identitysom alternativet för säker autentisering av autentiseringsuppgifter, medan andra beräkningstjänster erbjuderSystem Managed IdentityochUser Managed Identityalternativ. - När du använder Azure Key Vault som måltjänst med CSI-drivrutinen för Hemlig lagring aktiverad använder Service Connector den användartilldelade hanterade identiteten från AKS-tillägget
azure-keyvault-secrets-providerför autentisering, utan att kräva att användarna anger autentiseringstypen. - Service Connector för AKS stöder endast nätverksalternativet
Firewall Rules, medan andra beräkningstjänster också kan stödjaPrivate LinkochVirtual Networkalternativ.
Lista konfigurationer
Service Connector för AKS visar endast icke-autentiserande konfigurationer i listkonfigurationsvyer. Användare bör manuellt kontrollera autentiseringsuppgifterna i den associerade Kubernetes-resursen om det behövs.
Med Azure CLI-kommandot az aks connection list-configuration är värdet på en autentiseringsuppgiftskonfiguration en tom sträng. I Azure-portalen är värdet för en konfiguration av autentiseringsuppgifter dolt, enligt nedan.
Validering
Service Connector för AKS validerar inte konfigurationsvärdeändringar som gjorts i användarens kluster, oavsett om de är konfigurationer av autentiseringsuppgifter eller icke-autentiseringsuppgifter. Service Connector utför dock följande valideringar, precis som för andra beräkningstjänster:
- Verifiera att måltjänsten finns
- Kontrollera IP-brandväggsregler för åtkomst till måltjänsten
- Säkerställa rolltilldelning för arbetsbelastningsidentitet för åtkomst till måltjänsten
Utdata från Azure CLI-kommandot az aks connection validate är alltid success. Samma sak gäller för Azure-portalen, som du ser nedan.
Åtgärder som utförs av Service Connector i AKS-klustret
De åtgärder som utförs av Service Connector i AKS-klustret varierar beroende på vilka måltjänster och autentiseringstyper som valts när du skapar en tjänstanslutning. Följande listar de möjliga åtgärder som utförs av Service Connector.
Lägga till Kubernetes-tillägget för Service Connector
Ett Kubernetes-tillägg med namnet sc-extension läggs till i klustret första gången en tjänstanslutning skapas. Senare hjälper tillägget till att skapa Kubernetes-resurser i användarens kluster, när en tjänstanslutningsbegäran kommer till Service Connector. Tillägget finns i användarens AKS-kluster i Azure-portalen i menyn Tillägg + program .
Klusteranslutningens metadata lagras också i tillägget. Om du avinstallerar tillägget blir alla anslutningar i klustret otillgängliga. Tilläggsoperatorn finns i klusternamnområdet sc-system.
Skapa Kubernetes-resurserna
Service Connector skapar Kubernetes-resurser i namnområdet som användaren anger när tjänstanslutningen skapas. Kubernetes-resurserna lagrar den anslutningsinformation som krävs av användarens arbetsbelastningsdefinitioner eller programkod för att kommunicera med måltjänsterna. Beroende på autentiseringstyp skapas olika Kubernetes-resurser. För autentiseringstyperna Connection String och Service Principal skapas en Kubernetes-hemlighet. För autentiseringstypen Workload Identity skapas även ett Kubernetes-tjänstkonto utöver en Kubernetes-hemlighet.
Du hittar Kubernetes-resurserna som skapats av Service Connector för varje tjänstanslutning på Azure-portalen i Kubernetes-resursen på menyn Service Connector.
Om du tar bort en tjänstanslutning tas inte den associerade Kubernetes-resursen bort. Om det behövs tar du bort resursen kubectl delete manuellt med till exempel kommandot .
azureKeyvaultSecretsProvider Aktivera tillägget
Om måltjänsten är Azure Key Vault och CSI-drivrutinen för Secret Store är aktiverad aktiverar azureKeyvaultSecretsProvider Service Connector tillägget för klustret.
Följ självstudien Anslut till Azure Key Vault med CSI-drivrutin för att konfigurera en anslutning till Azure Key Vault med hjälp av CSI-drivrutinen för Secret Store.
Aktivera arbetsbelastningsidentitet och OpenID Connect-utfärdare (OIDC)
Om autentiseringstypen är Workload Identity, kommer Service Connector att aktivera arbetsbelastningsidentitet och OIDC-utfärdare för klustret.
Om autentiseringstypen är Workload Identitykrävs en användartilldelad hanterad identitet för att skapa den federerade identitetsautentiseringsuppgiften. Läs mer om arbetsbelastningsidentiteter eller se följande självstudie för att konfigurera en anslutning till Azure Storage med hjälp av en arbetsbelastningsidentitet.
Åtgärder som utförs av Service Connector på måltjänsterna
Service Connector för AKS utför samma åtgärder på måltjänster som andra beräkningstjänster. Åtgärderna varierar dock beroende på måltjänsttyper och autentiseringsmetoder. Nedan visas några möjliga åtgärder.
Hämta anslutningskonfigurationer
Service Connector hämtar nödvändiga anslutningskonfigurationer från måltjänsten och anger dem som en Kubernetes-hemlighet i användarens kluster. Anslutningskonfigurationerna varierar beroende på måltjänsttyp och autentiseringsmetod:
- För autentiseringstypen
Connection Stringinnehåller konfigurationen vanligtvis en tjänsthemlighet eller anslutningssträng. - För autentiseringstypen
Workload Identityinnehåller den vanligtvis tjänstslutpunkten. - För autentiseringstypen
Service Principalinnehåller den tjänstens huvudnamns klient-ID, klient-ID och klienthemlighet.
Detaljerad information om specifika måltjänster finns i motsvarande dokumentation, till exempel Azure AI-tjänstguiden .
Skapa IP-baserade brandväggsregler
Service Connector hämtar den utgående offentliga IP-adressen från AKS-klustret och skapar IP-brandväggsregler på måltjänsten för att tillåta nätverksåtkomst från klustret.
Skapa rolltilldelningar för Microsoft Entra-ID
När du använder autentiseringstypen Workload Identity skapar Service Connector automatiskt en rolltilldelning för identiteten. Den tilldelade rollen varierar beroende på måltjänsten för att säkerställa lämplig åtkomst.
Användare kan också anpassa rolltilldelningar efter behov. Mer information finns i Rollanpassning.
Använda Kubernetes-resurserna som skapats av Service Connector
Service Connector skapar olika Kubernetes-resurser beroende på vilken typ av måltjänst och autentiseringstyp som valts. Följande avsnitt visar hur du använder Kubernetes-resurserna som skapats av Service Connector i definitionen av klusterarbetsbelastningar och programkoden.
Kubernetes-hemlighet
En Kubernetes-hemlighet skapas när autentiseringstypen är inställd på antingen Connection String eller Service Principal. Klustrets arbetsbelastningsdefinition kan referera till hemligheten direkt. Följande kodfragment innehåller ett exempel.
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
Programkoden kan använda anslutningssträngen i hemligheten från en miljövariabel. Kontrollera följande exempelkod för att lära dig mer om miljövariabelnamnen och hur du använder dem i programkoden för att autentisera till olika måltjänster.
Kubernetes-tjänstkonto
Ett Kubernetes-tjänstkonto och en hemlighet skapas när autentiseringstypen är inställd på Workload Identity. Klustrets arbetsbelastningsdefinition kan referera till tjänstkontot och säkerhetsnyckeln för att autentisera via workload identity. Följande kodfragment innehåller ett exempel.
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
Läs följande handledning för att lära dig hur du ansluter till Azure Storage med arbetsbelastningsidentitet.
Felsöka och visa loggar
Om ett fel inträffar och inte kan lösas genom att försöka igen när du skapar en tjänstanslutning, hjälper följande metoder till att samla in mer information för felsökning.
Kontrollera Kubernetes-tillägget för Service Connector
Kubernetes-tillägget för Service Connector bygger på Azure Arc-aktiverade Kubernetes-klustertillägg. Använd följande kommandon för att söka efter eventuella fel som inträffar under tilläggsinstallationen eller uppdateringsprocessen.
Installera Azure CLI-tillägget
k8s-extension.az extension add --name k8s-extensionHämta statusen för tjänstanslutningstillägget. Kontrollera egenskapen
statusesi kommandoutdata för att identifiera eventuella fel.az k8s-extension show \ --resource-group MyClusterResourceGroup \ --cluster-name MyCluster \ --cluster-type managedClusters \ --name sc-extension
Kontrollera Kubernetes-klusterloggar
Om ett fel uppstår under tilläggsinstallationen och felmeddelandet i statuses egenskapen inte ger tillräcklig information kan du undersöka det ytterligare genom att kontrollera Kubernetes-loggarna med följande steg.
Anslut till ditt AKS-kluster.
az aks get-credentials \ --resource-group MyClusterResourceGroup \ --name MyClusterService Connector-tillägget installeras i
sc-systemnamnområdet med hjälp av ett Helm-diagram. Kontrollera namnområdet och Helm-versionen med hjälp av följande kommandon.Kontrollera att namnområdet finns.
kubectl get nsKontrollera statusen för helm-utgåvan.
helm list -n sc-system
Under tilläggsinstallationen eller uppdateringen skapar ett Kubernetes-jobb med namnet
sc-jobKubernetes-resurserna för tjänstanslutningen. Ett jobbkörningsfel orsakar vanligtvis att modulen misslyckas. Kontrollera jobbstatusen genom att köra följande kommandon. Omsc-jobinte finns i namnområdetsc-system, borde det ha körts korrekt. Den här uppgiften är utformad för att tas bort automatiskt efter att den har körts klart.Kontrollera att jobbet finns.
kubectl get job -n sc-systemHämta jobbstatusen.
kubectl describe job/sc-job -n sc-systemVisa jobbloggarna.
kubectl logs job/sc-job -n sc-system
Vanliga fel och åtgärder
Fel vid skapande av tillägg
Felmeddelande:
-
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
Förmildrande omständighet:
Se fel vid skapande av tillägg
Helm-fel
Felmeddelanden:
Unable to download the Helm chart from the repo URL
Det här felet orsakas av anslutningsproblem som uppstår mellan klustret och brandväggen utöver problem med utgående blockering.
Information om hur du löser det här problemet finns i Utgående nätverk och FQDN-regler för AKS-kluster (Azure Kubernetes Service) och lägger till det FQDN som krävs för att hämta Helm-diagrammet för Tjänstanslutning: scaksextension.azurecr.io
Felmeddelanden:
Timed out waiting for resource readinessHelm chart rendering failed with given valuesResource already exists in your clusterOperation is already in progress for Helm
Förmildrande omständighet:
Se Helm-fel
Konflikt
Felmeddelande:
Operation returned an invalid status code: Conflict.
Orsak:
Det här felet uppstår vanligtvis när du försöker skapa en tjänstanslutning medan AKS-klustret (Azure Kubernetes Service) är i ett uppdateringstillstånd. Uppdateringen av tjänstanslutningen står i konflikt med den pågående uppdateringen. Det här felet uppstår också när din prenumeration inte är registrerad hos Microsoft.KubernetesConfiguration resursprovidern.
Förmildrande omständighet:
Kontrollera att klustret är i tillståndet "Lyckades" och försök att skapa det igen.
Kör följande kommando för att kontrollera att din prenumeration är registrerad hos resursprovidern
Microsoft.KubernetesConfiguration.az provider register -n Microsoft.KubernetesConfiguration
Obehörig resursåtkomst
Felmeddelande:
You do not have permission to perform ... If access was recently granted, please refresh your credentials.
Orsak:
Service Connector kräver behörighet att använda de Azure-resurser som du vill ansluta till för att kunna utföra anslutningsåtgärder åt dig. Det här felet anger att vissa Azure-resurser saknar nödvändiga behörigheter.
Förmildrande omständighet:
Kontrollera behörigheterna för de Azure-resurser som anges i felmeddelandet. Hämta de behörigheter som krävs och försök att skapa igen.
Saknad prenumerationsregistrering
Felmeddelande:
The subscription is not registered to use namespace 'Microsoft.KubernetesConfiguration'
Orsak:
Service Connector kräver att prenumerationen registreras med Microsoft.KubernetesConfiguration, vilket är resursprovidern för Azure Arc-aktiverade Kubernetes-klustertillägg.
Förmildrande omständighet:
Registrera resursprovidern Microsoft.KubernetesConfiguration genom att köra följande kommando. Mer information om registreringsfel för resursprovider finns i Lösa fel för registrering av resursprovider.
az provider register -n Microsoft.KubernetesConfiguration
Nästa steg
Lär dig hur du integrerar olika måltjänster och läser om deras konfigurationsinställningar och autentiseringsmetoder.