Skip to main content
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Commencez à gérer les applications

Contributeurs

Après vous "Ajoutez un cluster à la gestion Astra Control", Vous pouvez installer des applications sur le cluster (en dehors d'Astra Control), puis aller à la page applications d'Astra Control pour définir les applications et leurs ressources.

Vous pouvez définir et gérer des applications qui incluent des ressources de stockage avec des pods en cours d'exécution ou des applications qui incluent des ressources de stockage sans aucun pod en cours d'exécution. Les applications qui ne disposent pas de pods en cours d'exécution sont connues sous le nom d'applications exclusivement basées sur les données.

De gestion des applications

Astra Control présente les exigences de gestion des applications suivantes :

  • Licence : pour gérer des applications à l'aide d'Astra Control Center, vous avez besoin soit de la licence d'évaluation Astra Control Center intégrée, soit d'une licence complète.

  • Espaces de noms : les applications peuvent être définies au sein d'un ou plusieurs espaces de noms spécifiés sur un même cluster à l'aide d'Astra Control. Une application peut contenir des ressources couvrant plusieurs espaces de noms au sein d'un même cluster. Astra Control ne prend pas en charge la possibilité de définir des applications entre plusieurs clusters.

  • Classe de stockage : si vous installez une application avec une classe de stockage définie explicitement et que vous devez cloner l'application, le cluster cible pour l'opération de clonage doit avoir la classe de stockage spécifiée à l'origine. Le clonage d'une application avec une classe de stockage définie explicitement dans un cluster ne disposant pas de la même classe de stockage échouera.

  • Ressources Kubernetes : les applications qui utilisent des ressources Kubernetes non collectées par Astra Control peuvent ne pas disposer de fonctionnalités complètes de gestion des données d'application. Astra Control collecte les ressources Kubernetes suivantes :

    ClusterRole

    ClusterRoleBinding

    ConfigMap

    CronJob

    CustomResourceDefinition

    CustomResource

    DaemonSet

    DeploymentConfig

    HorizontalPodAutoscaler

    Ingress

    MutatingWebhook

    NetworkPolicy

    PersistentVolumeClaim

    Pod

    PodDisruptionBudget

    PodTemplate

    ReplicaSet

    Role

    RoleBinding

    Route

    Secret

    Service

    ServiceAccount

    StatefulSet

    ValidatingWebhook

Méthodes d'installation d'applications prises en charge

Astra Control prend en charge les méthodes d'installation d'application suivantes :

  • Fichier manifeste : Astra Control prend en charge les applications installées à partir d'un fichier manifeste utilisant kubectl. Par exemple :

    kubectl apply -f myapp.yaml
  • Helm 3 : si vous utilisez Helm pour installer des applications, Astra Control nécessite Helm version 3. La gestion et le clonage des applications installées avec Helm 3 (ou mises à niveau de Helm 2 à Helm 3) sont entièrement pris en charge. La gestion des applications installées avec Helm 2 n'est pas prise en charge.

  • Applications déployées par l'opérateur : Astra Control prend en charge les applications installées avec des opérateurs avec espace de noms qui sont, en général, conçues avec une architecture « pass-by-value » plutôt que « pass-by-Reference ». Un opérateur et l'application qu'il installe doivent utiliser le même espace de noms ; vous devrez peut-être modifier le fichier YAML de déploiement pour que l'opérateur s'assure que c'est le cas.

    Voici quelques applications opérateur qui suivent ces modèles :

    • "Apache K8ssandra"

      Remarque Pour K8ssandra, les opérations de restauration sur place sont prises en charge. Pour effectuer une opération de restauration vers un nouvel espace de noms ou un cluster, l'instance d'origine de l'application doit être arrêté. Cela permet de s'assurer que les informations du groupe de pairs transmises ne conduisent pas à une communication entre les instances. Le clonage de l'application n'est pas pris en charge.
    • "IC Jenkins"

    • "Cluster Percona XtraDB"

    Astra Control peut ne pas être en mesure de cloner un opérateur conçu avec une architecture « pass-by-Reference » (par exemple, l'opérateur CockroachDB). Lors de ces types d'opérations de clonage, l'opérateur cloné tente de référencer les secrets de Kubernetes de l'opérateur source malgré avoir son propre nouveau secret dans le cadre du processus de clonage. Il est possible que le clonage échoue, car Astra Control ne connaît pas les secrets de Kubernetes qui sont présents dans l'opérateur source.

Installez les applications sur votre cluster

Après vous l'avez "a ajouté votre cluster" Avec Astra Control, vous pouvez installer des applications ou gérer des applications existantes sur le cluster. Toute application dont la portée est étendue à un ou plusieurs espaces de noms peut être gérée.

Définir les applications

Une fois qu'Astra Control détecte les espaces de noms sur vos clusters, vous pouvez définir les applications que vous souhaitez gérer. Vous pouvez choisir gérer une application couvrant un ou plusieurs espaces de noms ou gérer la totalité d'un namespace comme une seule application. La granularité est en effet au niveau de granularité requis pour les opérations de protection des données.

Bien qu'Astra Control vous permet de gérer séparément les deux niveaux de la hiérarchie (l'espace de noms et les applications dans cet espace de noms ou les espaces de noms d'extension), il est recommandé de choisir l'un ou l'autre. Les actions que vous prenez dans Astra Control peuvent échouer si les actions ont lieu en même temps au niveau de l'espace de noms et de l'application.

Astuce Par exemple, vous pouvez définir une stratégie de sauvegarde pour « maria » avec une fréquence hebdomadaire, mais vous devrez peut-être sauvegarder « mariadb » (qui se trouve dans le même espace de noms) plus fréquemment que cela. En fonction de ces besoins, vous devrez gérer les applications séparément et non sous la forme d'une application à espace de noms unique.
Avant de commencer
Description de la tâche

Définissez les ressources à gérer en tant qu'application

Vous pouvez spécifier le "Ressources Kubernetes qui constituent une application" Que vous voulez gérer avec Astra Control. La définition d'une application vous permet de regrouper des éléments de votre cluster Kubernetes dans une seule application. Cette collection de ressources Kubernetes est organisée par critères d'espace de noms et de sélecteur d'étiquettes.

La définition d'une application vous offre un contrôle plus granulaire sur les éléments à inclure dans une opération Astra Control, notamment le clonage, les snapshots et les sauvegardes.

Avertissement Lors de la définition d'applications, assurez-vous de ne pas inclure de ressource Kubernetes dans plusieurs applications avec des règles de protection. Le chevauchement des règles de protection sur les ressources Kubernetes peut entraîner des conflits de données. En savoir plus dans un exemple.
Développez pour en savoir plus sur l'ajout de ressources Cluster-scoped à vos namespaces d'applications.

Vous pouvez importer des ressources de cluster associées aux ressources d'espace de noms en plus de celles incluses automatiquement dans Astra Control. Vous pouvez ajouter une règle qui inclura des ressources d'un groupe, un type, une version et, éventuellement, une étiquette. Vous voudrez peut-être le faire si certaines ressources qu'Astra Control n'incluent pas automatiquement.

Vous ne pouvez exclure aucune des ressources à périmètre de cluster qui sont automatiquement incluses par Astra Control.

Vous pouvez ajouter les éléments suivants apiVersions (Qui sont les groupes combinés avec la version API) :

Type de ressource ApiVersions (groupe + version)

ClusterRole

rbac.authorization.k8s.io/v1

ClusterRoleBinding

rbac.authorization.k8s.io/v1

CustomResource

apiextensions.k8s.io/v1, apiextensions.k8s.io/v1beta1

CustomResourceDefinition

apiextensions.k8s.io/v1, apiextensions.k8s.io/v1beta1

MutatingWebhookConfiguration

admissionregistration.k8s.io/v1

ValidatingWebhookConfiguration

admissionregistration.k8s.io/v1

Étapes
  1. Dans la page applications, sélectionnez définir.

  2. Dans la fenêtre define application, entrez le nom de l'application.

  3. Choisissez le cluster sur lequel votre application s'exécute dans la liste déroulante Cluster.

  4. Choisissez un espace de nom pour votre application dans la liste déroulante namespace.

    Remarque Les applications peuvent être définies au sein d'un ou plusieurs espaces de noms spécifiés sur un même cluster à l'aide d'Astra Control. Une application peut contenir des ressources couvrant plusieurs espaces de noms au sein d'un même cluster. Astra Control ne prend pas en charge la possibilité de définir des applications entre plusieurs clusters.
  5. (Facultatif) Indiquez une étiquette pour les ressources Kubernetes dans chaque espace de noms. Vous pouvez spécifier un seul libellé ou un seul critère de sélection d'étiquette (requête).

    Astuce Pour en savoir plus sur les étiquettes Kubernetes, "Consultez la documentation officielle Kubernetes".
  6. (Facultatif) Ajouter des espaces de noms supplémentaires pour l'application en sélectionnant Ajouter un espace de noms et en choisissant l'espace de noms dans la liste déroulante.

  7. (Facultatif) Entrez des critères de sélection d'étiquette ou d'étiquette pour tout espace de noms supplémentaire que vous ajoutez.

  8. (Facultatif) pour inclure des ressources à périmètre de cluster en plus de celles qu'Astra Control inclut automatiquement, cochez inclure des ressources supplémentaires à périmètre de cluster et complétez les éléments suivants :

    1. Sélectionnez Ajouter inclure règle.

    2. Groupe : dans la liste déroulante, sélectionnez le groupe de ressources API.

    3. Type : dans la liste déroulante, sélectionnez le nom du schéma d'objet.

    4. Version : saisissez la version de l'API.

    5. Sélecteur d'étiquettes : si vous le souhaitez, incluez un libellé à ajouter à la règle. Cette étiquette est utilisée pour récupérer uniquement les ressources correspondant à cette étiquette. Si vous ne fournissez pas d'étiquette, Astra Control collecte toutes les instances du type de ressource spécifié pour ce groupe.

    6. Vérifiez la règle créée en fonction de vos entrées.

    7. Sélectionnez Ajouter.

      Astuce Vous pouvez créer autant de règles de ressources à périmètre cluster que vous le souhaitez. Les règles apparaissent dans le Résumé de l'application définir.
  9. Sélectionnez définir.

  10. Après avoir sélectionné définir, répétez le processus pour les autres applications, selon les besoins.

Une fois que vous avez terminé de définir une application, celle-ci s'affiche dans Healthy Dans la liste des applications de la page applications. Vous pouvez désormais le cloner et créer des sauvegardes et des snapshots.

Remarque Il se peut que l'application que vous venez d'ajouter comporte une icône d'avertissement sous la colonne protégé, indiquant qu'elle n'est pas encore sauvegardée et qu'elle n'est pas planifiée pour les sauvegardes.
Astuce Pour afficher les détails d'une application particulière, sélectionnez le nom de l'application.

Pour afficher les ressources ajoutées à cette application, sélectionnez l'onglet Ressources. Sélectionnez le numéro après le nom de la ressource dans la colonne ressource ou entrez le nom de la ressource dans la recherche pour voir les ressources supplémentaires comprises dans la portée du cluster.

Définissez un espace de noms à gérer en tant qu'application

Vous pouvez ajouter toutes les ressources Kubernetes dans un namespace à la gestion d'Astra Control en définissant les ressources de ce namespace comme une application. Cette méthode est préférable à définir des applications individuellement si vous avez l'intention de gérer et de protéger toutes les ressources d'un espace de noms particulier de la même manière et à intervalles communs.

Étapes
  1. Sur la page clusters, sélectionnez un cluster.

  2. Sélectionnez l'onglet espaces de noms.

  3. Sélectionnez le menu actions de l'espace de noms contenant les ressources d'application que vous souhaitez gérer et sélectionnez définir comme application.

    Astuce Si vous souhaitez définir plusieurs applications, sélectionnez dans la liste Namespaces et sélectionnez le bouton actions dans le coin supérieur gauche et sélectionnez définir comme application. Cela définira plusieurs applications individuelles dans leurs espaces de noms individuels. Pour les applications à espace de noms multiples, voir Définissez les ressources à gérer en tant qu'application.
    Remarque Cochez la case Afficher les espaces de noms système pour afficher les espaces de noms système qui ne sont généralement pas utilisés dans la gestion des applications par défaut. Capture d'écran qui montre l'option <strong>Afficher les espaces de noms système</strong> disponible dans l'onglet espaces de noms. "En savoir plus".

Une fois le processus terminé, les applications associées à l'espace de noms apparaissent dans le Associated applications colonne.

[Aperçu technique] définissez une application à l'aide d'une ressource personnalisée Kubernetes

Vous pouvez spécifier les ressources Kubernetes que vous souhaitez gérer avec Astra Control en les définissant comme une application à l'aide d'une ressource personnalisée (CR). Vous pouvez ajouter des ressources définies dans le cluster si vous souhaitez gérer ces ressources individuellement ou toutes les ressources Kubernetes d'un namespace si, par exemple, vous avez l'intention de gérer et de protéger toutes les ressources d'un namespace spécifique de la même manière et à intervalles réguliers.

Étapes
  1. Créer le fichier de ressource personnalisée (CR) et le nommer (par exemple, astra_mysql_app.yaml).

  2. Nommez l'application dans metadata.name.

  3. Définissez les ressources d'application à gérer :

    spec.includedClusterScopedResources

    Incluez les types de ressources cluster-scoped en plus de celles qu'Astra Control inclut automatiquement :

    • spec.includedClusterScopedResources: (Facultatif) Une liste des types de ressource cluster-scoped à inclure.

      • GroupVersionKind: (Facultatif) identifie sans ambiguïté un type.

        • Group: (requis si groupVersionKind est utilisé) groupe API de la ressource à inclure.

        • Version: (requis si groupVersionKind est utilisé) version API de la ressource à inclure.

        • Kind: (requis si groupVersionKind est utilisé) type de la ressource à inclure.

      • LabelSelector: (Facultatif) Une requête d'étiquette pour un ensemble de ressources. Il est utilisé pour récupérer uniquement les ressources correspondant à l'étiquette. Si vous ne fournissez pas d'étiquette, Astra Control collecte toutes les instances du type de ressource spécifié pour ce groupe. Le résultat des matchLabels et des expressions matchExpressions est ANDed.

        • MatchLabels: (Facultatif) Une carte de {key,value} paires. Un {key,value} unique dans la carte matchLabels est équivalent à un élément de matchExpressions qui a un champ clé de "key", un opérateur de "in" et un tableau de valeurs contenant uniquement "Value". Les exigences sont ANDed.

        • MatchExpressions: (Facultatif) Une liste des exigences du sélecteur d'étiquettes. Les exigences sont ANDed.

          • Key: (requis si matchExpressions est utilisé) la clé de libellé associée au sélecteur de libellé.

          • Operator: (requis si matchExpressions est utilisé) représente la relation d'une clé à un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.

          • Valeurs: (obligatoire si matchExpressions est utilisé)_un tableau de valeurs de chaîne. Si l'opérateur est In ou NotIn, le tableau de valeurs doit être _not vide. Si l'opérateur est Exists ou DoesNotExist, le tableau de valeurs doit être vide.

    spec.includedNamespaces

    Inclure les espaces de noms et les ressources dans ces ressources dans l'application :

    • spec.includedNamespaces: _(required)_définit l'espace de noms et les filtres facultatifs pour la sélection des ressources.

      • Namespace: (obligatoire) l'espace de noms qui contient les ressources d'applications que vous souhaitez gérer avec Astra Control.

      • LabelSelector: (Facultatif) Une requête d'étiquette pour un ensemble de ressources. Il est utilisé pour récupérer uniquement les ressources correspondant à l'étiquette. Si vous ne fournissez pas d'étiquette, Astra Control collecte toutes les instances du type de ressource spécifié pour ce groupe. Le résultat des matchLabels et des expressions matchExpressions est ANDed.

        • MatchLabels: (Facultatif) Une carte de {key,value} paires. Un {key,value} unique dans la carte matchLabels est équivalent à un élément de matchExpressions qui a un champ clé de "key", un opérateur de "in" et un tableau de valeurs contenant uniquement "Value". Les exigences sont ANDed.

        • MatchExpressions: (Facultatif) Une liste des exigences du sélecteur d'étiquettes. key et operator sont obligatoires. Les exigences sont ANDed.

          • Key: (requis si matchExpressions est utilisé) la clé de libellé associée au sélecteur de libellé.

          • Operator: (requis si matchExpressions est utilisé) représente la relation d'une clé à un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.

          • Valeurs: (obligatoire si matchExpressions est utilisé) un tableau de valeurs de chaîne. Si l'opérateur est In ou NotIn, le tableau de valeurs doit être not vide. Si l'opérateur est Exists ou DoesNotExist, le tableau de valeurs doit être vide.

    Exemple YAML :

    apiVersion: astra.netapp.io/v1
    kind: Application
    metadata:
      name: astra_mysql_app
    spec:
      includedNamespaces:
        - namespace: astra_mysql_app
          labelSelector:
            matchLabels:
              app: nginx
              env: production
            matchExpressions:
              - key: tier
                operator: In
                values:
                  - frontend
                  - backend
  4. Après avoir renseigné le astra_mysql_app.yaml Fichier avec les valeurs correctes, appliquer la CR :

    kubectl apply -f astra_mysql_app.yaml -n astra-connector

Qu'en est-il des espaces de noms système

Astra Control détecte également les espaces de noms système sur un cluster Kubernetes. Nous ne vous montrons pas ces espaces de noms système par défaut, car il est rare qu'il soit nécessaire de sauvegarder les ressources d'applications système.

Vous pouvez afficher les espaces de noms système à partir de l'onglet espaces de noms d'un cluster sélectionné en cochant la case Afficher les espaces de noms système.

Capture d'écran qui montre l'option <strong>Afficher les espaces de noms système</strong> disponible dans l'onglet espaces de noms.

Astuce ASTRA Control Center n'est pas affiché par défaut en tant qu'application que vous pouvez gérer, mais vous pouvez sauvegarder et restaurer une instance Astra Control Center à l'aide d'une autre instance Astra Control Center.

Exemple : politique de protection distincte pour différentes versions

Dans cet exemple, l'équipe devops gère un déploiement de version « canary ». Le cluster de l'équipe a trois modules exécutant Nginx. Deux des modules sont dédiés à la version stable. Le troisième pod est pour la libération des canaris.

L'administrateur Kubernetes de l'équipe devops ajoute ce label deployment=stable aux boîtiers de déverrouillage stables. L'équipe ajoute l'étiquette deployment=canary à la canary release pod.

La version stable de l'équipe inclut des snapshots horaires et des sauvegardes quotidiennes. La libération des canaris est plus éphémère, ils veulent donc créer une politique de protection moins agressive à court terme pour tout ce qui est étiqueté deployment=canary.

Afin d'éviter d'éventuels conflits de données, l'administrateur va créer deux apps: Une pour la version "canary", et une pour la version "stable". Les sauvegardes, snapshots et opérations de clonage sont donc séparés pour les deux groupes d'objets Kubernetes.