Ü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:
- A Kubernetes-fogalmak alapszintű ismerete.
- Egy működő 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 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: