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

  1. 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"
    }
    
  2. Másolja ki a kimenet értékeitappId.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 az appId előző szakaszhoz kapott kimenetet és password 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á egy appId 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.