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
- Tato příručka předpokládá, že už znáte základní koncepty konektoru služby.
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 .
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-system
clusteru .
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.
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.
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.
Pokud je Workload Identity
typ 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 String
Service 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í.
k8s-extension
Nainstalujte rozšíření Azure CLI.az extension add --name k8s-extension
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ů.
Připojte se ke clusteru AKS.
az aks get-credentials \ --resource-group MyClusterResourceGroup \ --name MyCluster
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
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. Pokudsc-job
vsc-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:
Ujistěte se, že je váš cluster ve stavu Úspěch, a zkuste vytvoření zopakovat.
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.KubernetesConfiguration
př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í.