Sdílet prostřednictvím


Použití konektoru služby ve službě Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) je jednou z výpočetních služeb podporovaných konektorem služeb. Cílem tohoto článku je pomoct pochopit:

  • Jaké operace se provádí v clusteru při vytváření připojení služby.
  • Jak používat prostředky Kubernetes vytvořené konektorem Service Connector.
  • Řešení potíží a zobrazení protokolů konektoru služby v clusteru AKS

Požadavky

Operace prováděné konektorem služby v clusteru AKS

V závislosti na různých cílových službách a typech ověřování vybraných při vytváření připojení ke službě provádí Konektor služby různé operace v clusteru AKS. Následující seznam uvádí možné operace provedené konektorem Service Connector.

Přidání rozšíření Kubernetes konektoru služby

Do clusteru se při prvním vytvoření připojení služby přidá rozšíření sc-extension Kubernetes. Později rozšíření pomáhá vytvářet prostředky Kubernetes v clusteru uživatele, kdykoli přijde požadavek na připojení služby do konektoru služby. Rozšíření najdete v clusteru AKS na webu Azure Portal v nabídce Rozšíření a aplikace .

Snímek obrazovky webu Azure Portal a zobrazení rozšíření AKS

Rozšíření je také místo, kde jsou uložena metadata připojení clusteru. Odinstalace rozšíření znepřístupňuje všechna připojení v clusteru. Operátor rozšíření je hostovaný v oboru názvů sc-systemclusteru .

Vytváření prostředků Kubernetes

Service Connector vytvoří některé prostředky Kubernetes pro obor názvů, který uživatel zadal při vytváření připojení služby. Prostředky Kubernetes ukládají informace o připojení, které vyžadují definice úloh uživatele nebo kód aplikace pro komunikaci s cílovými službami. V závislosti na různých typech ověřování se vytvoří různé prostředky Kubernetes. Connection String Pro typy ověřování a Service Principal ověřování se vytvoří tajný klíč Kubernetes. Workload Identity Pro typ ověřování se kromě tajného kódu Kubernetes vytvoří také účet služby Kubernetes.

Prostředky Kubernetes vytvořené konektorem služby pro každé připojení služby najdete na webu Azure Portal v prostředku Kubernetes v nabídce Konektor služby.

Snímek obrazovky webu Azure Portal zobrazte prostředky Kubernetes vytvořené konektorem služby.

Odstranění připojení služby neodstraní přidružený prostředek Kubernetes. V případě potřeby odeberte prostředek ručně, například příkaz kubectl delete.

Povolení doplňku azureKeyvaultSecretsProvider

Pokud je cílová služba Azure Key Vault a ovladač CSI úložiště tajných kódů je povolený při vytváření připojení služby, konektor služby povolí azureKeyvaultSecretsProvider doplněk pro cluster.

Snímek obrazovky webu Azure Portal s povolením ovladače CSI pro keyvault při vytváření připojení

Postupujte podle kurzuPřipojení ke službě Azure Key Vault pomocí ovladače CSI a nastavte připojení ke službě Azure Key Vault pomocí ovladače CSI služby Secret Store.

Povolení vystavitele identity úloh a OpenID Connect (OIDC)

Pokud je Workload Identity typ ověřování při vytváření připojení služby, konektor Service Connector povolí identitu úloh a vystavitele OIDC pro cluster.

Snímek obrazovky webu Azure Portal s použitím identity úlohy k vytvoření připojení

Pokud je Workload Identitytyp ověřování , je potřeba spravovaná identita přiřazená uživatelem k vytvoření přihlašovacích údajů federované identity. Přečtěte si další informace o identitách úloh nebo si podle kurzunastavte připojení ke službě Azure Storage pomocí identity úloh.

Použití prostředků Kubernetes vytvořených konektorem služby

Konektor služby vytváří různé prostředky Kubernetes v závislosti na typu cílové služby a typu ověřování. Následující části ukazují, jak používat prostředky Kubernetes vytvořené konektorem služby v definici úloh clusteru a kódu aplikace.

Tajný kód Kubernetes

Tajný klíč Kubernetes se vytvoří, když je typ ověřování nastavený na hodnotu nebo Connection StringService Principal. Definice úlohy clusteru může odkazovat přímo na tajný klíč. Následující fragment kódu poskytuje příklad.

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

Kód aplikace může využívat připojovací řetězec v tajném kódu z proměnné prostředí. Další informace o názvech proměnných prostředí a jejich použití v kódu aplikace k ověření v různých cílových službách najdete v následujícím vzorovém kódu .

Účet služby Kubernetes

Účet služby Kubernetes a tajný klíč se vytvoří, když je typ ověřování nastavený na Workload Identity. Definice úlohy clusteru může odkazovat na účet služby a tajný klíč k ověření prostřednictvím identity úlohy. Následující fragment kódu poskytuje příklad.

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

V následujícím kurzu se dozvíte , jak se připojit ke službě Azure Storage pomocí identity úloh.

Řešení potíží a zobrazení protokolů

