Använda Service Connector i Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) är en av de beräkningstjänster som stöds av Service Connector. Den här artikeln syftar till att hjälpa dig att förstå:
- Vilka åtgärder som utförs i klustret när du skapar en tjänstanslutning.
- Så här använder du Kubernetes-resurserna som skapats av Service Connector.
- Så här felsöker och visar du loggar för Tjänstanslutning 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.
Åtgärder som utförs av Service Connector i AKS-klustret
Beroende på de olika måltjänster och autentiseringstyper som valts när du skapar en tjänstanslutning gör Service Connector olika åtgärder i AKS-klustret. 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. Du hittar tillägget i AKS-klustret i Azure Portal i menyn Tillägg + program.
Tillägget är också där metadata för klusteranslutningar lagras. 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 vissa Kubernetes-resurser till det namnområde som användaren angav när en tjänstanslutning skapades. Kubernetes-resurserna lagrar anslutningsinformationen, som krävs av användarens arbetsbelastningsdefinitioner eller programkod för att kommunicera med måltjänster. Beroende på olika autentiseringstyper 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 Portal 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 manuellt med till exempel kommandot kubectl delete.
azureKeyvaultSecretsProvider
Aktivera tillägget
Om måltjänsten är Azure Key Vault och CSI-drivrutinen för Secret Store är aktiverad när du skapar en tjänstanslutning 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
när du skapar en tjänstanslutning aktiverar Service Connector arbetsbelastningsidentitet och OIDC-utfärdare för klustret.
När autentiseringstypen är Workload Identity
behövs en användartilldelad hanterad identitet för att skapa den federerade identitetsautentiseringsuppgiften. Läs mer om vad som är arbetsbelastningsidentiteter eller följ självstudien för att konfigurera en anslutning till Azure Storage med hjälp av arbetsbelastningsidentitet.
Använda Kubernetes-resurserna som skapats av Service Connector
Olika Kubernetes-resurser skapas av Service Connector beroende på måltjänsttyp och autentiseringstyp. 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äng 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 hemligheten för att autentisera via arbetsbelastningsidentitet. 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 självstudie för att lära dig hur du ansluter till Azure Storage med hjälp av 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äffade under tilläggsinstallationen eller uppdateringsprocessen.
Installera Azure CLI-tillägget
k8s-extension
.az extension add --name k8s-extension
Hämta statusen för tjänstanslutningstillägget. Kontrollera egenskapen
statuses
i 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äckligt med 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 MyCluster
Service Connector-tillägget installeras i
sc-system
namnområ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 ns
Kontrollera helm-versionsstatusen.
helm list -n sc-system
Under tilläggsinstallationen eller uppdateringen skapar ett Kubernetes-jobb med namnet
sc-job
Kubernetes-resurserna för tjänstanslutningen. Ett jobbkörningsfel gör vanligtvis att tillägget misslyckas. Kontrollera jobbstatusen genom att köra följande kommandon. Omsc-job
det inte finns isc-system
namnområdet bör det ha körts korrekt. Det här jobbet är utformat för att tas bort automatiskt efter att körningen har slutförts.Kontrollera att jobbet finns.
kubectl get job -n sc-system
Hämta jobbstatusen.
kubectl describe job/sc-job -n sc-system
Visa 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
.
Riskreducering:
Se fel vid skapande av tillägg
Helm-fel
Felmeddelanden:
Timed out waiting for resource readiness
Unable to download the Helm chart from the repo URL
Helm chart rendering failed with given values
Resource already exists in your cluster
Operation is already in progress for Helm
Riskreducering:
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.
Riskreducering:
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.
Riskreducering:
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.
Prenumerationsregistrering saknas
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.
Riskreducering:
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
Gå vidare
Lär dig hur du integrerar olika måltjänster och läser om deras konfigurationsinställningar och autentiseringsmetoder.