Megosztás a következőn keresztül:


Üzembe helyezés privát tárolóregisztrációs adatbázisból a helyszíni Kubernetesbe a Azure Container Registry és az AKS Arc használatával

A következőre vonatkozik: Azure Stack HCI, 23H2-es verzió

Ez a cikk bemutatja, hogyan helyezhet üzembe tárolólemezképeket egy privát tárolóregisztrációs adatbázisból a Azure Container Registry használatával, amelyet a saját adatközpontjában futtathat az AKS Arc üzemelő példányaiban. Az üzembe helyezést az AKS által üzemeltetett helyszíni Kubernetes-fürtön végzi. Az Azure Container Registry tárolórendszerképek és összetevők kiépítését, tárolását és kezelését teszi lehetővé privát regisztrációs adatbázisokban, a tárolók minden típusú üzemelő példányához.

A cikk bemutatja, hogyan hozhat létre privát tárolóregisztrációs adatbázist az Azure-ban, és hogyan küldheti le a tárolórendszerképet a privát tárolóregisztrációs adatbázisba. Ezután üzembe helyezheti a privát beállításjegyzékből az AKS Arcban üzemeltetett helyszíni Kubernetes-fürtöt.

A Azure Container Registry kapcsolatos további információkért tekintse meg a Azure Container Registry dokumentációját.

Előfeltételek

Ellenőrizze, hogy rendelkezik-e a következő követelményekkel:

Privát tárolóregisztrációs adatbázis létrehozása az Azure-ban

Tárolóregisztrációs adatbázis létrehozásához kezdje egy erőforráscsoporttal. Az Azure-erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Hozzon létre egy erőforráscsoportot az az group create paranccsal. Az alábbi példa létrehoz egy erőforráscsoportot az eastus régióban:

az group create --name <RESOURCE_GROUP_NAME> --location eastus

Hozzon létre egy Container Registry-példányt az az acr create paranccsal, és adja meg a saját regisztrációs adatbázisnevét. A beállításjegyzék nevének egyedinek kell lennie az Azure-ban, és 5–50 alfanumerikus karaktert kell tartalmaznia. A cikk <acrName> további részében a tárolóregisztrációs adatbázis nevének helyőrzőjeként használjuk, de megadhatja a saját egyedi beállításjegyzék-nevét. Az alapszintű termékváltozat egy fejlesztési célokra optimalizált, költségoptimalizált belépési pont, amely a tárolás és az átviteli sebesség egyensúlyát biztosítja:

az acr create --resource-group <RESOURCE_GROUP_NAME> --name <REGISTRY_NAME> --sku Basic

A tárolóregisztrációs adatbázis létrehozása után az alábbi paranccsal hozzon létre egy szolgáltatásnevet, hogy a Kubernetesből elérhesse a tárolóregisztrációs adatbázist:

az ad sp create-for-rbac /
--scopes /subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RG_NAME>/providers/Microsoft.ContainerRegistry/registries/<REGISTRY_NAME> /
--role Contributor /
--name <SERVICE_PRINCIPAL_NAME>

Azure Container Registry három hozzáférési szerepkört támogat. A Közreműködő szerepkört leggyakrabban az alkalmazásfejlesztők használják. Valós helyzetekben azonban előfordulhat, hogy a szükséges hozzáférés típusától függően több szolgáltatásnevet is létre kell hoznia:

  • Közreműködő: Ez a szerepkör leküldéses és lekéréses hozzáférést biztosít az adattárhoz.
  • Olvasó: Ez a szerepkör csak lekéréses hozzáférést engedélyez az adattárhoz.
  • Tulajdonos: Ez a szerepkör lehetővé teszi szerepkörök hozzárendelését más felhasználókhoz az adattár leküldéses és lekéréses hozzáférése mellett.

Az előző parancsnak a következő szöveghez hasonló kimenetet kell létrehoznia:

