Oktatóanyag: Alkalmazások üzembe helyezése a GitOps használatával Flux v2-vel
Ez az oktatóanyag 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
olyan erőforrást, amely szinkronizálja a Git-adattár forrásait a fürttel, és egyezteti a fürtöt a kívánt állapotba. 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.
Fontos
A microsoft.flux
bővítmény kiadta az 1.0.0-s főverziót. Ez magában foglalja a több-bérlős funkciót is. Ha meglévő GitOps Flux v2-konfigurációkkal rendelkezik, amelyek a microsoft.flux
bővítmény egy korábbi verzióját használják, manuálisan frissíthet a legújabb verzióra az Azure CLI használatával: az k8s-extension create -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -n flux --extension-type microsoft.flux -t <CLUSTER_TYPE>
(Arc-fürtök és -t managedClusters
AKS-fürtök esetén).-t connectedClusters
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-fürtök esetén
Egy Azure Arc-kompatibilis Kubernetes-csatlakoztatott fürt, amely működik. Az ARM64-alapú fürtök az 1.7.0-s verziótól
microsoft.flux
kezdve támogatottak.Megtudhatja, hogyan csatlakoztathat Kubernetes-fürtöt az Azure Archoz. Ha kimenő proxyn keresztül kell csatlakoznia, győződjön meg arról, hogy proxybeállításokkal telepíti az Arc-ügynököket.
Olvasási és írási engedélyek az
Microsoft.Kubernetes/connectedClusters
erőforrástípushoz.
Azure Kubernetes Service-fürtök esetén
Egy MSI-alapú AKS-fürt, amely működik.
Fontos
Győződjön meg arról, hogy az AKS-fürt MSI-vel (nem SPN-vel) lett létrehozva, mert a
microsoft.flux
bővítmény nem működik SPN-alapú AKS-fürtökkel. Az új AKS-fürtökaz aks create
esetében a fürt alapértelmezés szerint MSI-alapú. A már létrehozott SPN-alapú fürtök esetében, amelyeket MSI-vé kell konvertálni, futtassa a következőtaz 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/managedClusters
erő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/extensions
Microsoft.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 upgrade
A Kubernetes parancssori ügyfele, a kubectl.
kubectl
az Azure Cloud Shell használata esetén már telepítve van.Telepítse
kubectl
helyileg aaz aks install-cli
következő paranccsal:az aks install-cli
A 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.KubernetesConfiguration
A 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. |
PARANCSSOR-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 néhány fő alapelvet. A naprakészség érdekében az adattár időnként kompatibilitástörő változásokat kaphat a verziófrissítésekből. Ezek a módosítások nem érintik az oktatóanyag új alkalmazását, csak a korábbi, nem törölt oktatóanyag-alkalmazásokat. A módosítások kezelésével kapcsolatos további információkért tekintse meg a kompatibilitástörő változásra vonatkozó jogi nyilatkozatot.
Az alábbi példa a parancs használatával alkalmazza a az k8s-configuration flux create
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-adattár ága .
main
- A konfiguráció hatóköre:
cluster
. Ez a hatókör engedélyeket ad az operátoroknak a teljes fürtben végzett módosításokhoz. Az oktatóanyag hatókörének használatáhoznamespace
tekintse 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
apps
kustomizáció ainfra
kustomizációtól függ. (Ainfra
kustomizációnak a kustomizáció futtatása előttapps
be kell fejeződnie.) - Állítsa be
prune=true
mindké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ó vagy a kustomizációk törlődnek.
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.
A fluxuskonfiguráció első telepítésekor előfordulhat Pending
Non-compliant
, hogy a kezdeti megfelelőségi állapot vagy 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
, ,podinfo
redis
: 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-controller
notification-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 szabályozása, hogy mely vezérlők legyenek üzembe helyezve 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 image-automation
Git-adattár frissítéséhez használt vezérlőket és image-reflector
vezérlőket, amikor új tárolólemezképek érhetők el, explicit módon engedélyezni kell.
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.enabled
false
: .
Ez a példaparancs telepíti a vezérlőket és image-automation
a image-reflector
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
Kubelet-identitás használata hitelesítési módszerként az AKS-fürtökhöz
Az AKS-fürtök esetében az egyik használható hitelesítési lehetőség 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 nemroot biztonsági környezeti korlátozást igényelnek a podok fürtre való megfelelő kiépí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 a rendszer üzembe helyezi.fluxConfiguration
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.
Fürtkonfiguráció kezelése a Flux Kustomize vezérlővel
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-segédvonalak
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:
- Flux a Helm-felhasználók számára
- Helm-kiadások kezelése
- Migrálás Flux v2 Helm-be a Flux v1 Helmből
- Flux Helm-vezérlő
Tipp.
Mivel a Helm hogyan kezeli az indexfájlokat, a Helm-diagramok feldolgozása költséges művelet, és nagyon 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 az GitRepository
erőforrás részeként fluxConfigurations
konfigurált forrásban vannak tárolva, a Helm-diagramok forrásaként a HelmRelease.yaml fájlhoz való hozzáadással clusterconfig.azure.com/use-managed-source: "true"
jelezheti, hogy a konfigurált forrást kell használnia a Helm-diagramok forrásaként, ahogyan az az alábbi példában látható:
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: somename
namespace: somenamespace
annotations:
clusterconfig.azure.com/use-managed-source: "true"
spec:
...
Ha ezt a megjegyzést használja, az üzembe helyezett HelmRelease ki lesz javítva 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-ös verziótól microsoft.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
A build utáni változó szigorú helyettesítése
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. Más 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 outOfMemoryWatch
alapé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értelmezés szerint a log-level
következőre info
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
: , info
vagy error
. Például a log-level
következő parancsot használva módosíthatja az source-controller
és kustomize-controller
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
támogatási info
és fluxconfig-controller
error
naplószintek (de nemdebug
). Ezek a k8s-extension paranccsal módosíthatók az alábbiak szerint:
--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-level
error
:
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
Az Azure DevOps SSH-RSA elavulása
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 való SSH-kapcsolatok létrehozásához használt gazdagépkulcs-algoritmust a Fluxból 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űnése.
Széljegyzet konfigurálása Flux-bővítmény podokon
Az Azure Firewalltól eltérő megoldás konfigurálásakor hálózati és teljes tartománynév-/alkalmazásszabályokra van szükség az AKS-fürtökhöz. 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 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ény 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 az AKS-fürtökben
Az 1.8.0-s verziótól microsoft.flux
kezdve Flux-konfigurációkat hozhat létre az AKS-fürtökben, amelyekben engedélyezve van a számítási feladat identitása. Ehhez módosítsa a fluxusbővítményt az alábbi lépésekben látható módon.
Kérje le a fürt OIDC-kiállítójának URL-címét .
Hozzon létre egy felügyelt identitást, és jegyezze fel az ügyfél-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>
Összevont identitás hitelesítő adatainak létrehozása. 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 "${AKS_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 "${AKS_OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"image-reflector-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 "${AKS_OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"kustomize-controller" --audience api://AzureADTokenExchange
Győződjön meg arról, hogy a számítási feladat identitásának használatához szükséges egyéni erőforrás értéket
azure
állít be.spec.provider
a jegyzékben. Példa:apiVersion: source.toolkit.fluxcd.io/v1beta2 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,
AcrPull
engedélyekre van szükség.
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 és a fürt Flux konfigurációs objektumait is. Mivel a Flux-konfiguráció eredetileg a prune=true
kustomizáció paraméterével lett létrehozva, a rendszer a Flux-konfiguráció eltávolításakor 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
A Flux-bővítmény törlésekor az microsoft.flux
Azure-beli bővítményerőforrás és a fürt Flux-bővítményobjektumai is törlődnek.
Fontos
A Flux-bővítmény törlése előtt mindenképpen törölje a fürt összes Flux-konfigurációját. Ha a bővítményt a Flux-konfigurációk első törlése nélkül törli, 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 -t managedClusters
inkább.
Következő lépések
- További információ a konfigurációkról és a GitOpsról.
- Megtudhatja, hogyan kényszerítheti az Azure Policyt a GitOps nagy léptékű kényszerítésére.
- További információ a GitOps (Flux v2) állapotának és tevékenységének monitorozásáról.