Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az útmutató bemutatja, hogyan használható a GitOps egy Kubernetes-fürtben. A Flux v2-vel rendelkező GitOps fürtbővítményként engedélyezve van az Azure Arc-kompatibilis Kubernetes-fürtökben vagy az Azure Kubernetes Service- (AKS-) fürtökben. A microsoft.flux fürtbővítmény telepítése után létrehozhat egy vagy több fluxConfigurations erőforrást, amely szinkronizálja a Git-adattár forrásait a fürttel, és beállítja a fürtöt a kívánt állapotra. A GitOps segítségével a Git-adattárat használhatja a fürtkonfiguráció és az alkalmazástelepítés igazságforrásaként.
Ebben az oktatóanyagban egy példa GitOps-konfigurációt használunk két kustomizációval, így láthatja, hogyan függhet az egyik kustomizáció a másiktól. A forgatókönyvtől függően szükség szerint további kustomizációkat és függőségeket adhat hozzá.
Mielőtt belevág, szánjon egy kis időt, hogy megtudja, hogyan működik a GitOps a Fluxszal.
Tipp.
Bár az oktatóanyag forrása egy Git-adattár, a Flux más gyakori fájlforrásokat is támogat, például a Helm-adattárakat, a gyűjtőket és az Azure Blob Storage-t.
Flux-konfigurációkat bicep, ARM-sablonok vagy Terraform AzAPI-szolgáltató használatával is létrehozhat. További információ: Microsoft.KubernetesConfiguration fluxConfigurations.
Alternatív megoldásként próbálja ki az új Microsoft GitOps ArgoCD-bővítményt. Az Argo CD egy népszerű nyílt forráskódú GitOps-eszköz, amely a Flux v2-hez képest eltérő funkciókat és képességeket biztosít.
Előfeltételek
Ha a GitOps használatával szeretne alkalmazásokat üzembe helyezni a Flux v2-vel, a következőkre van szüksége:
Azure Arc-kompatibilis Kubernetes-klaszterek
Egy Azure Arc-kompatibilis Kubernetes-kapcsolt fürt, amely teljesen működőképes. Az Arm64-alapú fürtök az 1.7.0-s verziótól
microsoft.fluxkezdve támogatottak.Tudja meg, hogyan csatlakoztathatja a Kubernetes-fürtöt az Azure Archoz. Ha kimenő proxyn keresztül kell csatlakoznia, győződjön meg róla, hogy proxybeállításokkal telepíti az Arc-ügynököket.
Olvasási és írási engedélyek az
Microsoft.Kubernetes/connectedClusterserőforrástípushoz.
Azure Kubernetes Szolgáltatás-fürtök
Egy MSI-alapú AKS-fürt, amely teljesen működőképes.
Fontos
Győződjön meg arról, hogy az AKS-fürt MSI-vel (nem SPN-vel) lett létrehozva, mert a
microsoft.fluxbővítmény nem működik SPN-alapú AKS-fürtökkel. Az új AKS-fürtökaz aks createesetében a fürt alapértelmezés szerint MSI-alapú. Az SPN-alapú fürtök MSI-vé konvertálásához futtassa a következőt:az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity. További információ: Felügyelt identitás használata az AKS-ben.Olvasási és írási engedélyek az
Microsoft.ContainerService/managedClusterserőforrástípushoz.
Mindkét fürttípus esetében gyakori
Olvasási és írási engedélyek az alábbi erőforrástípusokhoz:
Microsoft.KubernetesConfiguration/extensionsMicrosoft.KubernetesConfiguration/fluxConfigurations
Az Azure CLI 2.15-ös vagy újabb verziója. Telepítse az Azure CLI-t , vagy a következő parancsokkal frissítsen a legújabb verzióra:
az version az upgradeA Kubernetes parancssori kliens, kubectl.
kubectlaz Azure Cloud Shell használata esetén már telepítve van.Telepítse
kubectlhelyileg aaz aks install-clikövetkező paranccsal:az aks install-cliA következő Azure-erőforrás-szolgáltatók regisztrálása:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.ContainerService az provider register --namespace Microsoft.KubernetesConfigurationA regisztráció egy aszinkron folyamat, és legfeljebb 10 percet vehet igénybe. A regisztrációs folyamat figyeléséhez használja a következő parancsot:
az provider show -n Microsoft.KubernetesConfiguration -o table Namespace RegistrationPolicy RegistrationState --------------------------------- -------------------- ------------------- Microsoft.KubernetesConfiguration RegistrationRequired Registered
Verzió- és régiótámogatás
A GitOps jelenleg minden olyan régióban támogatott, amelyet az Azure Arc-kompatibilis Kubernetes támogat. A GitOps jelenleg az AKS által támogatott régiók egy részében támogatott. A GitOps szolgáltatás rendszeresen új támogatott régiókat ad hozzá.
A Flux v2 bővítmény legújabb verziója és az előző két verzió (N-2) támogatott. Általában azt javasoljuk, hogy a bővítmény legújabb verzióját használja.
A hálózatra vonatkozó követelmények
A GitOps-ügynököknek a megfelelő működés érdekében kimenő TCP-re van szükségük az adattár forrásához a 22-es (SSH) vagy a 443-as (HTTPS) porton. Az ügynököknek a következő kimenő URL-címekhez is hozzá kell férniük:
| Végpont (DNS) | Leírás |
|---|---|
https://management.azure.com |
Az ügynök és a Kubernetes konfigurálási szolgáltatása közötti kommunikációhoz szükséges. |
https://<region>.dp.kubernetesconfiguration.azure.com |
Az ügynök adatsíkvégpontja az állapot leküldéséhez és a konfigurációs információk lekéréséhez.
<region> Függ (a korábban említett támogatott régióktól). |
https://login.microsoftonline.com |
Az Azure Resource Manager-tokenek beolvasásához és frissítéséhez szükséges. |
https://mcr.microsoft.com |
A Flux-vezérlők tárolórendszerképeinek lekéréséhez szükséges. |
A CLI-bővítmények engedélyezése
Telepítse a legújabb k8s-configuration és k8s-extension CLI-bővítménycsomagokat:
az extension add -n k8s-configuration
az extension add -n k8s-extension
A csomagok frissítése a legújabb verziókra:
az extension update -n k8s-configuration
az extension update -n k8s-extension
Az összes telepített Azure CLI-bővítmény és verziójuk listájának megtekintéséhez használja a következő parancsot:
az extension list -o table
Experimental ExtensionType Name Path Preview Version
------------- -------------- ----------------- ----------------------------------------------------- -------- --------
False whl connectedk8s C:\Users\somename\.azure\cliextensions\connectedk8s False 1.2.7
False whl k8s-configuration C:\Users\somename\.azure\cliextensions\k8s-configuration False 1.5.0
False whl k8s-extension C:\Users\somename\.azure\cliextensions\k8s-extension False 1.1.0
Tipp.
Ha segítségre van szüksége a hibák elhárításához, tekintse meg az Azure Arc-kompatibilis Kubernetes-fürtök bővítményproblémáinak elhárításáról szóló GitOps (Flux v2) szakaszt.
Flux-konfiguráció alkalmazása
k8s-configuration Az Azure CLI-bővítmény vagy az Azure Portal használatával engedélyezheti a GitOpst egy AKS- vagy Arc-kompatibilis Kubernetes-fürtben. A bemutatóhoz használja a nyilvános gitops-flux2-kustomize-helm-mt adattárat .
Fontos
A bemutató adattár úgy lett kialakítva, hogy egyszerűsítse az oktatóanyag használatát, és bemutassa a főbb alapelveket. A naprakészen tartás érdekében az adattár időnként jelentős változásokat tapasztalhat verziófrissítések nyomán. Ezek a módosítások nem érintik az oktatóanyag új használatát, csak a korábbi alkalmazásokat. További információkért tekintse meg a jelentős változásra vonatkozó nyilatkozatot.
A következő példa a az k8s-configuration flux create parancs használatával alkalmaz egy Flux-konfigurációt egy fürtre, a következő értékekkel és beállításokkal.
- A fürtöt tartalmazó erőforráscsoport az
flux-demo-rg. - Az Azure Arc-fürt neve
flux-demo-arc. - A fürt típusa az Azure Arc (
-t connectedClusters), de ez a példa az AKS-sel (-t managedClusters) is működik. - A Flux-konfiguráció neve a következő
cluster-config: . - A konfiguráció telepítésének névtere a következő
cluster-config: . - A nyilvános Git-adattár URL-címe
https://github.com/Azure/gitops-flux2-kustomize-helm-mt. - A Git-tár ága
main. - A konfiguráció hatóköre:
cluster. Ez a hatókör engedélyeket ad az operátoroknak a teljes fürtön belüli módosítások végrehajtásához. Az oktatóanyag hatókörének használatáhoznamespacetekintse meg a szükséges módosításokat. - Két kustomizáció van megadva névvel
infraésapps. Mindegyik egy elérési úthoz van társítva az adattárban. - A
appskustomizáció ainfrakustomizációtól függ. (Ainfratestreszabásnak be kell fejeződnie, mielőtt aappstestreszabás futna.) - Állítsa be
prune=truemindkét kustomizációt. Ez a beállítás biztosítja, hogy a fürtre telepített Flux-objektumok törlődjenek, ha eltávolítják őket az adattárból, vagy ha a Flux-konfigurációt vagy a kustomizációkat törlik.
az k8s-configuration flux create -g flux-demo-rg \
-c flux-demo-arc \
-n cluster-config \
--namespace cluster-config \
-t connectedClusters \
--scope cluster \
-u https://github.com/Azure/gitops-flux2-kustomize-helm-mt \
--branch main \
--kustomization name=infra path=./infrastructure prune=true \
--kustomization name=apps path=./apps/staging prune=true dependsOn=\["infra"\]
A microsoft.flux bővítmény telepítve van a fürtre (ha még nem volt telepítve egy korábbi GitOps-telepítésben).
Tipp.
A az k8s-configuration flux create parancs üzembe helyezi a microsoft.flux bővítményt a fürtben, és létrehozza a konfigurációt. Bizonyos esetekben érdemes lehet külön létrehozni a fluxusbővítmény-példányt a konfigurációs erőforrások létrehozása előtt. Ehhez a az k8s-extension create paranccsal hozza létre a bővítmény egy példányát a fürtön.
Amikor a fluxuskonfiguráció először telepítve van, az kezdeti megfelelőségi állapot Pending vagy Non-compliant lehet, mert az egyeztetés még folyamatban van. Egy perc múlva újra lekérdezheti a konfigurációt a végleges megfelelőségi állapot megtekintéséhez.
az k8s-configuration flux show -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters
Az üzembe helyezés sikerességének ellenőrzéséhez futtassa a következő parancsot:
az k8s-configuration flux show -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters
Sikeres üzembe helyezés esetén a következő névterek jönnek létre:
-
flux-system: A Flux-bővítményvezérlőket tárolja. -
cluster-config: A Flux konfigurációs objektumait tárolja. -
nginx, ,podinforedis: A Git-adattár jegyzékfájljaiban leírt számítási feladatok névterei.
A névterek megerősítéséhez futtassa a következő parancsot:
kubectl get namespaces
A flux-system névtér tartalmazza a Flux-bővítmény objektumait:
- Azure Flux-vezérlők:
fluxconfig-agent,fluxconfig-controller - OSS Flux-vezérlők:
source-controller,kustomize-controller, ,helm-controllernotification-controller
A Flux-ügynöknek és a vezérlő podoknak futó állapotban kell lenniük. Ezt a következő paranccsal erősítse meg:
kubectl get pods -n flux-system
NAME READY STATUS RESTARTS AGE
fluxconfig-agent-9554ffb65-jqm8g 2/2 Running 0 21m
fluxconfig-controller-9d99c54c8-nztg8 2/2 Running 0 21m
helm-controller-59cc74dbc5-77772 1/1 Running 0 21m
kustomize-controller-5fb7d7b9d5-cjdhx 1/1 Running 0 21m
notification-controller-7d45678bc-fvlvr 1/1 Running 0 21m
source-controller-df7dc97cd-4drh2 1/1 Running 0 21m
A névtér cluster-config fluxus konfigurációs objektumokkal rendelkezik.
kubectl get crds
NAME CREATED AT
alerts.notification.toolkit.fluxcd.io 2022-04-06T17:15:48Z
arccertificates.clusterconfig.azure.com 2022-03-28T21:45:19Z
azureclusteridentityrequests.clusterconfig.azure.com 2022-03-28T21:45:19Z
azureextensionidentities.clusterconfig.azure.com 2022-03-28T21:45:19Z
buckets.source.toolkit.fluxcd.io 2022-04-06T17:15:48Z
connectedclusters.arc.azure.com 2022-03-28T21:45:19Z
customlocationsettings.clusterconfig.azure.com 2022-03-28T21:45:19Z
extensionconfigs.clusterconfig.azure.com 2022-03-28T21:45:19Z
fluxconfigs.clusterconfig.azure.com 2022-04-06T17:15:48Z
gitconfigs.clusterconfig.azure.com 2022-03-28T21:45:19Z
gitrepositories.source.toolkit.fluxcd.io 2022-04-06T17:15:48Z
helmcharts.source.toolkit.fluxcd.io 2022-04-06T17:15:48Z
helmreleases.helm.toolkit.fluxcd.io 2022-04-06T17:15:48Z
helmrepositories.source.toolkit.fluxcd.io 2022-04-06T17:15:48Z
imagepolicies.image.toolkit.fluxcd.io 2022-04-06T17:15:48Z
imagerepositories.image.toolkit.fluxcd.io 2022-04-06T17:15:48Z
imageupdateautomations.image.toolkit.fluxcd.io 2022-04-06T17:15:48Z
kustomizations.kustomize.toolkit.fluxcd.io 2022-04-06T17:15:48Z
providers.notification.toolkit.fluxcd.io 2022-04-06T17:15:48Z
receivers.notification.toolkit.fluxcd.io 2022-04-06T17:15:48Z
volumesnapshotclasses.snapshot.storage.k8s.io 2022-03-28T21:06:12Z
volumesnapshotcontents.snapshot.storage.k8s.io 2022-03-28T21:06:12Z
volumesnapshots.snapshot.storage.k8s.io 2022-03-28T21:06:12Z
websites.extensions.example.com 2022-03-30T23:42:32Z
Az alábbi parancsokkal erősítse meg a konfiguráció egyéb részleteit.
kubectl get fluxconfigs -A
NAMESPACE NAME SCOPE URL PROVISION AGE
cluster-config cluster-config cluster https://github.com/Azure/gitops-flux2-kustomize-helm-mt Succeeded 44m
kubectl get gitrepositories -A
NAMESPACE NAME URL READY STATUS AGE
cluster-config cluster-config https://github.com/Azure/gitops-flux2-kustomize-helm-mt True Fetched revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf 45m
kubectl get helmreleases -A
NAMESPACE NAME READY STATUS AGE
cluster-config nginx True Release reconciliation succeeded 66m
cluster-config podinfo True Release reconciliation succeeded 66m
cluster-config redis True Release reconciliation succeeded 66m
kubectl get kustomizations -A
NAMESPACE NAME READY STATUS AGE
cluster-config cluster-config-apps True Applied revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf 65m
cluster-config cluster-config-infra True Applied revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf 65m
A számítási feladatok a Git-adattárban lévő jegyzékekből vannak üzembe helyezve.
kubectl get deploy -n nginx
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-ingress-controller 1/1 1 1 67m
nginx-ingress-controller-default-backend 1/1 1 1 67m
kubectl get deploy -n podinfo
NAME READY UP-TO-DATE AVAILABLE AGE
podinfo 1/1 1 1 68m
kubectl get all -n redis
NAME READY STATUS RESTARTS AGE
pod/redis-master-0 1/1 Running 0 68m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/redis-headless ClusterIP None <none> 6379/TCP 68m
service/redis-master ClusterIP 10.0.13.182 <none> 6379/TCP 68m
NAME READY AGE
statefulset.apps/redis-master 1/1 68m
Annak meghatározása, hogy mely vezérlőket telepítsék a Flux fürtbővítménnyel.
Bizonyos esetekben érdemes lehet módosítani, hogy mely Flux-vezérlők legyenek telepítve a Flux-fürtbővítménnyel.
A source, helm, kustomizeés notification Flux vezérlők alapértelmezés szerint telepítve vannak. A Git-adattár frissítéséhez használt vezérlőket és image-automation vezérlőket, amikor új tárolólemezképek érhetők el, explicit módon engedélyezni kell.image-reflector
A parancs használatával k8s-extension módosíthatja az alapértelmezett beállításokat:
-
--config source-controller.enabled=<true/false>(alapértelmezetttrue) -
--config helm-controller.enabled=<true/false>(alapértelmezetttrue) -
--config kustomize-controller.enabled=<true/false>(alapértelmezetttrue) -
--config notification-controller.enabled=<true/false>(alapértelmezetttrue) -
--config image-automation-controller.enabled=<true/false>(alapértelmezettfalse) -
--config image-reflector-controller.enabled=<true/false>(alapértelmezettfalse)
Az értesítések letiltásához például beállíthatja a következőt notification-controller.enabledfalse: .
Ez a példaparancs telepíti a image-reflector és a image-automation vezérlőket. Ha a Flux-bővítmény automatikusan jött létre a Flux-konfiguráció első létrehozásakor, a bővítmény neve .flux
az k8s-extension create -g <cluster_resource_group> -c <cluster_name> -t <connectedClusters or managedClusters or provisionedClusters> --name flux --extension-type microsoft.flux --config image-automation-controller.enabled=true image-reflector-controller.enabled=true
AKS-fürtök hitelesítési módszereként a Kubelet-identitás használata
Az AKS-fürtök esetében az egyik használható hitelesítési mód a kubelet-identitás. Az AKS alapértelmezés szerint saját kubelet-identitást hoz létre a felügyelt erőforráscsoportban. Ha szeretné, használhat előre létrehozott kubelet felügyelt identitást. Ehhez adja hozzá a paramétert --config useKubeletIdentity=true a Flux-bővítmény telepítésekor.
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config useKubeletIdentity=true
A Red Hat OpenShift előkészítési útmutatója
A Flux-vezérlők nem root Biztonsági Kontextus Korlátozást igényelnek a podok klaszterre való megfelelő telepítéséhez. Ezeket a korlátozásokat a bővítmény üzembe helyezése előtt hozzá kell adni a fürthöz microsoft.flux .
NS="flux-system"
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:kustomize-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:helm-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:source-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:notification-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:image-automation-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:image-reflector-controller
A Flux előkészítéséhez szükséges OpenShift-útmutatóról további információt a Flux dokumentációjában talál.
Paraméterek használata
A Flux számos paramétert támogat a különböző forgatókönyvek engedélyezéséhez. A Flux által támogatott paraméterek leírását a flux hivatalos dokumentációjában találja. Az Azure Flux még nem támogatja az összes paramétert. Tudassa velünk, hogy hiányzik-e egy szükséges paraméter az Azure-implementációból.
Az elérhető paraméterekről és azok használatáról további információt a GitOps (Flux v2) által támogatott paraméterekben talál.
Helyi titkos hitelesítési referencia használata
Helyi titkos hitelesítési hivatkozás használatához a titkos kódnak ugyanabban a névtérben kell lennie, ahol az fluxConfiguration üzembe helyezve van. A titkos kódnak tartalmaznia kell a forráshoz szükséges összes hitelesítési paramétert is.
További információ a titkos kódok különböző fluxConfiguration forrásokhoz való létrehozásáról: Helyi titkos kód a forrással való hitelesítéshez.
Klaszterkonfiguráció kezelése a Flux Kustomize vezérlő használatával
A Flux Kustomize vezérlő a microsoft.flux fürtbővítmény részeként van telepítve. Lehetővé teszi a fürtkonfiguráció és az alkalmazás üzembe helyezésének deklaratív kezelését a Git-adattárból szinkronizált Kubernetes-jegyzékek használatával. Ezek a Kubernetes-jegyzékek opcionálisan kustomize.yaml fájlt is tartalmazhatnak .
A használati adatokért tekintse meg a következő erőforrásokat:
- Flux Kustomize vezérlő
- Referenciadokumentumok kustomizálása
- A kustomization fájl
- Kustomize projekt
- Kustomize útmutatók
Helm-diagramkiadások kezelése a Flux Helm-vezérlővel
A Flux Helm-vezérlő a microsoft.flux fürtbővítmény részeként van telepítve. Lehetővé teszi a Helm-diagramkiadások deklaratív kezelését a Git-adattárban karbantartott Kubernetes-jegyzékekkel.
A használati adatokért tekintse meg a következő erőforrásokat:
Tipp.
Mivel a Helm hogyan kezeli az indexfájlokat, a Helm-diagramok feldolgozása költséges művelet, és nagy memóriaigényű lehet. Ennek eredményeképpen nagy számú Helm-diagram egyidejű egyeztetése memóriakiugrásokat és OOMKilled hibákat okozhat. A vezérlő alapértelmezés szerint 1Gi-ra állítja a memóriakorlátot, a memóriakérelmét pedig 64Mi értékre. A microsoft.flux bővítmény telepítése után futtassa a következő parancsot a korlát és a nagy számú Helm-diagram egyeztetése miatti kérések növeléséhez:
az k8s-extension update -g <resource-group> -c <cluster-name> -n flux -t connectedClusters --config source-controller.resources.limits.memory=2Gi source-controller.resources.requests.memory=300Mi
A GitRepository forrásának használata Helm-diagramokhoz
Ha a Helm-diagramok a GitRepository forrásban vannak tárolva, amelyet az fluxConfigurations erőforrás részeként konfigurált, jelezheti, hogy ezt a forrást kell használni a Helm-diagramok forrásaként, ha a clusterconfig.azure.com/use-managed-source: "true" elemet hozzáadja a HelmRelease.yaml fájlhoz, ahogyan az az alábbi példában látható:
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: somename
namespace: somenamespace
annotations:
clusterconfig.azure.com/use-managed-source: "true"
spec:
...
Ha ezt a jelölést használja, az üzembe helyezett HelmRelease ki lesz egészítve a konfigurált forrásra mutató hivatkozással. Jelenleg csak GitRepository a forrás támogatott.
Helm-eltolódás észlelése
A Helm-kiadások eltérésészlelése alapértelmezés szerint nincs engedélyezve. Az 1.7.5-ösmicrosoft.flux kezdve az alábbi parancs futtatásával engedélyezheti a Helm-eltérésészlelést:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --name flux --cluster-type <cluster-type> --config helm-controller.detectDrift=true
Az építési folyamat utáni változók szigorú cseréje
A buildelés utáni változó szigorú helyettesítése az 1.13.1-től microsoft.flux kezdve érhető el.
Ha olyan Flux-bővítményt szeretne létrehozni, amelyen engedélyezve van a szigorú helyettesítési szabályzat, futtassa ezt a parancsot:
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --extension-type microsoft.flux --config kustomize-controller.strict-substitution-mode=true
Ha frissíteni szeretne egy meglévő Flux-bővítményt a szigorú helyettesítési szabályzat engedélyezéséhez, futtassa a következő parancsot:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config kustomize-controller.strict-substitution-mode=true
Vertikális skálázás
A függőleges skálázás támogatása az 1.12.0-s verziótól microsoft.flux kezdve érhető el. Jelenleg csak a Flux vertikális skálázási dokumentációjában leírt paraméterek támogatottak natív módon. További paraméterek manuálisan is alkalmazhatók a fürtre.
A vezérlők erőforráskorlátainak az aktuális korlátokon túli növeléséhez futtassa ezt a parancsot, és szükség szerint módosítsa az adott erőforrástípust és értéket:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config kustomize-controller.resources.limits.memory=2Gi kustomize-controller.resources.limits.cpu=2000m
A párhuzamosan végrehajtható egyeztetések számának növeléséhez futtassa a következő parancsot:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config kustomize-controller.concurrent=6 kustomize-controller.requeue-dependency=50s
A memóriabeli build engedélyezéséhez futtassa a következő parancsot:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config kustomize-controller.enable-in-memory-build=true
Helm OOM-óra
Az 1.7.5-ös verziótól microsoft.flux kezdve engedélyezheti a Helm OOM-órát. További információ: Helm engedélyezése az OOM-észlelés közelében.
A funkció engedélyezésekor mindenképpen tekintse át a lehetséges szervizelési stratégiákat , és alkalmazza őket szükség szerint.
Az OOM-figyelő engedélyezéséhez futtassa a következő parancsot:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --name flux --cluster-type <cluster-type> --config helm-controller.outOfMemoryWatch.enabled=true helm-controller.outOfMemoryWatch.memoryThreshold=70 helm-controller.outOfMemoryWatch.interval=700ms
Ha nem ad meg értékeket memoryThreshold , az outOfMemoryWatchalapértelmezett memóriaküszöb 95%-ra van állítva, és a memória kihasználtságának ellenőrzése 500 ms-ra van állítva.
Konfigurálható naplószintű paraméterek
A Flux-vezérlők alapértelmezett beállítása log-level, amely info értékre van állítva. Az 1.8.3-as verziótól microsoft.flux kezdve az alábbi parancs használatával módosíthatja ezeket az k8s-extension alapértelmezett beállításokat:
--config helm-controller.log-level=<info/error/debug>
--config source-controller.log-level=<info/error/debug>
--config kustomize-controller.log-level=<info/error/debug>
--config notification-controller.log-level=<info/error/debug>
--config image-automation-controller.log-level=<info/error/debug>
--config image-reflector-controller.log-level=<info/error/debug>
Az érvényes értékek a következők debug: , infovagy error. Például az log-level módosításához az source-controller és kustomize-controller esetében használja a következő parancsot:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config source-controller.log-level=error kustomize-controller.log-level=error
microsoft.flux Az 1.9.1-től kezdve a fluxconfig-agent és fluxconfig-controller támogatja a info és error naplószinteket (de nem debug). A beállítások módosításához használja a k8s-extension következő parancsot:
--config fluxconfig-agent.log-level=<info/error>
--config fluxconfig-controller.log-level=<info/error>
A következő parancs például a következőre változik log-levelerror:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config fluxconfig-agent.log-level=error fluxconfig-controller.log-level=error
Flux-bővítmény podok annotációjának konfigurálása.
Az Azure Firewalltól eltérő megoldás konfigurálásakor hálózati és FQDN (teljes tartománynév) / alkalmazásszabályokra van szükség egy AKS-fürt számára.
microsoft.flux Az 1.11.1-től kezdődően a Flux vezérlő podjai mostantól beállíthatják a jegyzetet kubernetes.azure.com/set-kube-service-host-fqdn a pod specifikációiban. Ez a megjegyzés lehetővé teszi az API Server tartománynevének forgalmát még akkor is, ha 7. rétegbeli tűzfal van jelen, megkönnyítve az üzembe helyezést a bővítmények telepítése során. Ha ezt a megjegyzést a Flux-bővítmény használatakor szeretné konfigurálni, használja az alábbi parancsokat.
# Create flux extension with annotation
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --extension-type microsoft.flux --config setKubeServiceHostFqdn=true
# Update flux extension with annotation
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config setKubeServiceHostFqdn=true
Számítási feladatok identitása Arc-kompatibilis Kubernetes-fürtökben és AKS-fürtökben
Flux-konfigurációkat olyan fürtökben hozhat létre, amelyeken engedélyezve van a számítási feladat identitása. A számítási feladat identitással engedélyezett AKS-fürtök fluxuskonfigurációi támogatottak az microsoft.flux v1.8.0-tól kezdve, és az Azure Arc-kompatibilis fürtökben engedélyezett számítási feladat identitás esetén pedig az microsoft.flux v1.15.1-től.
Ha Flux-konfigurációkat szeretne létrehozni olyan fürtökben, amelyeken engedélyezve van a számítási feladat identitása, módosítsa a bővítményt az alábbi lépésekben látható módon.
Szerezze meg az OIDC-kiállító URL-címét az AKS-fürthez vagy az Arc-kompatibilis Kubernetes-fürthez.
Hozzon létre egy felügyelt identitást , és jegyezze fel annak ügyfél-azonosítóját és bérlőazonosítóját.
Hozza létre a fluxusbővítményt a fürtön az alábbi paranccsal:
az k8s-extension create --resource-group <resource_group_name> --cluster-name <aks_cluster_name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config workloadIdentity.enable=true workloadIdentity.azureClientId=<user_assigned_client_id> workloadIdentity.azureTenantId=<tenant_id>Federált identitás-hitelesítőt hozhat létre az AKS-fürthöz vagy az Arc-kompatibilis Kubernetes-fürthöz. Példa:
# For source-controller az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"source-controller" --audience api://AzureADTokenExchange # For image-reflector controller if you plan to enable it during extension creation, it is not deployed by default az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"image-reflector-controller" --audience api://AzureADTokenExchange # For image-automation controller if you plan to enable it during extension creation, it is not deployed by default az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"image-automation-controller" --audience api://AzureADTokenExchange # For kustomize-controller az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"kustomize-controller" --audience api://AzureADTokenExchangeGyőződjön meg arról, hogy a munkaterhelés-azonosság használatához szükséges egyéni erőforrás beállítja a
.spec.providerértéketazurea jegyzékben. Példa:apiVersion: source.toolkit.fluxcd.io/v1 kind: HelmRepository metadata: name: acrrepo spec: interval: 10m0s type: <helm_repository_type> url: <helm_repository_link> provider: azureÜgyeljen arra, hogy megfelelő engedélyeket adjon a számítási feladatok identitásához ahhoz az erőforráshoz, amelyet le szeretne húzni a forrásvezérlőhöz vagy a képvisszaverő vezérlőhöz. Ha például az Azure Container Registryt használja, győződjön meg arról, hogy
Container Registry Repository Reader( ABAC-kompatibilis nyilvántartások esetén) vagyAcrPull(nem ABAC-regisztrációk esetén) alkalmazva lett.
Számítási feladatok identitásának használata az Azure DevOpsszal
Ha számítási feladat identitását szeretné használni az Azure DevOpsban, engedélyezze a következő előfeltételeket:
- Győződjön meg arról, hogy az Azure DevOps-szervezet csatlakozik a Microsoft Entra-hoz.
- Győződjön meg arról, hogy a számítási feladatok identitása megfelelően van beállítva a fürtön az AKS-fürtök vagy az Arc-kompatibilis Kubernetes-fürtök lépéseit követve.
- Hozzon létre egy felügyelt identitást és összevont hitelesítő adatokat, és engedélyezze a számítási feladat identitását a Flux-bővítmény fluxusvezérlő podjain, a szakasz korábbi részében leírtak szerint.
- Adja hozzá a felügyelt identitást az Azure DevOps-szervezethez felhasználóként, biztosítva, hogy hozzáféréssel rendelkezik az Azure DevOps-adattárhoz. Részletes lépésekért lásd: Szolgáltatásnevek és felügyelt identitások használata az Azure DevOpsban.
Ezután állítsa a fluxus konfigurációjának szolgáltatóját gitRepository "azure"-ra a hitelesítő adatok nélküli hitelesítés engedélyezéséhez. Ez a Bicep, ARM-sablonok vagy az Azure CLI használatával konfigurálható. Ha például az Azure CLI használatával szeretné beállítani a szolgáltatót, futtassa a következő parancsot:
az k8s-configuration flux update --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type <cluster-type> --name flux --provider "azure"
Az Azure DevOps SSH-RSA funkció megszüntetése
Az Azure DevOps bejelentette, hogy az SSH-RSA elavul , mint támogatott titkosítási módszer az Azure-adattárakhoz való SSH használatával való csatlakozáshoz. Ha SSH-kulcsokkal csatlakozik az Azure-adattárakhoz Flux-konfigurációkban, javasoljuk, hogy a biztonságosabb RSA-SHA2-256 vagy RSA-SHA2-512 kulcsokra lépjen.
A Flux-konfigurációk egyeztetésekor hibaüzenet jelenhet meg, amely azt jelzi, hogy az ssh-rsa elavult vagy nem támogatott. Ha igen, frissítse az Azure DevOps-adattárakhoz létrehozott SSH-kapcsolatokhoz használt gazdagépkulcs-algoritmust a Flux source-controller és image-automation-controller (ha engedélyezve van) a az k8s-extension update parancs használatával. Példa:
az k8s-extension update --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type <cluster-type> --name flux --config source-controller.ssh-host-key-args="--ssh-hostkey-algos=rsa-sha2-512,rsa-sha2-256"
az k8s-extension update --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type <cluster-type> --name flux --config image-automation-controller.ssh-host-key-args="--ssh-hostkey-algos=rsa-sha2-512,rsa-sha2-256"
További információ az Azure DevOps SSH-RSA elavulásáról: Az Azure-adattárak SSH-RSA támogatásának megszüntetése.
A Flux-konfiguráció és -bővítmény törlése
Az alábbi parancsokkal törölheti a Flux-konfigurációkat, és szükség esetén magát a Flux-bővítményt.
A Flux-konfigurációk törlése
Az alábbi parancs törli az fluxConfigurations Azure-beli erőforrást, valamint a fürtben lévő Flux konfigurációs objektumokat is. Mivel a Flux-konfigurációt eredetileg a prune=true kustomizáció paraméterével hozták létre, a Flux-konfiguráció eltávolításakor a rendszer eltávolítja a fürtben a Git-adattár jegyzékfájljai alapján létrehozott összes objektumot. Ez a parancs azonban nem távolítja el magát a Flux-bővítményt.
az k8s-configuration flux delete -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters --yes
A Flux-fürt bővítményének törlése
Amikor törli a Flux-bővítményt, az microsoft.flux Azure-beli bővítményerőforrás és a kubernetes-fürtben lévő Flux-bővítményobjektumok is eltávolításra kerülnek.
Fontos
A Flux-bővítmény törlése előtt győződjön meg róla, hogy törli a klaszter összes Flux-konfigurációját. Ha a bővítményt anélkül törölné, hogy előbb törölné a Flux-konfigurációkat, a fürt instabil állapotba kerülhet.
Ha a Flux-bővítmény automatikusan jött létre a Flux-konfiguráció első létrehozásakor, a bővítmény neve .flux
az k8s-extension delete -g flux-demo-rg -c flux-demo-arc -n flux -t connectedClusters --yes
Tipp.
Ezek a parancsok az Azure Arc-kompatibilis Kubernetes-fürtökhöz megfelelő parancsokat használják -t connectedClusters. AKS-fürtökhöz használja inkább -t managedClusters.
Következő lépések
- További információ a konfigurációkról és a GitOpsról.
- Tudja meg, hogyan használhatja az Azure Policy-t a GitOps nagy léptékű alkalmazására.
- További információ a GitOps (Flux v2) állapotának és tevékenységének monitorozásáról.