Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:GitOps FAQ

Dernière mise à jour :Aug 11, 2026

Cette rubrique répond aux questions fréquemment posées (FAQ) concernant l'utilisation de GitOps.

Connexion à un dépôt Git privé

Pour des raisons de sécurité, les dépôts Git privés ne sont généralement pas accessibles depuis Internet. Pour connecter ACK One GitOps à un dépôt Git privé, vous devez établir une connectivité réseau, puis procéder à la configuration requise.

Étape 1 : Configurer la résolution des noms de domaine

Les étapes suivantes utilisent git.abc.cn comme exemple de nom de domaine pour le dépôt Git.

  1. Connectez votre réseau local au réseau VPC d'ACK One. Pour plus d'informations, consultez la rubrique Connexion d'un centre de données local à un VPC.

  2. Utilisez PrivateZone pour la résolution des noms de domaine au sein du VPC.

    1. Connectez-vous à la console Alibaba Cloud DNS. Sur la page Private Zone, cliquez sur l'onglet User Defined Zones, puis cliquez sur Add Zone. Dans la boîte de dialogue, configurez les paramètres suivants et cliquez sur OK.

      • Authoritative Zone : abc.cn (en utilisant le domaine du dépôt Git git.abc.cn comme exemple)

      • Recursive Resolution Proxy for Subdomain Names : Enable

      • Effective Scope > Alibaba Cloud VPC : sélectionnez le VPC lié à ACK One.

    2. Dans la liste des noms de domaine, localisez le PrivateZone que vous venez de créer. Dans la colonne Actions, cliquez sur Settings pour ouvrir la page Settings.

    3. Sur la page Settings, cliquez sur Add Record. Dans la boîte de dialogue, configurez les paramètres suivants et cliquez sur OK.

      • Record Type : A

      • Hostname : git (en utilisant git.abc.cn comme exemple)

      • Record Value : saisissez l'adresse IP du dépôt Git interne.

Étape 2 : Se connecter au dépôt Git

Une fois la résolution des noms de domaine configurée, ACK One GitOps peut accéder au dépôt Git privé. Vous pouvez ensuite vous connecter au dépôt Git depuis la console GitOps ou l'interface de ligne de commande (CLI) pour déployer des applications. Pour plus d'informations, consultez la documentation Private Repositories.

Regroupement des applications dans la console

Lorsque vous gérez un grand nombre d'applications, leur regroupement améliore l'utilisabilité. Dans le volet de navigation de gauche de la console GitOps, vous pouvez :

  • Filtrer par Favorites Only, SYNC STATUS ou HEALTH STATUS.

  • Regrouper par LABELS, PROJECTS, CLUSTERS, NAMESPACES ou AUTO SYNC.

Contrôle des déploiements d'applications

Le contrôle des déploiements d'applications est souvent nécessaire, en particulier dans le cadre de pipelines CI/CD automatisés. Vous pouvez utiliser les méthodes suivantes :

  • Utilisez des applications en mode ManualSync. Après le push du code, un ingénieur O&M examine et vérifie l'application. Si celle-ci répond aux exigences, il peut cliquer manuellement sur Sync pour synchroniser l'application avec le cluster de destination.

  • Mettez à jour manuellement la version de l'image dans le dépôt de déploiement. Si vous ne surveillez pas automatiquement les modifications du dépôt d'images, un ingénieur O&M doit vérifier les nouvelles images. Après vérification, il peut mettre à jour manuellement la version de l'image dans le dépôt de déploiement de l'application, ce qui déclenche une synchronisation de l'application dans Argo CD.

  • Établissez un mécanisme de revue de code pour le dépôt de code métier dans votre pipeline CI/CD automatisé. Une fois qu'un ingénieur O&M a approuvé la revue de code et fusionné le code, le pipeline CI génère et pousse automatiquement l'image. Argo CD détecte alors automatiquement la modification de l'image et la déploie dans les environnements configurés avec AutoSync. Vous pouvez également déployer manuellement dans les environnements configurés pour ManualSync.

Que faire si le serveur de dépôt Argo CD signale une erreur Out of diskspace ?

Symptôme

Lorsque vous consultez les journaux en exécutant la commande kubectl -nargocd logs xxxx, le serveur de dépôt renvoie le message d'erreur suivant :

'git checkout --force xxx' failed exit status 128: error: unable to write file templates/deployment.yaml\nfat al: sha1 file '/tmp/_argocd-repo/xxx/.git/index.lock' write error. Out of diskspace...

Solution

Ce problème survient lorsque l'espace disque insuffisant entraîne un échec d'écriture dans le fichier .git/index.lock. Pour résoudre ce problème, augmentez le stockage temporaire des Pods du composant Argo CD d'ACK One GitOps. Ces composants s'exécutent sur Elastic Container Instance (ECI) et disposent de 30 GiB de stockage temporaire par défaut. Suivez ces étapes pour augmenter le stockage. Pour plus d'informations sur la facturation, consultez la rubrique Facturation de l'espace de stockage temporaire.

  1. Obtenez le KubeConfig de l'instance de flotte depuis la console ACK One et connectez-vous à l'instance de flotte à l'aide de kubectl. Pour plus d'informations, consultez la rubrique Obtenir le KubeConfig d'un cluster et utiliser kubectl pour se connecter au cluster.

  2. Dans le modèle de Pod du Deployment concerné, ajoutez l'annotation k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi" au Pod. Vous pouvez personnaliser la quantité de stockage temporaire.

    • Si GitOps est en mode par défaut, ajoutez l'annotation au Deployment argocd-server.

      kubectl edit deployment -nargocd argocd-server
    • Si GitOps est en mode haute disponibilité, ajoutez l'annotation au Deployment argocd-dex-imageupdate-repo-server.

      kubectl edit deployment -nargocd argocd-dex-imageupdate-repo-server
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      ...
    ...
    spec:
      template:
        metadata:
          annotations:
            # This adds 20 GiB to the default 30 GiB, for a total of 50 GiB. The amount of extra temporary storage is customizable.
            k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi"
          ...
        ...
      ...