{
"appId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"displayName": "akshci-service-principal",
"name": "http://akshci-service-principal",
"password": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"tenant": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

A szolgáltatásnév sikeres létrehozása után másolja az appId és a jelszót egy biztonságos helyre, hogy később használhassa az üzemelő példányban.

A szolgáltatásnevek és az Azure Container Registry használatával kapcsolatos további információért tekintse meg a szolgáltatásnevek az Azure Container Registryben való hitelesítését ismertető cikket.

Bejelentkezés a privát tárolóregisztrációs adatbázisba

A Container Registry-példány használatához először be kell jelentkeznie. A bejelentkezéshez használhatja az Azure CLI-t vagy a Docker CLI-t.

1. lehetőség: Bejelentkezés az Azure CLI-ből

Használja az az acr sign in parancsot, és adja meg a tárolóregisztrációs adatbázishoz rendelt egyedi nevet az előző lépésben:

az acr login --name <REGISTRY_NAME>

2. lehetőség: Bejelentkezés a Docker parancssori felületéről

Ha a Docker parancssori felületét szeretné használni a tárolóregisztrációs adatbázis eléréséhez, írja be a következő parancsot egy Bash- vagy PowerShell-terminálba:

docker login <REGISTRY_NAME>.azurecr.io -u <appId> -p <password>

Mindkét beállításnál a parancsnak egy sikeres bejelentkezést kell visszaadnia, amikor befejeződik.

Rendszerkép leküldése a tárolóregisztrációs adatbázisba

Miután sikeresen bejelentkezett, megkezdheti a rendszerkép leküldését a tárolóregisztrációs adatbázisba. Először futtassa a docker images parancsot a helyi gépen található képek listájának megtekintéséhez:

REPOSITORY TAG IMAGE ID CREATED SIZE

mcr.microsoft.com/azure-functions/dotnet 3.0 9f8ad1bdee67 5 months ago
540MB

poemfinder-app latest 2d9bef425603 6 months ago 208MB

Első lépésként címkézze fel a lemezképet a docker tag paranccsal, majd a dockerrel push küldje le a tárolóregisztrációs adatbázisba:

docker tag poemfinder-app <REGISTRY_NAME>.azurecr.io/poemfinder-app:v1.0

Ellenőrizze, hogy a rendszerkép megfelelően lett-e megjelölve a docker images parancs ismételt futtatásával. A megerősítés után futtassa a parancsot docker push a tárolóregisztrációs adatbázisba való leküldéshez az alábbiak szerint:

docker push <REGISTRY_NAME>.azurecr.io/poemfinder-app:v1.0

Annak ellenőrzéséhez, hogy a rendszerkép sikeresen le lett-e küldve a tárolóregisztrációs adatbázisba, futtassa a következő parancsot:

az acr repository list --name <REGISTRY_NAME>.azurecr.io --output table

Lemezkép üzembe helyezése a tárolóregisztrációs adatbázisból az AKS-ben

Ha a tárolórendszerképet a tárolóregisztrációs adatbázisból a Kubernetes-fürtbe szeretné telepíteni, hozzon létre Kubernetes-titkos kódokat a beállításjegyzék hitelesítő adatainak tárolásához. A Kubernetes egy rendszerkép lekéréses titkos kódját használja a beállításjegyzékben való hitelesítéshez szükséges információk tárolására. A tárolóregisztrációs adatbázis lekérési titkos kódjának létrehozásához meg kell adnia a szolgáltatásnév azonosítóját, a jelszót és a beállításjegyzék URL-címét:

kubectl create secret docker-registry <secret-name> \
--namespace <namespace> \
--docker-server=<REGISTRY_NAME>.azurecr.io \
--docker-username=<appId> \
--docker-password=<password>

A következő táblázat a bemeneti paramétereket ismerteti:

Érték Leírás
secret-name A rendszerkép neve lekéri a titkos kódot; például: acr-secret.
namespace Kubernetes-névtér, amelybe a titkos kulcsot be kell helyezni. Csak akkor szükséges, ha a titkos kulcsot nem az alapértelmezett névtérben szeretné elhelyezni.
<REGISTRY_NAME> A tárolóregisztrációs adatbázis neve. Például: myregistry. A --docker-server a regisztrációs adatbázis bejelentkezési kiszolgálójának teljes neve.
appId Annak a szolgáltatásnévnek az azonosítója, amelyet a Kubernetes a beállításjegyzék eléréséhez használ.
password Szolgáltatásnév jelszava.

A rendszerkép lekérési titkos kódjának létrehozása után kubernetes-podokat és üzembe helyezéseket hozhat létre. Adja meg a titkos kód imagePullSecrets nevét az üzembehelyezési fájlban, az alábbi példában látható módon:

apiVersion: v1
kind: Pod
metadata:
name: poemfinder-app
namespace: mydemoapps
spec:
containers:
 - name: poemfinder-app
   image: <REGISTRY_NAME>.azurecr.io/poemfinder-app:v1.0
   imagePullPolicy: IfNotPresent
 - imagePullSecrets:
   - name: acr-secret

Ebben a példában poemfinder-app:v1.0 a tárolóregisztrációs adatbázisból lekérni kívánt rendszerkép neve, a acr-secret beállításjegyzék eléréséhez létrehozott lekérési titkos kód neve. A pod üzembe helyezésekor a Kubernetes automatikusan lekéri a lemezképet a beállításjegyzékből, ha a rendszerkép még nincs jelen a fürtön.

A fenti podkonfigurációt mentheti egy fájlba, például pod-example.yaml fájlba, majd üzembe helyezheti a Kubernetesben az alábbiak szerint:

kubectl create -f pod-example.yaml

Annak ellenőrzéséhez, hogy a pod sikeresen létrejött-e a tárolóregisztrációs adatbázis tárolórendszerképével, futtassa a kubectl leírási pod <POD_NAME>, amelynek meg kell jelennie a pod létrehozásához használt tárolórendszerképnek.

Következő lépések