Oktatóanyag: Konfigurációk üzembe helyezése a GitOps használatával egy Azure Arc-kompatibilis Kubernetes-fürtön
Fontos
Ez az oktatóanyag a Flux v1-et tartalmazó GitOpshoz készült. A Flux v2-vel rendelkező GitOps mostantól elérhető az Azure Arc-kompatibilis Kuberneteshez és az Azure Kubernetes Service-fürtökhöz; nyissa meg a GitOps és a Flux v2 oktatóanyagát. Javasoljuk , hogy mihamarabb migráljon a Flux v2-re .
A 2024. január 1. előtt létrehozott Flux v1-alapú fürtkonfigurációs erőforrások támogatása 2025. május 24-én megszűnik. 2024. január 1-től kezdődően nem hozhat létre új Flux v1-alapú fürtkonfigurációs erőforrásokat.
Ebben az oktatóanyagban Flux v1-konfigurációkat fog alkalmazni a GitOps használatával egy Azure Arc-kompatibilis Kubernetes-fürtön. A következőket fogja megtanulni:
- Hozzon létre egy konfigurációt egy Azure Arc-kompatibilis Kubernetes-fürtön egy példa Git-adattár használatával.
- Ellenőrizze, hogy a konfiguráció sikeresen létrejött-e.
- Konfigurálás alkalmazása privát Git-adattárból.
- Ellenőrizze a Kubernetes konfigurációját.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Meglévő Azure Arc-kompatibilis Kubernetes-fürt.
- Ha még nem csatlakoztatott fürtöt, tekintse meg az Azure Arc-kompatibilis Kubernetes-fürt csatlakoztatása rövid útmutatót.
A funkció előnyeinek és architektúrájának ismerete. További információ a Konfigurációk és a GitOps – Azure Arc-kompatibilis Kubernetes-cikkben.
Telepítse az
k8s-configuration
1.0.0-s verzió >Azure CLI-bővítményét:az extension add --name k8s-configuration
Tipp.
Ha a
k8s-configuration
bővítmény már telepítve van, a következő paranccsal frissítheti a legújabb verzióra :az extension update --name k8s-configuration
Konfiguráció létrehozása
A cikkben használt példaadattár egy fürtoperátor személye köré van strukturálva. Az adattár jegyzékfájljai kiépítenek néhány névteret, üzembe helyezik a számítási feladatokat, és csapatspecifikus konfigurációt biztosítanak. Ha ezt az adattárat a GitOps használatával használja, a következő erőforrásokat hozza létre a fürtön:
- Névterek:
cluster-config
, ,team-a
team-b
- Felfejlődés:
arc-k8s-demo
- ConfigMap:
team-a/endpoints
A config-agent
lekérdezések az Azure-t kérdezik le az új vagy frissített konfigurációkról. Ez a feladat legfeljebb 5 percet vesz igénybe.
Ha privát adattárat társít a konfigurációval, hajtsa végre az alábbi lépéseket a Konfiguráció alkalmazása privát Git-adattárból című témakörben.
Fontos
Ez az oktatóanyag a Flux v1-et tartalmazó GitOpshoz készült. A Flux v2-vel rendelkező GitOps mostantól elérhető az Azure Arc-kompatibilis Kuberneteshez és az Azure Kubernetes Service-fürtökhöz; nyissa meg a GitOps és a Flux v2 oktatóanyagát. Javasoljuk , hogy mihamarabb migráljon a Flux v2-re .
A 2024. január 1. előtt létrehozott Flux v1-alapú fürtkonfigurációs erőforrások támogatása 2025. május 24-én megszűnik. 2024. január 1-től kezdődően nem hozhat létre új Flux v1-alapú fürtkonfigurációs erőforrásokat.
Az Azure parancssori felület használatával
Az Azure CLI-bővítmény k8s-configuration
használatával összekapcsolhat egy csatlakoztatott fürtöt a git-adattár példával.
Nevezze el ezt a konfigurációt
cluster-config
.Utasítsa az ügynököt, hogy helyezze üzembe az operátort a
cluster-config
névtérben.Adja meg az operátor
cluster-admin
engedélyeit.az k8s-configuration flux create --name cluster-config --cluster-name AzureArcTest1 --resource-group AzureArcTest --operator-instance-name cluster-config --operator-namespace cluster-config --repository-url https://github.com/Azure/arc-k8s-demo --scope cluster --cluster-type connectedClusters
{ "complianceStatus": { "complianceState": "Pending", "lastConfigApplied": "0001-01-01T00:00:00", "message": "{\"OperatorMessage\":null,\"ClusterState\":null}", "messageLevel": "3" }, "configurationProtectedSettings": {}, "enableHelmOperator": false, "helmOperatorProperties": null, "id": "/subscriptions/<sub id>/resourceGroups/<group name>/providers/Microsoft.Kubernetes/connectedClusters/<cluster name>/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cluster-config", "name": "cluster-config", "operatorInstanceName": "cluster-config", "operatorNamespace": "cluster-config", "operatorParams": "--git-readonly", "operatorScope": "cluster", "operatorType": "Flux", "provisioningState": "Succeeded", "repositoryPublicKey": "", "repositoryUrl": "https://github.com/Azure/arc-k8s-demo", "resourceGroup": "MyRG", "sshKnownHostsContents": "", "systemData": { "createdAt": "2020-11-24T21:22:01.542801+00:00", "createdBy": null, "createdByType": null, "lastModifiedAt": "2020-11-24T21:22:01.542801+00:00", "lastModifiedBy": null, "lastModifiedByType": null }, "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" }
Nyilvános Git-adattár használata
Paraméter | Formátum |
---|---|
--repository-url |
http[s]://server/repo[.git] |
Privát Git-adattár használata SSH-val és Fluxszal létrehozott kulcsokkal
Adja hozzá a Flux által létrehozott nyilvános kulcsot a Git-szolgáltató felhasználói fiókjához. Ha a rendszer a felhasználói fiók helyett hozzáadja a kulcsot az adattárhoz, használja git@
az URL-cím helyett user@
.
További részletekért ugorjon az Apply configuration from a private Git repository section (Konfiguráció alkalmazása egy privát Git-adattárból) szakaszra.
Paraméter | Formátum | Jegyzetek |
---|---|---|
--repository-url |
ssh://user@server/repo[.git] vagy user@server:repo[.git] | git@ helyettesítheti user@ |
Privát Git-adattár használata SSH-val és felhasználó által megadott kulcsokkal
Közvetlenül vagy egy fájlban adja meg a saját titkos kulcsát. A kulcsnak PEM formátumban kell lennie, és új vonallal (\n) kell végződnie.
Adja hozzá a társított nyilvános kulcsot a Git-szolgáltató felhasználói fiókjához. Ha a kulcs a felhasználói fiók helyett az adattárhoz van hozzáadva, használja git@
a következő helyett user@
: .
További részletekért ugorjon az Apply configuration from a private Git repository section (Konfiguráció alkalmazása egy privát Git-adattárból) szakaszra.
Paraméter | Formátum | Jegyzetek |
---|---|---|
--repository-url |
ssh://user@server/repo[.git] vagy user@server:repo[.git] | git@ helyettesítheti user@ |
--ssh-private-key |
base64 kódolású kulcs PEM formátumban | Kulcs közvetlen megadása |
--ssh-private-key-file |
a helyi fájl teljes elérési útja | Adja meg a PEM-formátumkulcsot tartalmazó helyi fájl teljes elérési útját |
Privát Git-gazdagép használata SSH-val és felhasználó által biztosított, ismert gazdagépekkel
A Flux-operátor az ismert gazdagépek fájljában tárolja a gyakori Git-gazdagépek listáját a Git-adattár SSH-kapcsolat létrehozása előtti hitelesítéséhez. Ha nem gyakori Git-adattárat vagy saját Git-gazdagépet használ, megadhatja a gazdagépkulcsot, hogy a Flux azonosítani tudja az adattárat.
A titkos kulcsokhoz hasonlóan közvetlenül vagy fájlban is megadhatja known_hosts tartalmát. Saját tartalom biztosításakor használja a known_hosts tartalomformátum specifikációit, valamint a fenti SSH-kulcsforgatókönyvek egyikét.
Paraméter | Formátum | Jegyzetek |
---|---|---|
--repository-url |
ssh://user@server/repo[.git] vagy user@server:repo[.git] | git@ helyettesítheti user@ |
--ssh-known-hosts |
base64 kódolású | Ismert gazdagépek tartalmának közvetlen biztosítása |
--ssh-known-hosts-file |
a helyi fájl teljes elérési útja | Ismert gazdagépek tartalmának megadása helyi fájlban |
Privát Git-adattár használata HTTPS-lel
Paraméter | Formátum | Jegyzetek |
---|---|---|
--repository-url |
https://server/repo[.git] | HTTPS alapszintű hitelesítéssel |
--https-user |
nyers vagy base64 kódolású | HTTPS-felhasználónév |
--https-key |
nyers vagy base64 kódolású | HTTPS személyes hozzáférési jogkivonat vagy jelszó |
Feljegyzés
- A Helm operátordiagram 1.2.0+-os verziója támogatja a HTTPS Helm privát hitelesítését.
- A HTTPS Helm-kiadás nem támogatott a felügyelt AKS-fürtök esetében.
- Ha a Fluxnak a Proxyn keresztül kell elérnie a Git-adattárat, frissítenie kell az Azure Arc-ügynököket a proxybeállításokkal. További információ: Csatlakozás kimenő proxykiszolgáló használatával.
További paraméterek
A konfiguráció testreszabása a következő választható paraméterekkel:
Paraméter | Leírás |
---|---|
--enable-helm-operator |
Váltás a Helm-diagramtelepítések támogatásának engedélyezéséhez. |
--helm-operator-params |
A Helm-operátor diagramértékei (ha engedélyezve van). Például: --set helm.versions=v3 . |
--helm-operator-chart-version |
A Helm-operátor diagramverziója (ha engedélyezve van). Használja az 1.2.0-s verziót. Alapértelmezett: '1.2.0'. |
--operator-namespace |
Az operátor névterének neve. Alapértelmezett: 'default'. Max: 23 karakter. |
--operator-params |
Operátor paraméterei. Egy idézőjelen belül kell megadni. Például: --operator-params='--git-readonly --sync-garbage-collection --git-branch=main' |
A következő lehetőségek támogatottak --operator-params
:
Lehetőség | Leírás |
---|---|
--git-branch |
A Kubernetes-jegyzékekhez használható Git-adattár ága. Az alapértelmezett érték a "master". Az újabb adattárak gyökérága el van nevezve main , ebben az esetben be kell állítania --git-branch=main . |
--git-path |
A Flux Git-adattárában található relatív elérési út a Kubernetes-jegyzékek megkereséséhez. |
--git-readonly |
A Git-adattár írásvédettnek minősül. A Flux nem próbál meg írni hozzá. |
--manifest-generation |
Ha engedélyezve van, a Flux megkeresi a .flux.yaml fájlt, és Kustomize-t vagy más jegyzékgenerátorokat futtat. |
--git-poll-interval |
Az az időszak, amikor a Git-adattárat lekérdezi az új véglegesítések esetében. Az alapértelmezett érték 5m (5 perc). |
--sync-garbage-collection |
Ha engedélyezve van, a Flux törli a létrehozott, de a Gitben már nem található erőforrásokat. |
--git-label |
Címke a szinkronizálás előrehaladásának nyomon követéséhez. A Git-ág címkézésére szolgál. Az alapértelmezett szint a flux-sync . |
--git-user |
A Git-véglegesítés felhasználóneve. |
--git-email |
A Git véglegesítéséhez használandó e-mail. |
Ha nem szeretné, hogy a Flux az adattárba írjon, vagy --git-user
--git-email
nincs beállítva, akkor --git-readonly
automatikusan be lesz állítva.
További információkért tekintse meg a Flux dokumentációját.
Feljegyzés
Alapértelmezés szerint a fluxus a master
git-adattár ágából szinkronizálódik. Az újabb git-adattárakban azonban a gyökérág neve main
szerepel, ebben az esetben be kell állítania --git-branch=main
a --operator-params értéket.
Tipp.
Az Azure Portalon az Azure Arc-kompatibilis Kubernetes-erőforrás GitOps lapján hozhat létre konfigurációt.
A konfiguráció ellenőrzése
Az Azure CLI használatával ellenőrizze, hogy a konfiguráció sikeresen létrejött-e.
az k8s-configuration show --name cluster-config --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters
A konfigurációs erőforrás megfelelőségi állapottal, üzenetekkel és hibakeresési információkkal frissül.
{
"complianceStatus": {
"complianceState": "Installed",
"lastConfigApplied": "2020-12-10T18:26:52.801000+00:00",
"message": "...",
"messageLevel": "Information"
},
"configurationProtectedSettings": {},
"enableHelmOperator": false,
"helmOperatorProperties": {
"chartValues": "",
"chartVersion": ""
},
"id": "/subscriptions/<sub id>/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cluster-config",
"name": "cluster-config",
"operatorInstanceName": "cluster-config",
"operatorNamespace": "cluster-config",
"operatorParams": "--git-readonly",
"operatorScope": "cluster",
"operatorType": "Flux",
"provisioningState": "Succeeded",
"repositoryPublicKey": "...",
"repositoryUrl": "git://github.com/Azure/arc-k8s-demo.git",
"resourceGroup": "AzureArcTest",
"sshKnownHostsContents": null,
"systemData": {
"createdAt": "2020-12-01T03:58:56.175674+00:00",
"createdBy": null,
"createdByType": null,
"lastModifiedAt": "2020-12-10T18:30:56.881219+00:00",
"lastModifiedBy": null,
"lastModifiedByType": null
},
"type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations"
}
Konfiguráció létrehozásakor vagy frissítésekor néhány dolog történik:
- Az Azure Arc
config-agent
figyeli az Azure Resource Managert az új vagy frissített konfigurációkMicrosoft.KubernetesConfiguration/sourceControlConfigurations
() esetében, és észleli az újPending
konfigurációt. - A
config-agent
rendszer beolvassa a konfigurációs tulajdonságokat, és létrehozza a célnévteret. - Az Azure Arc
controller-manager
létrehoz egy Kubernetes-szolgáltatásfiókot, és leképezi a ClusterRoleBindingre vagy a RoleBindingre a megfelelő engedélyek (cluster
vagynamespace
hatókör) érdekében. Ezután üzembe helyezi a példányt.flux
- Ha az SSH-t Flux által generált kulcsokkal használja, létrehoz egy SSH-kulcsot,
flux
és naplózza a nyilvános kulcsot. - A
config-agent
jelentések állapota vissza a konfigurációs erőforráshoz az Azure-ban.
A kiépítési folyamat során a konfigurációs erőforrás néhány állapotváltozáson át fog haladni. A folyamat figyelése a az k8s-configuration show ...
fenti paranccsal:
Szakasz módosítása | Leírás |
---|---|
complianceStatus ->Pending |
A kezdeti és a folyamatban lévő állapotokat jelöli. |
complianceStatus ->Installed |
config-agent sikeresen konfigurálta a fürtöt, és hiba nélkül üzembe helyezte flux . |
complianceStatus ->Failed |
config-agent hiba történt az üzembe helyezéskor flux . A részleteket a válasz törzse complianceStatus.message tartalmazza. |
Konfiguráció alkalmazása privát Git-adattárból
Ha privát Git-adattárat használ, konfigurálnia kell az SSH nyilvános kulcsát az adattárban. Ön adja meg, vagy a Flux létrehozza az SSH nyilvános kulcsát. A nyilvános kulcsot konfigurálhatja az adott Git-adattár vagy azon a Git-felhasználó esetében, amely hozzáféréssel rendelkezik az adattárhoz.
Saját nyilvános kulcs lekérése
Ha saját SSH-kulcsokat hozott létre, akkor már rendelkezik titkos és nyilvános kulcsokkal.
Nyilvános kulcs lekérése az Azure CLI használatával
Ha a Flux hozza létre a kulcsokat, használja az alábbiakat az Azure CLI-ben.
az k8s-configuration show --resource-group <resource group name> --cluster-name <connected cluster name> --name <configuration name> --cluster-type connectedClusters --query 'repositoryPublicKey'
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAREDACTED"
Nyilvános kulcs lekérése az Azure Portalról
Ha a Flux létrehozza a kulcsokat, tekintse át az alábbiakat az Azure Portalon.
- Az Azure Portalon keresse meg a csatlakoztatott fürterőforrást.
- Az erőforráslapon válassza a "GitOps" lehetőséget, és tekintse meg a fürt konfigurációinak listáját.
- Válassza ki azt a konfigurációt, amely a privát Git-adattárat használja.
- A megnyíló környezeti ablakban másolja ki az adattár nyilvános kulcsát az ablak alján.
Nyilvános kulcs hozzáadása a GitHub használatával
Használja az alábbi lehetőségek egyikét:
1. lehetőség: Nyilvános kulcs hozzáadása a felhasználói fiókhoz (a fiókban lévő összes adattárra vonatkozik):
- Nyissa meg a GitHubot, és kattintson a profil ikonra a lap jobb felső sarkában.
- Kattintson a Settings (Beállítások) lehetőségre.
- Kattintson az SSH- és GPG-kulcsokra.
- Kattintson az Új SSH-kulcsra.
- Adjon meg egy címet.
- Illessze be a nyilvános kulcsot idézőjelek nélkül.
- Kattintson az SSH-kulcs hozzáadása elemre.
2. lehetőség: A nyilvános kulcs üzembehelyezési kulcsként való hozzáadása a Git-adattárhoz (csak erre az adattárra vonatkozik):
- Nyissa meg a GitHubot, és keresse meg az adattárat.
- Kattintson a Settings (Beállítások) lehetőségre.
- Kattintson az Üzembe helyezési kulcsokra.
- Kattintson az Üzembe helyezési kulcs hozzáadása elemre.
- Adjon meg egy címet.
- Jelölje be az Írási hozzáférés engedélyezése jelölőnégyzetet.
- Illessze be a nyilvános kulcsot idézőjelek nélkül.
- Kattintson a Hozzáadás gombra.
Nyilvános kulcs hozzáadása Azure DevOps-adattár használatával
Az alábbi lépések segítségével adhatja hozzá a kulcsot az SSH-kulcsaihoz:
- A jobb felső sarokban (a profilkép mellett) található Felhasználói beállítások csoportban kattintson az SSH nyilvános kulcsára.
- Válassza az + Új kulcs lehetőséget.
- Adjon meg egy nevet.
- Illessze be a nyilvános kulcsot idézőjelek nélkül.
- Kattintson a Hozzáadás gombra.
A Kubernetes konfigurációjának ellenőrzése
A példány telepítése után config-agent
a flux
Git-adattárban tárolt erőforrásoknak elkezdenek a fürtbe áramlani. Ellenőrizze, hogy a névterek, az üzemelő példányok és az erőforrások a következő paranccsal lettek-e létrehozva:
kubectl get ns --show-labels
NAME STATUS AGE LABELS
azure-arc Active 24h <none>
cluster-config Active 177m <none>
default Active 29h <none>
itops Active 177m fluxcd.io/sync-gc-mark=sha256.9oYk8yEsRwWkR09n8eJCRNafckASgghAsUWgXWEQ9es,name=itops
kube-node-lease Active 29h <none>
kube-public Active 29h <none>
kube-system Active 29h <none>
team-a Active 177m fluxcd.io/sync-gc-mark=sha256.CS5boSi8kg_vyxfAeu7Das5harSy1i0gc2fodD7YDqA,name=team-a
team-b Active 177m fluxcd.io/sync-gc-mark=sha256.vF36thDIFnDDI2VEttBp5jgdxvEuaLmm7yT_cuA2UEw,name=team-b
Láthatjuk, hogy team-a
a , team-b
, itops
és cluster-config
névterek lettek létrehozva.
Az flux
operátor üzembe lett helyezve a névtérben cluster-config
a konfigurációs erőforrás utasításainak megfelelően:
kubectl -n cluster-config get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
cluster-config 1/1 1 1 3h flux docker.io/fluxcd/flux:1.16.0 instanceName=cluster-config,name=flux
memcached 1/1 1 1 3h memcached memcached:1.5.15 name=memcached
További feltárás
A konfigurációs adattár részeként üzembe helyezett egyéb erőforrásokat a következő módon ismerheti meg:
kubectl -n team-a get cm -o yaml
kubectl -n itops get all
Az erőforrások eltávolítása
Konfiguráció törlése az Azure CLI vagy az Azure Portal használatával. A törlési parancs futtatása után a konfigurációs erőforrás azonnal törlődik az Azure-ban. A társított objektumok teljes törlésének a fürtből 10 percen belül meg kell történnie. Ha a konfiguráció eltávolításkor sikertelen állapotban van, a társított objektumok teljes törlése akár egy órát is igénybe vehet.
Ha töröl egy hatókörrel rendelkező namespace
konfigurációt, az Azure Arc nem törli a névteret a meglévő számítási feladatok feltörésének elkerülése érdekében. Szükség esetén manuálisan is törölheti ezt a névteret kubectl
.
az k8s-configuration delete --name cluster-config --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters
Feljegyzés
A fürt azon módosításai, amelyek a nyomon követett Git-adattárban végzett üzembe helyezések eredményeként történtek, nem törlődnek a konfiguráció törlésekor.
Fontos
Ez az oktatóanyag a Flux v1-et tartalmazó GitOpshoz készült. A Flux v2-vel rendelkező GitOps mostantól elérhető az Azure Arc-kompatibilis Kuberneteshez és az Azure Kubernetes Service-fürtökhöz; nyissa meg a GitOps és a Flux v2 oktatóanyagát. Javasoljuk , hogy mihamarabb migráljon a Flux v2-re .
A 2024. január 1. előtt létrehozott Flux v1-alapú fürtkonfigurációs erőforrások támogatása 2025. május 24-én megszűnik. 2024. január 1-től kezdődően nem hozhat létre új Flux v1-alapú fürtkonfigurációs erőforrásokat.
Következő lépések
Folytassa a következő oktatóanyaggal, amelyből megtudhatja, hogyan implementálhatja a CI/CD-t a GitOps használatával.