Szolgáltatási megbízó használata Azure Kubernetes Service (AKS) szolgáltatással
Az AKS-fürtökhöz microsoft Entra szolgáltatásnévre vagy felügyelt identitásra van szükség más Azure-erőforrások, például az Azure Load Balancer vagy az Azure Container Registry (ACR) dinamikus létrehozásához és kezeléséhez.
Megjegyzés:
Azt javasoljuk, hogy felügyelt identitásokkal hitelesítse magát más Azure-erőforrásokkal, és ezek az AKS-fürt alapértelmezett hitelesítési módszerei. A felügyelt identitás fürttel való használatáról további információt a Rendszer által hozzárendelt felügyelt identitás használata című témakörben talál.
Ez a cikk bemutatja, hogyan hozhat létre és használhat egyszerű szolgáltatást az AKS-fürtökhöz.
Előkészületek
Microsoft Entra-szolgáltatásnév létrehozásához rendelkeznie kell engedéllyel ahhoz, hogy regisztráljon egy alkalmazást a Microsoft Entra-bérlőjénél, és hozzárendelje az alkalmazást egy szerepkörhöz az előfizetésében. Ha nem rendelkezik a szükséges engedélyekkel, meg kell kérnie a Microsoft Entra-azonosítót vagy az előfizetés rendszergazdáját, hogy rendelje hozzá a szükséges engedélyeket, vagy hozzon létre előre egy szolgáltatásnevet az AKS-fürthöz való használathoz.
Ha egy másik Microsoft Entra-bérlőtől származó szolgáltatásnevet használ, a fürt üzembe helyezésekor elérhető engedélyeket más szempontok is figyelembe veszik. Előfordulhat, hogy nem rendelkezik a címtáradatok olvasására és írására vonatkozó megfelelő engedélyekkel. További információ: Mik az alapértelmezett felhasználói engedélyek a Microsoft Entra-azonosítóban?
Előfeltételek
- Az Azure CLI használata esetén az Azure CLI 2.0.59-es vagy újabb verziójára lesz szüksége. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - Az Azure PowerShell használata esetén az Azure PowerShell 5.0.0-s vagy újabb verziójára lesz szüksége. A verzió azonosításához futtassa a következőt:
Get-InstalledModule -Name Az
. Ha telepítenie vagy frissítenie kell, olvassa el az Azure Az PowerShell-modul telepítését ismertető témakört.
Manually create a service principal
Hozzon létre egy egyszerű szolgáltatást a
az ad sp create-for-rbac
paranccsal.az ad sp create-for-rbac --name myAKSClusterServicePrincipal
A kimenetnek hasonlónak kell lennie a következő példakimenethez:
{ "appId": "559513bd-0c19-4c1a-87cd-851a26afd5fc", "displayName": "myAKSClusterServicePrincipal", "name": "http://myAKSClusterServicePrincipal", "password": "e763725a-5eee-40e8-a466-dc88d980f415", "tenant": "72f988bf-86f1-41af-91ab-2d7cd011db48" }
Másolja ki a kimenet értékeit
appId
.password
Ezeket akkor használja, ha AKS-fürtöt hoz létre a következő szakaszban.
Szolgáltatásnév megadása AKS-fürthöz
Használjon meglévő szolgáltatásnevet egy új AKS-fürthöz a
az aks create
paranccsal, és--client-secret
a--service-principal
paraméterekkel adja meg azappId
előző szakaszhoz kapott kimenetet éspassword
kimenetet.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --service-principal <appId> \ --client-secret <password>
Megjegyzés:
Ha egy meglévő szolgáltatásnevet használ testre szabott titkos kóddal, győződjön meg arról, hogy a titkos kód nem hosszabb 190 bájtnál.
Hozzáférés delegálása más Azure-erőforrásokhoz
Az AKS-fürt szolgáltatásnevével más erőforrásokhoz is hozzáférhet. Ha például egy meglévő Azure-beli virtuális hálózati alhálózaton szeretné üzembe helyezni az AKS-fürtöt, vagy csatlakozni szeretne az Azure Container Registryhez (ACR), delegálnia kell a hozzáférést ezekhez az erőforrásokhoz a szolgáltatásnévhez. A rendszer által hozzárendelt felügyelt identitást használó fürtnek adott engedély feltöltése 60 percet is igénybe vehet.
Szerepkör-hozzárendelés létrehozása a
az role assignment create
paranccsal. Rendelje hozzá egyappId
adott hatókörhöz, például egy erőforráscsoporthoz vagy egy virtuális hálózati erőforráshoz. A szerepkör határozza meg, hogy a szolgáltatásnév milyen engedélyekkel rendelkezik az erőforráson.Megjegyzés:
Egy
--scope
erőforráshoz teljes erőforrás-azonosítónak kell lennie, például /subscriptions/<guid>/resourceGroups/myResourceGroup vagy /subscriptions/<guid>/resourceGroups/myResourceGroupVnet/providers/Microsoft.Network/virtualNetworks/myVnet.az role assignment create --assignee <appId> --scope <resourceScope> --role Contributor
Az alábbi szakaszok részletesen ismertetik azokat a gyakori delegálásokat, amelyeket esetleg ki kell osztania.
Azure Container Registry
Ha az Azure Container Registryt (ACR) használja tárolórendszerkép-tárolóként, engedélyeket kell adnia az AKS-fürt szolgáltatásnevének a rendszerképek olvasásához és lekéréséhez. Javasoljuk, hogy használja a vagy az aks update
a az aks create
parancsot egy beállításjegyzékbe való integráláshoz, és rendelje hozzá a szolgáltatásnévnek megfelelő szerepkört. Részletes lépésekért lásd : Hitelesítés az Azure Container Registryvel az Azure Kubernetes Service-ből.
Networking
Használhat speciális hálózatkezelést, ha a virtuális hálózat és az alhálózat vagy a nyilvános IP-címek egy másik erőforráscsoportban találhatók. Rendelje hozzá a hálózati közreműködő beépített szerepkörét a virtuális hálózaton belüli alhálózathoz. Másik lehetőségként létrehozhat egy egyéni szerepkört, amely engedélyekkel rendelkezik az adott erőforráscsoportban lévő hálózati erőforrások eléréséhez. További információ: AKS szolgáltatásengedélyek.
Storage
Ha egy másik erőforráscsoport meglévő lemezerőforrásait kell elérnie, rendelje hozzá a következő szerepkör-engedélyek egyikét:
- Hozzon létre egy egyéni szerepkört, és határozza meg a Microsoft.Compute/disks/read és a Microsoft.Compute/disks/write szerepkör engedélyeit, vagy
- Rendelje hozzá a virtuálisgép-közreműködő beépített szerepkörét az erőforráscsoporthoz.
Azure Container Instances
Ha a Virtual Kubelet használatával integrálható az AKS-sel, és úgy dönt, hogy az Azure Container Instances (ACI) szolgáltatást az AKS-fürttől eltérő erőforráscsoportban futtatja, az AKS-fürt szolgáltatásnévnek közreműködői engedélyeket kell adnia az ACI-erőforráscsoporton.
Other considerations
Az AKS és a Microsoft Entra szolgáltatásnév használatakor vegye figyelembe a következőket:
- A Kubernetes szolgáltatásnév része a fürtkonfigurációnak, de ne használja ezt az identitást a fürt üzembe helyezéséhez.
- Alapértelmezés szerint a szolgáltatásnév hitelesítő adatai egy évig érvényesek. A szolgáltatásnév hitelesítő adatait bármikor frissítheti vagy elforgathatja.
- Minden szolgáltatásnév egy Microsoft Entra-alkalmazáshoz van társítva. Egy Kubernetes-fürt szolgáltatásnevét bármely érvényes Microsoft Entra-alkalmazásnévvel társíthatja (például: https://www.contoso.org/example). Az alkalmazás URL-címének nem szükséges valódi végpontnak lennie.
- Amikor megadja a szolgáltatásnév Client ID-ját (Ügyfél-azonosítóját), használja az
appId
értékét. - A Kubernetes-fürt ügynökcsomópont virtuális gépeinél a szolgáltatásnév hitelesítő adatai a
/etc/kubernetes/azure.json
fájlban vannak tárolva. - A parancs használatával
az aks create
létrehozott AKS-fürt törlésekor a létrehozott szolgáltatásnév nem törlődik automatikusan.A szolgáltatásnév törléséhez kérdezze le a fürt servicePrincipalProfile.clientId azonosítóját, és törölje a
az ad sp delete
parancs használatával. Cserélje le az-g
erőforráscsoport nevének és-n
a fürtnév paraméterének értékeit:az ad sp delete --id $(az aks show -g myResourceGroup -n myAKSCluster --query servicePrincipalProfile.clientId -o tsv)
Hibaelhárítás
Az Azure CLI gyorsítótárazza az AKS-fürtök szolgáltatásnév-hitelesítő adatait. Ha ezek a hitelesítő adatok lejárnak, hibaüzenetek jelennek meg az AKS-fürt üzembe helyezése során. Ha futtatja a az aks create
parancsot, és a következőhöz hasonló hibaüzenetet kap, az a gyorsítótárazott szolgáltatásnév hitelesítő adataival kapcsolatos problémát jelezhet:
Operation failed with status: 'Bad Request'.
Details: The credentials in ServicePrincipalProfile were invalid. Please see https://aka.ms/aks-sp-help for more details.
(Details: adal: Refresh request failed. Status Code = '401'.
A szolgáltatásnév hitelesítő adatainak lejárati dátumát a az ad app credential list
lekérdezést tartalmazó "[].endDateTime"
paranccsal ellenőrizheti.
az ad app credential list --id <app-id> --query "[].endDateTime" -o tsv
A szolgáltatásnév-hitelesítő adatok alapértelmezett lejárati ideje egy év. Ha a hitelesítő adatai egy évnél régebbiek, alaphelyzetbe állíthatja a meglévő hitelesítő adatokat, vagy létrehozhat egy új szolgáltatásnevet.
Az Azure CLI általános hibaelhárítása
Az Azure CLI több rendszerhéj-környezetben is futtatható, de kisebb formátumváltozatokkal. Ha az Azure CLI-parancsokkal nem várt eredményeket kap, olvassa el az Azure CLI sikeres használatát ismertető témakört.
Következő lépések
A Microsoft Entra szolgáltatásnévvel kapcsolatos további információkért tekintse meg az alkalmazás- és szolgáltatásnév-objektumokat.
A hitelesítő adatok frissítéséről további információt az AKS szolgáltatásnév hitelesítő adatainak frissítése vagy elforgatása című témakörben talál.