Empêcher le suivi des ressources non applicatives

Informations générales

Argo CD utilise le libellé app.kubernetes.io/instance pour suivre les ressources Kubernetes. Si une ressource possède ce libellé et que sa valeur correspond au nom de l'application, Argo CD la suit. Cela peut entraîner le maintien du statut OutOfSync de l'application et provoquer la suppression involontaire de la ressource non applicative. Pour éviter ce comportement, utilisez l'une des solutions suivantes.

Solutions

  • Solution 1 : dans le ConfigMap argocd/argocd-cm de l'instance de flotte, ajoutez resource.exclusions pour ignorer les ressources non applicatives suivies. La configuration suivante ignore les ressources CiliumIdentity.

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
data:
  ...
  resource.exclusions: |
    - apiGroups:
      - cilium.io
      kinds:
      - CiliumIdentity
      clusters:
      - "*"
  • Solution 2 : dans le ConfigMap argocd/argocd-cm de l'instance de flotte, ajoutez le libellé de suivi personnalisé application.instanceLabelKey: argocd.argoproj.io/instance. Après cette modification, les ressources gérées par Argo CD utiliseront le libellé argocd.argoproj.io/instance. Cela empêche Argo CD de suivre d'autres ressources qui ne possèdent que le libellé app.kubernetes.io/instance. Après avoir appliqué cette configuration, les applications existantes peuvent afficher un statut OutOfSync jusqu'à ce qu'elles soient resynchronisées.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: argocd-cm
      labels:
        app.kubernetes.io/name: argocd-cm
        app.kubernetes.io/part-of: argocd
    data:
      ...
      application.instanceLabelKey: argocd.argoproj.io/instance

Redémarrage des composants après modification des ConfigMaps

Dans Argo CD, certaines modifications de ConfigMap ne prennent effet qu'après le redémarrage du composant Argo CD correspondant.

Le tableau suivant répertorie les ConfigMaps couramment modifiés.

Paramètre

Description

Redémarrage requis ?

argocd-cm

Utilisé pour configurer des paramètres tels que OpenID Connect (OIDC) personnalisé, une URL d'accès url personnalisée et les utilisateurs locaux.

Un redémarrage n'est généralement pas requis. Toutefois, si la configuration ne prend pas effet, redémarrez argocd-server.

argocd-cmd-params-cm

Utilisé pour configurer les variables d'environnement des composants Argo CD.

Un redémarrage du composant correspondant ou d'argocd-server est requis.

argocd-rbac-cm

Utilisé pour configurer les autorisations de contrôle d'accès basé sur les rôles (RBAC) d'Argo CD.

Généralement, aucun redémarrage n'est nécessaire.

argocd-image-updater-config

Utilisé pour gérer les configurations de la mise à jour d'images.

Un redémarrage du composant correspondant ou d'argocd-server est requis.

argocd-notifications-cm

Utilisé pour gérer les configurations d'argocd-notification-controller.

Un redémarrage du composant correspondant ou d'argocd-server est requis.

Remarque

ACK One GitOps propose deux modes opérationnels :

  1. En mode par défaut, tous les composants s'exécutent au sein d'un seul Deployment. Pour appliquer les modifications, redémarrez le Deployment argocd-server.

  2. En mode haute disponibilité, les composants sont répartis dans plusieurs Deployments. Vous pouvez redémarrer les composants individuels selon vos besoins.

    1. argocd-server

    2. argocd-application-controller : contient application-controller et applicationset-controller.

    3. argocd-repo-server

    4. argocd-dex-imageupdate-notification : contient image-updater, notification-controller et dex.

    5. argocd-redis

Suivez ces étapes pour redémarrer un composant :

  1. Sur la page Multi-cluster GitOps, localisez la section Argo CD Component dans le panneau réductible GitOps.

  2. Cliquez sur Restart à côté de Argo CD Component.

  3. Dans la boîte de dialogue, sélectionnez le composant à redémarrer dans la liste déroulante Select Application to Restart, par exemple argocd-server, puis cliquez sur OK.

Le générateur Git ne reflète pas les modifications de répertoire

Symptôme

Lors de l'utilisation du générateur Git avec un ApplicationSet Argo CD, vous pouvez constater que les nouvelles ressources Application ne parviennent pas à être créées après l'ajout ou le renommage d'un répertoire dépendant dans le dépôt Git. Ce problème peut survenir même si vous mettez immédiatement à jour la ressource ApplicationSet pour pointer vers le nouveau chemin de répertoire.

Solution

Ce problème survient car Argo CD n'actualise pas automatiquement son cache lorsqu'un chemin de répertoire change. Pour résoudre ce problème, forcez une actualisation en ajoutant l'annotation argocd.argoproj.io/application-set-refresh="true" à l'ApplicationSet contenant le générateur Git. Voir l'exemple suivant :

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  ···
  annotations:
    ···
    argocd.argoproj.io/application-set-refresh: "true"
spec:
  ···
  generators:
    - git:
        ···     
  template:
    ···