Helm-diagramok leküldése és lekérése egy Azure-tárolóregisztrációs adatbázisba
A Kubernetes-alkalmazások gyors kezeléséhez és üzembe helyezéséhez használhatja a nyílt forráskódú Helm-csomagkezelőt. A Helm használatával az alkalmazáscsomagok diagramokként vannak definiálva, amelyeket egy Helm-diagramtárházban gyűjtünk össze és tárolunk.
Ez a cikk bemutatja, hogyan üzemeltethet Helm-diagramtárakat egy Azure-tárolóregisztrációs adatbázisban Helm 3-parancsokkal, és hogyan tárolhat diagramokat OCI-összetevőkként. Sok esetben saját diagramokat hozhat létre és tölthet fel a fejlesztendő alkalmazásokhoz. A saját Helm-diagramok készítésével kapcsolatos további információkért tekintse meg a diagramsablon fejlesztői útmutatóját. Egy meglévő Helm-diagramot egy másik Helm-adattárból is tárolhat.
Fontos
Ez a cikk Helm 3-parancsokkal lett frissítve. A Helm 3.7 tartalmazza a Helm CLI-parancsok módosításait és a Helm 3 korábbi verzióiban bevezetett OCI-támogatást. A tervezés helm
előrehalad a verzióval. Javasoljuk, hogy a 3.7.2-s vagy újabb verziót használja.
Helm 3 vagy Helm 2?
A Helm-diagramok tárolásához, kezeléséhez és telepítéséhez parancsokat kell használnia a Helm CLI-ben. A Helm főbb kiadásai közé tartozik a Helm 3 és a Helm 2. A verzióeltérésekkel kapcsolatos részletekért tekintse meg a verzióval kapcsolatos gyakori kérdéseket.
A Helm 3 használatával Helm-diagramokat kell üzemeltetni az Azure Container Registryben. A Helm 3-at a következőkkel használhatja:
- Helm-diagramokat tárolhat és kezelhet adattárakban egy Azure-tárolóregisztrációs adatbázisban
- A Helm-diagramok tárolása a beállításjegyzékben OCI-összetevőkként. Az Azure Container Registry ga-támogatást nyújt az OCI-összetevőkhöz, beleértve a Helm-diagramokat is.
- Hitelesítés a beállításjegyzékkel a vagy
az acr login
parancshelm registry login
használatával. - Parancsok használata
helm
Helm-diagramok leküldéséhez, lekéréséhez és kezeléséhez egy beállításjegyzékben - Diagramok
helm install
telepítése kubernetes-fürtökre a beállításjegyzékből.
Szolgáltatások támogatása
Az Azure Container Registry bizonyos Helm-diagramkezelési funkciókat támogat attól függően, hogy a Helm 3 (jelenlegi) vagy a Helm 2 (elavult) verziót használja-e.
Szolgáltatás | Helm 2 | Helm 3 |
---|---|---|
Diagramok kezelése parancsokkal az acr helm |
✔️ | |
Diagramok tárolása OCI-összetevőkként | ✔️ | |
Diagramok kezelése parancsokkal az acr repository és az Adattárak panellel az Azure Portalon |
✔️ |
Megjegyzés:
A Helm 3-as verziójától az az acr helm-parancsok elavultak a Helm 2-ügyfélhez. A parancs eltávolítását megelőzően legalább 3 hónapos értesítést küldünk.
A diagram verziókompatibilitása
Az alábbi Helm-diagramverziók tárolhatók az Azure Container Registryben, és a Helm 2 és a Helm 3 ügyfelek telepíthetők.
Verzió | Helm 2 | Helm 3 |
---|---|---|
apiVersion v1 | ✔️ | ✔️ |
apiVersion v2 | ✔️ |
Migrálás a Helm 2-ről a Helm 3-ra
Ha korábban a Helm 2 és az Azure Container Registry használatával tárolt és üzembe helyezett diagramokat, javasoljuk, hogy migráljon a Helm 3-ba. See:
- A Helm 2-3 migrálása a Helm dokumentációjában.
- A beállításjegyzék migrálása Helm OCI-összetevők tárolására, a cikk későbbi részében
Előfeltételek
A cikk forgatókönyvéhez a következő erőforrásokra van szükség:
- Azure-tárolóregisztrációs adatbázis az Azure-előfizetésben. Szükség esetén hozzon létre egy beállításjegyzéket az Azure Portal vagy az Azure CLI használatával.
- Helm-ügyfél 3.7-es vagy újabb verziója – Futtassa
helm version
az aktuális verzió megkereséséhez. A Helm telepítésével és frissítésével kapcsolatos további információkért lásd a Helm telepítését ismertető témakört. Ha a Helm 3 korábbi verziójáról frissít, tekintse át a kibocsátási megjegyzéseket. - Egy Kubernetes-fürt , ahol Helm-diagramot fog telepíteni. Szükség esetén hozzon létre egy AKS-fürtöt az Azure CLI,az Azure PowerShell vagy az Azure Portal használatával.
- Azure CLI 2.0.71-es vagy újabb verzió – Futtassa
az --version
a verzió megkereséséhez. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Helm-ügyfél beállítása
helm version
A parancs használatával ellenőrizze, hogy telepítette-e a Helm 3-at:
helm version
Megjegyzés:
A jelzett verziónak legalább 3.8.0-snak kell lennie, mivel a korábbi verziók OCI-támogatása kísérleti volt.
Állítsa be a következő környezeti változókat a célregisztrációs adatbázishoz. A ACR_NAME a beállításjegyzék erőforrásának neve. Ha az ACR-beállításjegyzék URL-címe myregistry.azurecr.io, állítsa a ACR_NAME a myregistry értékre
ACR_NAME=<container-registry-name>
Mintadiagram létrehozása
Hozzon létre egy tesztdiagramot a következő parancsokkal:
mkdir helmtest
cd helmtest
helm create hello-world
Alapszintű példaként módosítsa a könyvtárat a templates
mappára, és először törölje ott a tartalmat:
cd hello-world/templates
rm -rf *
templates
A mappában hozzon létre egy , nevű configmap.yaml
fájlt a következő parancs futtatásával:
cat <<EOF > configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: hello-world-configmap
data:
myvalue: "Hello World"
EOF
A példa létrehozásáról és futtatásáról további információt a Helm Docs első lépései című témakörben talál.
Diagram mentése helyi archívumba
Módosítsa a könyvtárat az hello-world
alkönyvtárra. Ezután futtassa helm package
a diagram helyi archívumba mentéséhez.
Az alábbi példában a diagramot a program a következő névvel és verzióval Chart.yaml
menti:
cd ..
helm package .
A kimenet a következőhöz hasonló:
Successfully packaged chart and saved it to: /my/path/hello-world-0.1.0.tgz
Hitelesítés a beállításjegyzékkel
Futtatás helm registry login
a beállításjegyzékkel való hitelesítéshez. A beállításjegyzékben a forgatókönyvnek megfelelő hitelesítő adatokat adhat át, például a szolgáltatásnév hitelesítő adatait, a felhasználói identitást vagy egy tárház hatókörű jogkivonatot.
- Hitelesítés a Microsoft Entra szolgáltatásnévvel lekéréses és leküldéses engedélyekkel (AcrPush szerepkörrel) a beállításjegyzékbe.
SERVICE_PRINCIPAL_NAME=<acr-helm-sp> ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv) PASSWORD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME \ --scopes $(az acr show --name $ACR_NAME --query id --output tsv) \ --role acrpush \ --query "password" --output tsv) USER_NAME=$(az identity show -n $SERVICE_PRINCIPAL_NAME -g $RESOURCE_GROUP_NAME --subscription $SUBSCRIPTION_ID --query "clientId" -o tsv)
- Hitelesítse magát az egyéni Microsoft Entra-identitással a Helm-diagramok leküldéséhez és lekéréséhez egy AD-jogkivonat használatával.
USER_NAME="00000000-0000-0000-0000-000000000000" PASSWORD=$(az acr login --name $ACR_NAME --expose-token --output tsv --query accessToken)
- Hitelesítés tárház hatókörű jogkivonattal (előzetes verzió).
USER_NAME="helmtoken" PASSWORD=$(az acr token create -n $USER_NAME \ -r $ACR_NAME \ --scope-map _repositories_admin \ --only-show-errors \ --query "credentials.passwords[0].value" -o tsv)
- Ezután adja meg a hitelesítő adatokat.
helm registry login
helm registry login $ACR_NAME.azurecr.io \ --username $USER_NAME \ --password $PASSWORD
Diagram leküldése a beállításjegyzékbe OCI-összetevőként
Futtassa a helm push
Helm 3 parancssori felületének parancsát a diagramarchívum teljes körűen minősített céladattárba való leküldéséhez. Különítse el a diagramnevekben szereplő szavakat, és csak kisbetűket és számokat használjon. Az alábbi példában a céladattár névtere a helm/hello-world
következő, a diagram pedig címkézett 0.1.0
:
helm push hello-world-0.1.0.tgz oci://$ACR_NAME.azurecr.io/helm
Sikeres leküldés után a kimenet a következőhöz hasonló:
Pushed: <registry>.azurecr.io/helm/hello-world:0.1.0
digest: sha256:5899db028dcf96aeaabdadfa5899db02589b2899b025899b059db02
Diagramok listázása az adattárban
Az Azure-tárolóregisztrációs adatbázisban tárolt képekhez hasonlóan az az acr-adattár parancsaival is megjelenítheti a diagramokat, valamint a diagramcímkéket és -jegyzékeket tároló adattárakat.
Futtassa például az az acr-adattár showt az előző lépésben létrehozott adattár tulajdonságainak megtekintéséhez:
az acr repository show \
--name $ACR_NAME \
--repository helm/hello-world
A kimenet a következőhöz hasonló:
{
"changeableAttributes": {
"deleteEnabled": true,
"listEnabled": true,
"readEnabled": true,
"writeEnabled": true
},
"createdTime": "2021-10-05T12:11:37.6701689Z",
"imageName": "helm/hello-world",
"lastUpdateTime": "2021-10-05T12:11:37.7637082Z",
"manifestCount": 1,
"registry": "mycontainerregistry.azurecr.io",
"tagCount": 1
}
Futtassa az az acr manifest list-metadata parancsot az adattárban tárolt diagram részleteinek megtekintéséhez. Például:
az acr manifest list-metadata \
--registry $ACR_NAME \
--name helm/hello-world
Az ebben a példában rövidített kimenet a következőt configMediaType
application/vnd.cncf.helm.config.v1+json
jeleníti meg:
[
{
[...]
"configMediaType": "application/vnd.cncf.helm.config.v1+json",
"createdTime": "2021-10-05T12:11:37.7167893Z",
"digest": "sha256:0c03b71c225c3ddff53660258ea16ca7412b53b1f6811bf769d8c85a1f0663ee",
"imageSize": 3301,
"lastUpdateTime": "2021-10-05T12:11:37.7167893Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"tags": [
"0.1.0"
]
Helm-diagram telepítése
Futtassa helm install
a beállításjegyzékbe leküldött Helm-diagram telepítését. A rendszer a paraméterrel adja át a diagramcímkét --version
. Adjon meg egy kiadási nevet, például a myhelmtestet, vagy adja meg a paramétert --generate-name
. Például:
helm install myhelmtest oci://$ACR_NAME.azurecr.io/helm/hello-world --version 0.1.0
A sikeres diagramtelepítés utáni kimenet a következőhöz hasonló:
NAME: myhelmtest
LAST DEPLOYED: Tue Oct 4 16:59:51 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
A telepítés ellenőrzéséhez futtassa a helm get manifest
parancsot.
helm get manifest myhelmtest
A parancs a sablonfájl YAML-adatait configmap.yaml
adja vissza.
Futtassa helm uninstall
a diagram kiadásának eltávolításához a fürtön:
helm uninstall myhelmtest
Diagram lekérése a helyi archívumba
Igény szerint lekérhet egy diagramot a tárolóregisztrációs adatbázisból egy helyi archívumba a használatával helm pull
. A rendszer a paraméterrel adja át a diagramcímkét --version
. Ha az aktuális útvonalon helyi archívum található, ez a parancs felülírja azt.
helm pull oci://$ACR_NAME.azurecr.io/helm/hello-world --version 0.1.0
Diagram törlése a beállításjegyzékből
Ha törölni szeretne egy diagramot a tárolóregisztrációs adatbázisból, használja az az acr-adattár törlési parancsát. Futtassa a következő parancsot, és erősítse meg a műveletet, amikor a rendszer kéri:
az acr repository delete --name $ACR_NAME --image helm/hello-world:0.1.0
A beállításjegyzék migrálása Helm OCI-összetevők tárolására
Ha korábban diagramtárként állította be az Azure Container Registryt a Helm 2 és a az acr helm
parancsok használatával, javasoljuk, hogy frissítsen a Helm 3-ügyfélre. Ezután kövesse az alábbi lépéseket a diagramok OCI-összetevőkként való tárolásához a beállításjegyzékben.
Fontos
- Miután elvégezte a Helm 2-stílusú (index.yaml-alapú) diagramtárakból OCI-összetevők adattáraiba való migrálást, a Helm CLI-vel és
az acr repository
a parancsokkal kezelheti a diagramokat. Lásd a cikk korábbi szakaszait. - A Helm OCI-összetevő-adattárak nem felderíthetők Helm-parancsokkal, például
helm search
éshelm repo list
. A diagramok OCI-összetevőkként való tárolására használt Helm-parancsokról a Helm dokumentációjában talál további információt.
OCI-támogatás engedélyezése (alapértelmezés szerint engedélyezve a Helm 3.8.0-s verzióban)
Győződjön meg arról, hogy a Helm 3-ügyfelet használja:
helm version
Ha a Helm 3.8.0-s vagy újabb verzióját használja, ez alapértelmezés szerint engedélyezve van. Ha alacsonyabb verziót használ, engedélyezheti az OCI támogatását a környezeti változó beállításához:
export HELM_EXPERIMENTAL_OCI=1
Aktuális diagramok listázása
Sorolja fel a beállításjegyzékben jelenleg tárolt diagramokat, itt a myregistry nevet:
helm search repo myregistry
A kimenet a diagramokat és a diagramverziókat jeleníti meg:
NAME CHART VERSION APP VERSION DESCRIPTION
myregistry/ingress-nginx 3.20.1 0.43.0 Ingress controller for Kubernetes...
myregistry/wordpress 9.0.3 5.3.2 Web publishing platform for building...
[...]
Helyi lekéréses diagramarchívumok
Az adattár minden diagramjához húzza le helyben a diagramarchívumot, és jegyezze fel a fájlnevet:
helm pull myregisry/ingress-nginx
ls *.tgz
Létrejön egy helyi diagramarchívum, például ingress-nginx-3.20.1.tgz
.
Diagramok leküldése OCI-összetevőkként a beállításjegyzékbe
Jelentkezzen be a beállításjegyzékbe:
az acr login --name $ACR_NAME
Minden diagramarchívum leküldése a beállításjegyzékbe. Példa:
helm push ingress-nginx-3.20.1.tgz oci://$ACR_NAME.azurecr.io/helm
A diagramok leküldése után győződjön meg arról, hogy a beállításjegyzékben van tárolva:
az acr repository list --name $ACR_NAME
Az összes diagram leküldése után szükség esetén távolítsa el a Helm 2 stílusú diagramtárházat a beállításjegyzékből. Ezzel csökkenti a tárolóhelyet a beállításjegyzékben:
helm repo remove $ACR_NAME
Következő lépések
- A Helm-diagramok létrehozásáról és üzembe helyezéséről további információt a Helm-diagramok fejlesztése című témakörben talál.
- További információ az alkalmazások Helmrel való telepítéséről az Azure Kubernetes Service-ben (AKS).
- A Helm-diagramok a tároló buildelési folyamatának részeként használhatók. További információ: Az Azure Container Registry-feladatok használata.