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


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

A következőkre vonatkozik: Azure Local, 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 az Azure Container Registry használatával, amelyet saját adatközpontjában futtathat az AKS Arc-környezetekben. Üzembe helyezheti az AKS által üzemeltetett helyszíni Kubernetes-fürtön. 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 magánregisztrációs adatbázisból az AKS Arcban üzemeltetett helyszíni Kubernetes-fürtöt.

Az Azure Container Registryről további információt az Azure Container Registry dokumentációjában talál.

Előfeltételek

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

  • A Kubernetes-fogalmak alapszintű ismerete.
  • Egy futó AKS-fürt.
  • Telepített Azure CLI
  • A helyi kubectl-környezet úgy van konfigurálva, hogy az AKS-fürtre mutasson.

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 kezdjen 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 beállításjegyzék-nevé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 szolgál, de saját egyedi beállításjegyzéknevet is megadhat. Az alapszintű termékváltozat egy költségoptimalizált belépési pont fejlesztési célokra, 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 érhesse el 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>

Az Azure Container Registry három hozzáférési szerepkört támogat. A közreműködői 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 a lekéréses hozzáférést teszi lehetővé 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 az alábbi 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 azonosítót és jelszót egy biztonságos helyre, hogy később használhassa az üzembe helyezés során.

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 bejelentkezési 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>

Bármelyik beállításnál a parancsnak 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-rendszerképek 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 rendszerké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-rendszerképek parancs ismételt futtatásával. A megerősítés után futtassa docker push a leküldést a tárolóregisztrációs adatbázisba 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 szeretné üzembe helyezni a Kubernetes-fürtön, hozzon létre Kubernetes Titkos kulcsokat a beállításjegyzék hitelesítő adatainak tárolásához. A Kubernetes egy ké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éses 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>

Az alábbi 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 beállításjegyzék bejelentkezési kiszolgálójának teljes neve.
appId Annak a szolgáltatásnévnek az azonosítója, amelyet a Kubernetes használ a beállításjegyzék eléréséhez.
password Egyszerű szolgáltatásjelszó.

A rendszerkép lekéréses 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, ahogyan az a következő példában látható:

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érendő rendszerkép neve, a acr-secret beállításjegyzék eléréséhez létrehozott lekéréses 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ürtben.

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ólemezképével, futtassa a kubectl leíró pod <POD_NAME>, amely a pod létrehozásához használt tárolórendszerképet jeleníti meg.

Következő lépések