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. Az ArgoCD-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 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.
Fontos
Az ArgoCD-vel rendelkező GitOps jelenleg előzetes verzióban érhető el. A Microsoft Azure Previews kiegészítő használati feltételeiben talál olyan jogi feltételeket, amelyek a bétaverzióban, előzetes verzióban vagy más módon még nem általánosan elérhető Azure-funkciókra vonatkoznak. Az gyártási GitOps-bővítmények támogatásához próbálja ki a GitOps bővítményt Flux használatával.
Jótanács
Bár az oktatóanyag forrása egy Git-adattár, az ArgoCD más gyakori fájlforrásokat is támogat, például a Helm és az Open Container Initiative (OCI) adattárakat.
Előfeltételek
A GitOps használatával történő alkalmazások üzembe helyezéséhez Azure Arc-kompatibilis Kubernetes-fürtre vagy AKS-fürtre van szükség:
Azure Arc-kompatibilis Kubernetes-klaszterek
Egy Azure Arc-kompatibilis Kubernetes-kapcsolt fürt, amely teljesen működőképes.
Ismerje meg, hogyan csatlakoztathat Kubernetes-fürtöt az Azure Archoz. Ha kimenő proxyn keresztül szeretne csatlakozni, 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/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
A bővítmény működéséhez az AKS-fürtöt Felügyelt Szolgáltatás Identitással (MSI) kell létrehozni, nem Szolgáltatási főnévvel (SPN). Az új AKS-fürtök
az 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/extensions
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.
kubectlmár telepítve van az Azure Cloud Shell használata esetén.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á.
Hálózati 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ík vé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 vezérlőkhöz szükséges tárolókép letöltése. |
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.10.7
False whl k8s-configuration C:\Users\somename\.azure\cliextensions\k8s-configuration False 2.2.0
False whl k8s-extension C:\Users\somename\.azure\cliextensions\k8s-extension False 1.6.4
GitOps (ArgoCD) bővítmény létrehozása (egyszerű telepítés)
A GitOps ArgoCD telepítése támogatja a több bérlős használatot magas rendelkezésre állású (HA) módban, és támogatja a számítási feladatok identitását.
Fontos
A HA módja az alapértelmezett konfiguráció, és a telepítés megkezdéséhez három csomópont szükséges a fürtben. Az alábbi parancs hozzáadja --config deployWithHighAvailability=false a bővítmény egyetlen csomópontra való telepítéséhez.
Ez a parancs hozza létre az ArgoCD-összetevők fürtszintű hozzáféréssel rendelkező új argocd névtérbe való telepítésének legegyszerűbb konfigurációját. A fürtszintű hozzáférés lehetővé teszi az ArgoCD-alkalmazásdefiníciók észlelését a fürt ArgoCD konfigurációjában felsorolt névterekben. Például: namespace1,namespace2
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> \
--cluster-type managedClusters \
--name argocd \
--extension-type Microsoft.ArgoCD \
--release-train preview \
--config deployWithHighAvailability=false \
--config namespaceInstall=false \
--config "config-maps.argocd-cmd-params-cm.data.application\.namespaces=namespace1,namespace2"
Ha az ArgoCD-hozzáférést egy adott névtérre szeretné korlátozni, használja a --config namespaceInstall=true paramétereket --target-namespace <namespace> is. Ez a telepítési parancs létrehoz egy új <namespace> névteret, és telepíti az ArgoCD-összetevőket a <namespace>. A telepítési parancs lehetővé teszi az ArgoCD több példányának telepítését is ugyanabban a fürtben. Az ArgoCD-alkalmazásdefiníciók ebben a konfigurációban csak a <namespace> névtérben működnek.
GitOps (ArgoCD) bővítmény létrehozása számítási feladat identitásával
Az éles használathoz ajánlott másik telepítési módszer a számítási feladatok identitása. Ez a módszer lehetővé teszi a Microsoft Entra ID-identitások használatát az Azure-erőforrások hitelesítéséhez anélkül, hogy titkos kulcsokat vagy hitelesítő adatokat kellene kezelnie a Git-adattárban. Ez a telepítés az ArgoCD 3.0.0-rc2 vagy újabb OSS-verziójában engedélyezett számítási feladatok identitáshitelesítését használja.
Fontos
A HA módja az alapértelmezett konfiguráció, és a telepítés megkezdéséhez három csomópont szükséges a fürtben. Add hozzá --config deployWithHighAvailability=false, hogy telepítsd a bővítményt egyetlen csomópontra.
Ha számítási feladat identitásával szeretné létrehozni a bővítményt, először cserélje le a következő változókat a saját értékeire ebben a Bicep-sablonban:
var clusterName = '<aks-or-arc-cluster-name>'
var workloadIdentityClientId = 'replace-me##-##-###-###'
var ssoWorkloadIdentityClientId = 'replace-me##-##-###-###'
var url = 'https://<public-ip-for-argocd-ui>/'
var oidcConfig = '''
name: Azure
issuer: https://login.microsoftonline.com/<your-tenant-id>/v2.0
clientID: <same-value-as-ssoWorkloadIdentityClientId-above>
azure:
useWorkloadIdentity: true
requestedIDTokenClaims:
groups:
essential: true
requestedScopes:
- openid
- profile
- email
'''
var defaultPolicy = 'role:readonly'
var policy = '''
p, role:org-admin, applications, *, */*, allow
p, role:org-admin, clusters, get, *, allow
p, role:org-admin, repositories, get, *, allow
p, role:org-admin, repositories, create, *, allow
p, role:org-admin, repositories, update, *, allow
p, role:org-admin, repositories, delete, *, allow
g, replace-me##-argocd-ui-Microsoft Entra-group-admin-id, role:org-admin
'''
resource cluster 'Microsoft.ContainerService/managedClusters@2024-10-01' existing = {
name: clusterName
}
resource extension 'Microsoft.KubernetesConfiguration/extensions@2023-05-01' = {
name: 'argocd'
scope: cluster
properties: {
extensionType: 'Microsoft.ArgoCD'
releaseTrain: 'preview'
configurationSettings: {
'workloadIdentity.enable': 'true'
'workloadIdentity.clientId': workloadIdentityClientId
'workloadIdentity.entraSSOClientId': ssoWorkloadIdentityClientId
'config-maps.argocd-cm.data.oidc\\.config': oidcConfig
'config-maps.argocd-cm.data.url': url
'config-maps.argocd-rbac-cm.data.policy\\.default': defaultPolicy
'config-maps.argocd-rbac-cm.data.policy\\.csv': policy
'config-maps.argocd-cmd-params-cm.data.application\\.namespaces': 'default, argocd'
}
}
}
A Bicep-sablon a következő paranccsal hozható létre:
az deployment group create --resource-group <resource-group> --template-file <bicep-file>
Paraméterek
clusterName az AKS- vagy Arc-kompatibilis Kubernetes-fürt neve.
workloadIdentityClientId és ssoWorkloadIdentityClientId azok a felügyelt identitás ügyfélazonosítói, amelyeket a munkaterhelés identitásához kívánnak használni. Ez ssoWorkloadIdentityClientId az ArgoCD felhasználói felület hitelesítéséhez, az workloadIdentityClientId ArgoCD-összetevők számítási feladatidentitásához használatos. Az ssoWorkloadIdentityClientId általános beállításával és konfigurálásával kapcsolatos további információkért látogasson el a Microsoft Entra ID alkalmazásregisztrációs hitelesítéshez az OIDC használatával oldalon.
url az ArgoCD felhasználói felület nyilvános IP-címe. Nincs nyilvános IP-cím vagy tartománynév, kivéve, ha a fürt már rendelkezik ügyfél által megadott bejövőforgalom-vezérlővel. Ha igen, a bejövő szabályt az üzembe helyezés után hozzá kell adni az ArgoCD felhasználói felületéhez.
oidcConfig - cserélje le <your-tenant-id> a Microsoft Entra ID bérlőazonosítójára. Cserélje le a <same-value-as-ssoWorkloadIdentityClientId-above>-t a ssoWorkloadIdentityClientId-vel azonos értékre.
policy változó az ArgoCD argocd-rbac-cm configmap beállítása.
g, replace-me##-argocd-ui-entra-group-admin-id A Microsoft Entra-csoportazonosító, amely rendszergazdai hozzáférést biztosít az ArgoCD felhasználói felületéhez. A Microsoft Entra-csoportazonosító az Azure portálon a Microsoft Entra ID > csoportok >csoportnév> tulajdonságai alatt található. Microsoft Entra-csoportazonosító helyett használhatja a Microsoft Entra felhasználói azonosítóját. A Microsoft Entra felhasználói azonosítója az Azure Portalon, a Microsoft Entra id > Users >your-user-name Properties (Felhasználónevű> tulajdonságok) területen található.
Munkaterhelési identitás hitelesítő adatainak létrehozása
Új számítási feladatok identitásának hitelesítő adatainak beállításához kövesse az alábbi lépéseket:
Kérje le az OIDC-kiállító URL-címét az AKS-fürthöz vagy az Arc-kompatibilis Kubernetes-fürthöz.
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.
Hozzon létre egy egyesített azonosító hitelesítő adatot az AKS-fürthöz vagy az Arc-kompatibilis Kubernetes-fürthöz. Például:
# 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:"argocd":"source-controller" --audience api://AzureADTokenExchangeÜ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.
Csatlakozás privát ACR-nyilvántartásokhoz vagy ACR-adattárakhoz számítási feladat identitásával
A privát ACR-adatbázis vagy ACR-adattárak használatához kövesse a hivatalos ArgoCD-dokumentáció utasításait a magán ACR-nyilvántartásokhoz való csatlakozáshoz. A podok címkézése, összevont identitás hitelesítő adatainak létrehozása és a szolgáltatásfiókhoz való megjegyzés hozzáadása az útmutatóban szereplő lépéseket a kiterjesztés a Bicep-telepítéssel együtt végrehajtották, és ezek kihagyhatók.
Az ArgoCD felhasználói felületének elérése
Ha nincs meglévő hozzáférési szabályozó az AKS-fürthöz, akkor az ArgoCD felhasználói felülete közvetlenül LoadBalancer szolgáltatás segítségével érhető el. Az alábbi parancs elérhetővé teszi az ArgoCD felhasználói felületét a 80-as és a 443-as porton.
kubectl -n argocd expose service argocd-server --type LoadBalancer --name argocd-server-lb --port 80 --target-port 8080
Az ArgoCD-alkalmazás üzembe helyezése
Most, hogy telepítette az ArgoCD bővítményt, az ArgoCD felhasználói felületén vagy parancssori felületén telepítheti az alkalmazást. Az alábbi példa egyszerűen az AKS-tárolót kubectl apply az ArgoCD-alkalmazáson belül a argocd névtér alapértelmezett ArgoCD-projektjébe helyezi üzembe.
kubectl apply -f - <<EOF
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: aks-store-demo
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/Azure-Samples/aks-store-demo.git
targetRevision: HEAD
path: kustomize/overlays/dev
syncPolicy:
automated: {}
destination:
namespace: argocd
server: https://kubernetes.default.svc
EOF
Az AKS-tároló demoalkalmazása telepítve lett a pets névtérbe. Az alábbi utasításokat követve tekintse meg az alkalmazás weblapját. Ügyeljen arra, hogy http használatával keresse fel az IP-címet, és ne https használatával.
Bővítménykonfiguráció frissítése
Az ArgoCD konfigurációtérképei a telepítés után és más bővítménykonfigurációs beállításokat is frissíthetők az alábbi paranccsal:
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name Microsoft.ArgoCD –-config "config-maps.argocd-cm.data.url='https://<public-ip-for-argocd-ui>/auth/callback'”
Fontos, hogy az ArgoCD konfigurációtérképét a bővítményen keresztül frissítse, így a beállítások nem lesznek felülírva.
A bicep-sablon alkalmazása alternatív módszer a az cli konfiguráció frissítésére.
A bővítmény törlése
A bővítmény törléséhez használja az alábbi parancsokat.
az k8s-extension delete -g <resource-group> -c <cluster-name> -n argocd -t managedClusters --yes
Következő lépések
- Fájlproblémák és szolgáltatáskérések az Azure/AKS-adattárban , és ügyeljen arra, hogy a leírásban vagy a címben szerepeljen az "ArgoCD" szó.
- Ismerje meg AKS-Platform mérnöki kódmintát , amely üzembe helyezi az OSS ArgoCD-t a Backstage és a Cluster API Provider for Azure (CAPZ) vagy a Crossplane használatával.