Tárolók létrehozása, tesztelése és üzembe helyezése Azure Kubernetes Service (AKS) számára a GitHub Actions használatával
GitHub Actions rugalmasan hozhat létre automatizált szoftverfejlesztési életciklus-munkafolyamatokat. Több Kubernetes-műveletet is használhat a tárolókban való üzembe helyezéshez Azure Container Registry (ACR) és Azure Kubernetes Service (AKS) között GitHub Actions.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Ha még nincs fiókja, hozzon létre ingyenes fiókot.
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet.
- A GitHub Actions használatakor konfigurálnia kell az Azure és a GitHub-adattár közötti integrációt. Az integráció konfigurálásához lásd: Csatlakozás az Azure-hoz GitHub Actions használatával.
- Egy meglévő AKS-fürt csatolt ACR-sel. Ha nem rendelkezik ilyennel, olvassa el a Hitelesítés ACR-sel az AKS-ből című cikket.
GitHub Actions az AKS-hez
A GiHub Actions segítségével automatizálhatja a szoftverfejlesztési munkafolyamatokat a GitHubon belül. További információ: GitHub Actions az Azure-hoz.
Az alábbi táblázat az AKS-hez elérhető műveleteket sorolja fel:
Név | Leírás | További részletek |
---|---|---|
azure/aks-set-context |
Állítsa be a cél AKS-fürtkörnyezetet, hogy más műveletek kubectl-parancsokat használjanak vagy futtassanak. | azure/aks-set-context |
azure/k8s-set-context |
Állítsa be a cél Kubernetes-fürtkörnyezetet, hogy a többi művelet kubectl-parancsokat használjon vagy futtasson. | azure/k8s-set-context |
azure/k8s-bake |
A Helm, a kustomize vagy a kompose használatával történő üzembe helyezéshez használandó jegyzékfájlt sütheti. | azure/k8s-bake |
azure/k8s-create-secret |
Hozzon létre egy általános titkos kulcsot vagy docker-registry titkos kulcsot a Kubernetes-fürtben. | azure/k8s-create-secret |
azure/k8s-deploy |
Jegyzékfájlokat helyezhet üzembe Kubernetes-fürtökön. | azure/k8s-deploy |
azure/k8s-lint |
A jegyzékfájlok ellenőrzése/lintálása. | azure/k8s-lint |
azure/setup-helm |
Telepítse a Helm bináris egy adott verzióját a futóra. | azure/setup-helm |
azure/setup-kubectl |
Telepítse a kubectl egy adott verzióját a futóra. | azure/setup-kubectl |
azure/k8s-artifact-substitute |
Frissítse a tárolórendszerképek címkéjét vagy kivonatát. | azure/k8s-artifact-substitute |
azure/aks-create-action |
Hozzon létre egy AKS-fürtöt a Terraform használatával. | azure/aks-create-action |
azure/aks-github-runner |
Saját üzemeltetésű ügynökök beállítása GitHub Actions. | azure/aks-github-runner |
azure/acr-build |
Tárolók létrehozása az ACR használatával. | azure/acr-build |
A GitHub Actions használata az AKS-sel
Például a GitHub Actions használatával üzembe helyezhet egy alkalmazást az AKS-fürtön minden alkalommal, amikor módosítást küld a GitHub-adattárba. Ez a példa az Azure Vote alkalmazást használja.
Megjegyzés
Ez a példa egy szolgáltatásnevet használ az ACR- és AKS-fürttel való hitelesítéshez. Másik lehetőségként konfigurálhatja az Open ID Connectet (OIDC), és frissítheti a műveletet az azure/login
OIDC használatára. További információ: Azure Login beállítása OpenID Connect-hitelesítéssel.
Elágazás és az adattár frissítése
Nyissa meg az Azure Vote-adattárat , és válassza az Elágazás lehetőséget.
Frissítse a parancsot
azure-vote-all-in-one-redis.yaml
, hogy az ACR-t használja aazure-vote-front
rendszerképhez. Cserélje le a<registryName>
elemet a tárolójegyzék nevére.... containers: - name: azure-vote-front image: <registryName>.azurecr.io/azuredocs/azure-vote-front:v1 ...
Véglegesítse a frissítettet
azure-vote-all-in-one-redis.yaml
az adattárban.
Titkos kulcsok létrehozása
Hozzon létre egy szolgáltatásnevet az erőforráscsoport eléréséhez a szerepkörrel a
Contributor
az ad sp create-for-rbac
paranccsal. Cserélje le<SUBSCRIPTION_ID>
a elemet az Azure-fiók előfizetés-azonosítójára és<RESOURCE_GROUP>
az ACR-t tartalmazó erőforráscsoport nevére.az ad sp create-for-rbac \ --name "ghActionAzureVote" \ --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> \ --role Contributor \ --json-auth
A kimenetnek az alábbi példakimenethez hasonlóan kell kinéznie:
{ "clientId": <clientId>, "clientSecret": <clientSecret>, "subscriptionId": <subscriptionId>, "tenantId": <tenantId>, ... }
Lépjen a GitHub-adattár beállításaihoz, és válassza a Biztonsági>titkos kódok és változók>Műveletek lehetőséget.
Minden titkos kódhoz válassza az Új adattár titkos kódja lehetőséget, és adja meg a titkos kód nevét és értékét.
Titkos név Titkos kód értéke AZURE_CREDENTIALS A parancs teljes JSON-kimenete az ad sp create-for-rbac
.service_principal A értéke <clientId>
.service_principal_password A értéke <clientSecret>
.előfizetést A értéke <subscriptionId>
.Bérlő A értéke <tenantId>
.registry A beállításjegyzék neve. repository azuredocs resource_group Az erőforráscsoport neve. cluster_name A fürt neve.
További információ a titkos kódok létrehozásáról: Titkosított titkos kódok.
Műveletfájl létrehozása
Az adattárban hozzon létre egy
.github/workflows/main.yml
elemet, és illessze be a következő tartalmat:name: build_deploy_aks on: push: paths: - "azure-vote/**" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 - name: ACR build id: build-push-acr uses: azure/acr-build@v1 with: service_principal: ${{ secrets.service_principal }} service_principal_password: ${{ secrets.service_principal_password }} tenant: ${{ secrets.tenant }} registry: ${{ secrets.registry }} repository: ${{ secrets.repository }} image: azure-vote-front folder: azure-vote branch: master tag: ${{ github.sha }} - name: Azure login id: login uses: azure/login@v1.4.3 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Set AKS context id: set-context uses: azure/aks-set-context@v3 with: resource-group: '${{ secrets.resource_group }}' cluster-name: '${{ secrets.cluster_name }}' - name: Setup kubectl id: install-kubectl uses: azure/setup-kubectl@v3 - name: Deploy to AKS id: deploy-aks uses: Azure/k8s-deploy@v4 with: namespace: 'default' manifests: | azure-vote-all-in-one-redis.yaml images: '${{ secrets.registry }}.azurecr.io/${{ secrets.repository }}/azure-vote-front:${{ github.sha }}' pull-images: false
A
on
szakasz a műveletet kiváltó eseményt tartalmazza. A példafájlban a művelet akkor aktiválódik, amikor a rendszer módosítást küld aazure-vote
könyvtárba.A
steps
szakasz minden egyes különböző műveletet tartalmaz:- A kivétel forráskódja a GitHub Actions Kivétel művelettel klónozza az adattárat.
- Az ACR build a Azure Container Registry Build Action használatával hozza létre és töltse fel a rendszerképet a regisztrációs adatbázisba.
- Az Azure-bejelentkezés az Azure Bejelentkezési művelet használatával jelentkezik be az Azure-fiókjába.
- Az AKS-környezet beállítása az Azure AKS Környezeti művelettel állítja be az AKS-fürt környezetét.
- A kubectl beállítása az Azure AKS Setup Kubectl Action használatával telepíti a kubectl-t a futóra.
- Az Üzembe helyezés az AKS-ben az Azure Kubernetes Deploy Action használatával helyezi üzembe az alkalmazást a Kubernetes-fürtön.
Véglegesítse a
.github/workflows/main.yml
fájlt az adattárban.A művelet működésének ellenőrzéséhez frissítse a
azure-vote/azure-vote/config_file.cfg
következő tartalommal:# UI Configurations TITLE = 'Azure Voting App' VOTE1VALUE = 'Fish' VOTE2VALUE = 'Dogs' SHOWHOST = 'false'
Véglegesítse a frissítettet
azure-vote/azure-vote/config_file.cfg
az adattárban.Az adattárban válassza a Műveletek lehetőséget, és ellenőrizze, hogy fut-e munkafolyamat. Ezután ellenőrizze, hogy a munkafolyamat zöld pipával rendelkezik-e, és hogy a frissített alkalmazás telepítve van-e a fürtön.
Következő lépések
Tekintse át az AKS következő kezdő munkafolyamatait. További információ: Kezdő munkafolyamatok használata.