Pokud dojde k chybě a nejde ji vyřešit opakovaným pokusem při vytváření připojení služby, následující metody vám pomůžou shromáždit další informace o řešení potíží.

Kontrola rozšíření Kubernetes konektoru služby

Rozšíření Kubernetes konektoru služby je postavené na rozšířeních clusteru Kubernetes s podporou Azure Arc. Pomocí následujících příkazů zkontrolujte případné chyby, ke kterým došlo během procesu instalace nebo aktualizace rozšíření.

  1. k8s-extension Nainstalujte rozšíření Azure CLI.

    az extension add --name k8s-extension
    
  2. Načtěte stav rozšíření konektoru služby. statuses Zkontrolujte vlastnost ve výstupu příkazu a identifikujte případné chyby.

    az k8s-extension show \
        --resource-group MyClusterResourceGroup \
        --cluster-name MyCluster \
        --cluster-type managedClusters \
        --name sc-extension
    

Kontrola protokolů clusteru Kubernetes

Pokud během instalace rozšíření dojde k chybě a chybová zpráva ve statuses vlastnosti neposkytuje dostatek informací, můžete je dále prozkoumat kontrolou protokolů Kubernetes pomocí následujících kroků.

  1. Připojte se ke clusteru AKS.

    az aks get-credentials \
        --resource-group MyClusterResourceGroup \
        --name MyCluster
    
  2. Rozšíření konektoru služby je nainstalované v sc-system oboru názvů pomocí chartu Helm. Pomocí následujících příkazů zkontrolujte obor názvů a verzi Helm.

    • Zkontrolujte, jestli obor názvů existuje.

      kubectl get ns
      
    • Zkontrolujte stav verze Helmu.

      helm list -n sc-system
      
  3. Během instalace nebo aktualizace rozšíření vytvoří úloha Kubernetes prostředky sc-job Kubernetes pro připojení ke službě. Selhání spuštění úlohy obvykle způsobí selhání rozšíření. Spuštěním následujících příkazů zkontrolujte stav úlohy. Pokud sc-job v sc-system oboru názvů neexistuje, měl by být úspěšně proveden. Tato úloha je navržená tak, aby se po úspěšném spuštění automaticky odstranila.

    • Zkontrolujte, jestli úloha existuje.

      kubectl get job -n sc-system
      
    • Získejte stav úlohy.

      kubectl describe job/sc-job -n sc-system
      
    • Prohlédněte si protokoly úloh.

      kubectl logs job/sc-job -n sc-system
      

Běžné chyby a zmírnění rizik

Chyba při vytváření rozšíření

Chybová zpráva:

Unable to get a response from the agent in time.

Snížení rizika:

Informace o chybách při vytváření rozšíření

Chyby Helmu

Chybové zprávy:

  • 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

Snížení rizika:

Projděte si chyby Helmu .

Konflikt

Chybová zpráva:

Operation returned an invalid status code: Conflict.

Důvod:

K této chybě obvykle dochází při pokusu o vytvoření připojení služby v době, kdy je cluster Azure Kubernetes Service (AKS) ve stavu aktualizace. Aktualizace připojení služby je v konfliktu s probíhající aktualizací. K této chybě dochází také v případě, že vaše předplatné není zaregistrované u Microsoft.KubernetesConfiguration poskytovatele prostředků.

Snížení rizika:

  1. Ujistěte se, že je váš cluster ve stavu Úspěch, a zkuste vytvoření zopakovat.

  2. Spuštěním následujícího příkazu se ujistěte, že je vaše předplatné zaregistrované u Microsoft.KubernetesConfiguration poskytovatele prostředků.

    az provider register -n Microsoft.KubernetesConfiguration
    

Neoprávněný přístup k prostředkům

Chybová zpráva:

You do not have permission to perform ... If access was recently granted, please refresh your credentials.

Důvod:

Service Connector vyžaduje oprávnění k provozování prostředků Azure, ke kterému se chcete připojit, aby bylo možné provádět operace připojení vaším jménem. Tato chyba značí nedostatek potřebných oprávnění k některým prostředkům Azure.

Snížení rizika:

Zkontrolujte oprávnění k prostředkům Azure zadaným v chybové zprávě. Získejte požadovaná oprávnění a zkuste vytvoření zopakovat.

Chybějící registrace předplatného

Chybová zpráva:

The subscription is not registered to use namespace 'Microsoft.KubernetesConfiguration'

Důvod:

Service Connector vyžaduje registraci Microsoft.KubernetesConfigurationpředplatného , což je poskytovatel prostředků pro rozšíření clusteru Kubernetes s podporou Azure Arc.

Snížení rizika:

Microsoft.KubernetesConfiguration Spuštěním následujícího příkazu zaregistrujte poskytovatele prostředků. Další informace o chybách registrace poskytovatele prostředků najdete v tématu Řešení chyb registrace poskytovatele prostředků.

az provider register -n Microsoft.KubernetesConfiguration

Další krok

Zjistěte, jak integrovat různé cílové služby a přečíst si o jejich nastavení konfigurace a metodách ověřování.