21.4. Configuration de clusters gérés avec des politiques et des ressources PolicyGenTemplate
Les ressources personnalisées (CR) de stratégie appliquée configurent les clusters gérés que vous provisionnez. Vous pouvez personnaliser la façon dont Red Hat Advanced Cluster Management (RHACM) utilise les CR PolicyGenTemplate pour générer les CR de stratégie appliquée.
21.4.1. À propos du CRD PolicyGenTemplate Copier lienLien copié sur presse-papiers!
La définition des ressources personnalisées (CRD) de PolicyGenTemplate indique au générateur de politiques PolicyGen les ressources personnalisées (CR) à inclure dans la configuration du cluster, la manière de combiner les CR dans les politiques générées et les éléments de ces CR qui doivent être mis à jour avec le contenu superposé.
L'exemple suivant montre un CR PolicyGenTemplate (common-du-ranGen.yaml) extrait du conteneur de référence ztp-site-generate. Le fichier common-du-ranGen.yaml définit deux politiques de Red Hat Advanced Cluster Management (RHACM). Les politiques gèrent une collection de CR de configuration, une pour chaque valeur unique de policyName dans le CR. common-du-ranGen.yaml crée une liaison de placement unique et une règle de placement pour lier les politiques aux clusters en fonction des étiquettes répertoriées dans la section bindingRules.
Exemple de PolicyGenTemplate CR - common-du-ranGen.yaml
- 1
common: "true"applique les politiques à tous les clusters portant cette étiquette.- 2
- Les fichiers répertoriés sous
sourceFilescréent les stratégies d'opérateur pour les clusters installés. - 3
OperatorHub.yamlconfigure l'OperatorHub pour le registre déconnecté.- 4
DefaultCatsrc.yamlconfigure la source du catalogue pour le registre déconnecté.- 5
policyName: "config-policy"configure les abonnements des opérateurs. La CROperatorHubdésactive la valeur par défaut et cette CR remplaceredhat-operatorspar une CRCatalogSourcequi pointe vers le registre déconnecté.
Une CR PolicyGenTemplate peut être construite avec n'importe quel nombre de CR incluses. Appliquez l'exemple de CR suivant dans le cluster du hub pour générer une politique contenant un seul CR :
En utilisant le fichier source PtpConfigSlave.yaml comme exemple, le fichier définit un CR PtpConfig. La politique générée pour l'exemple PtpConfigSlave est nommée group-du-sno-config-policy. La RC PtpConfig définie dans la politique générée group-du-sno-config-policy est nommée du-ptp-slave. Le spec défini dans PtpConfigSlave.yaml est placé sous du-ptp-slave avec les autres éléments spec définis dans le fichier source.
L'exemple suivant montre le CR group-du-sno-config-policy:
21.4.2. Recommandations pour la personnalisation des CR PolicyGenTemplate Copier lienLien copié sur presse-papiers!
Tenez compte des meilleures pratiques suivantes lorsque vous personnalisez la configuration du site PolicyGenTemplate ressources personnalisées (CR) :
-
Utiliser aussi peu de politiques que nécessaire. L'utilisation de moins de politiques nécessite moins de ressources. Chaque politique supplémentaire crée des frais généraux pour le cluster hub et le cluster géré déployé. Les CR sont combinés en politiques sur la base du champ
policyNamedans le CRPolicyGenTemplate. Les CR du mêmePolicyGenTemplatequi ont la même valeur pourpolicyNamesont gérés dans le cadre d'une seule politique. -
Dans les environnements déconnectés, utilisez une source de catalogue unique pour tous les opérateurs en configurant le registre comme un index unique contenant tous les opérateurs. Chaque
CatalogSourceCR supplémentaire sur les clusters gérés augmente l'utilisation du CPU. -
MachineConfigLes CR doivent être incluses en tant queextraManifestsdans la CRSiteConfigafin qu'elles soient appliquées lors de l'installation. Cela peut réduire le temps global nécessaire pour que le cluster soit prêt à déployer des applications. -
PolicyGenTemplatesdoit remplacer le champ "channel" pour identifier explicitement la version souhaitée. Cela permet de s'assurer que les modifications apportées au CR source lors des mises à niveau ne mettent pas à jour l'abonnement généré.
Lorsque vous gérez un grand nombre de grappes de rayons sur la grappe pivot, minimisez le nombre de stratégies afin de réduire la consommation de ressources.
Le regroupement de plusieurs CR de configuration en une seule politique ou en un nombre limité de politiques est un moyen de réduire le nombre total de politiques sur le cluster du concentrateur. Lorsque l'on utilise la hiérarchie des politiques communes, de groupe et de site pour gérer la configuration du site, il est particulièrement important de combiner la configuration spécifique au site dans une seule politique.
21.4.3. PolicyGenTemplate CRs pour les déploiements RAN Copier lienLien copié sur presse-papiers!
Utilisez les ressources personnalisées (CR) PolicyGenTemplate (PGT) pour personnaliser la configuration appliquée au cluster en utilisant le pipeline GitOps zero touch provisioning (ZTP). La PGT CR vous permet de générer une ou plusieurs politiques pour gérer l'ensemble des CR de configuration sur votre flotte de clusters. Le PGT identifie l'ensemble des CR gérés, les regroupe dans des politiques, construit l'enveloppe de la politique autour de ces CR et associe les politiques aux clusters en utilisant des règles de liaison d'étiquettes.
La configuration de référence, obtenue à partir du conteneur ZTP GitOps, est conçue pour fournir un ensemble de fonctionnalités critiques et de paramètres de réglage des nœuds qui garantissent que le cluster peut prendre en charge les contraintes strictes de performance et d'utilisation des ressources typiques des applications RAN (Radio Access Network) Distributed Unit (DU). Les modifications ou omissions de la configuration de base peuvent affecter la disponibilité des fonctionnalités, les performances et l'utilisation des ressources. Utilisez les CR de référence PolicyGenTemplate comme base pour créer une hiérarchie de fichiers de configuration adaptés aux exigences spécifiques de votre site.
Les CR de référence PolicyGenTemplate définies pour la configuration du cluster DU RAN peuvent être extraites du conteneur GitOps ZTP ztp-site-generate. Voir "Preparing the GitOps ZTP site configuration repository" pour plus de détails.
Les CR de PolicyGenTemplate se trouvent dans le dossier ./out/argocd/example/policygentemplates. L'architecture de référence comporte des CR de configuration communs, de groupe et spécifiques au site. Chaque CR PolicyGenTemplate fait référence à d'autres CR qui se trouvent dans le dossier ./out/source-crs.
Les CR PolicyGenTemplate relatifs à la configuration des grappes RAN sont décrits ci-dessous. Des variantes sont fournies pour le groupe PolicyGenTemplate CR afin de tenir compte des différences entre les configurations de grappes à un nœud, à trois nœuds compactes et standard. De même, des variantes de configuration spécifiques au site sont fournies pour les grappes à un nœud et les grappes à plusieurs nœuds (compactes ou standard). Utilisez les variantes de configuration spécifiques au groupe et au site qui sont pertinentes pour votre déploiement.
| PolicyGenTemplate CR | Description |
|---|---|
|
| Contient un ensemble de CR qui s'appliquent aux clusters multi-nœuds. Ces CR configurent les caractéristiques SR-IOV typiques des installations RAN. |
|
| Contient un ensemble de CRs qui s'appliquent aux clusters OpenShift à nœud unique. Ces CRs configurent les fonctionnalités SR-IOV typiques des installations RAN. |
|
| Contient un ensemble de CR RAN communs qui sont appliqués à tous les clusters. Ces CR souscrivent à un ensemble d'opérateurs fournissant des fonctionnalités de cluster typiques pour la RAN ainsi que des réglages de cluster de base. |
|
| Contient les politiques RAN pour les clusters à trois nœuds uniquement. |
|
| Contient les politiques RAN pour les clusters à nœud unique uniquement. |
|
| Contient les politiques RAN pour les trois clusters de plan de contrôle standard. |
|
|
|
|
|
|
|
|
|
21.4.4. Personnalisation d'un cluster géré avec des CR PolicyGenTemplate Copier lienLien copié sur presse-papiers!
Utilisez la procédure suivante pour personnaliser les stratégies appliquées au cluster géré que vous provisionnez à l'aide du pipeline ZTP (Zero Touch Provisioning).
Conditions préalables
-
Vous avez installé l'OpenShift CLI (
oc). -
Vous vous êtes connecté au cluster hub en tant qu'utilisateur avec les privilèges
cluster-admin. - Vous avez configuré le cluster du concentrateur pour générer les CR d'installation et de stratégie nécessaires.
- Vous avez créé un dépôt Git dans lequel vous gérez les données de configuration de votre site personnalisé. Le référentiel doit être accessible depuis le cluster hub et être défini comme référentiel source pour l'application Argo CD.
Procédure
Créer un CR
PolicyGenTemplatepour les CR de configuration spécifiques au site.-
Choisissez l'exemple approprié pour votre CR dans le dossier
out/argocd/example/policygentemplates, par exemple,example-sno-site.yamlouexample-multinode-site.yaml. Modifiez le champ
bindingRulesdans le fichier d'exemple pour qu'il corresponde à l'étiquette spécifique au site incluse dans le CRSiteConfig. Dans l'exemple de fichierSiteConfig, l'étiquette spécifique au site estsites: example-sno.NoteVeillez à ce que les étiquettes définies dans votre champ
PolicyGenTemplatebindingRulescorrespondent aux étiquettes définies dans les clusters gérés connexesSiteConfigCR.- Modifiez le contenu du fichier d'exemple pour qu'il corresponde à la configuration souhaitée.
-
Choisissez l'exemple approprié pour votre CR dans le dossier
Facultatif : Créez une CR
PolicyGenTemplatepour toutes les CR de configuration commune qui s'appliquent à l'ensemble de la flotte de clusters.-
Sélectionnez l'exemple approprié pour votre CR dans le dossier
out/argocd/example/policygentemplates, par exemplecommon-ranGen.yaml. - Modifiez le contenu du fichier d'exemple pour qu'il corresponde à la configuration souhaitée.
-
Sélectionnez l'exemple approprié pour votre CR dans le dossier
Facultatif : Créez un CR
PolicyGenTemplatepour tous les CR de configuration de groupe qui s'appliquent à certains groupes de clusters dans la flotte.Assurez-vous que le contenu des fichiers spec superposés correspond à l'état final souhaité. À titre de référence, le répertoire out/source-crs contient la liste complète des sources-crs disponibles pour être incluses et superposées par vos modèles PolicyGenTemplate.
NoteEn fonction des exigences spécifiques de vos clusters, il se peut que vous ayez besoin de plus d'une stratégie de groupe par type de cluster, surtout si l'on considère que les stratégies de groupe de l'exemple ont chacune un seul fichier PerformancePolicy.yaml qui ne peut être partagé sur un ensemble de clusters que si ces clusters sont constitués de configurations matérielles identiques.
-
Sélectionnez l'exemple approprié pour votre CR dans le dossier
out/argocd/example/policygentemplates, par exemplegroup-du-sno-ranGen.yaml. - Modifiez le contenu du fichier d'exemple pour qu'il corresponde à la configuration souhaitée.
-
Sélectionnez l'exemple approprié pour votre CR dans le dossier
-
Facultatif. Créez un validator inform policy
PolicyGenTemplateCR pour signaler que l'installation et la configuration ZTP de la grappe déployée sont terminées. Pour plus d'informations, voir "Creating a validator inform policy". Définir tous les espaces de noms de la politique dans un fichier YAML similaire à l'exemple de fichier
out/argocd/example/policygentemplates/ns.yaml.ImportantNe pas inclure le CR
Namespacedans le même fichier que le CRPolicyGenTemplate.-
Ajoutez les CR
PolicyGenTemplateetNamespaceau fichierkustomization.yamldans la section des générateurs, comme dans l'exemple présenté dansout/argocd/example/policygentemplates/kustomization.yaml. Commencez les CR
PolicyGenTemplate, CRNamespaceet le fichierkustomization.yamlassocié dans votre dépôt Git et repoussez les changements.Le pipeline ArgoCD détecte les modifications et commence le déploiement du cluster géré. Vous pouvez pousser les modifications vers le CR
SiteConfiget le CRPolicyGenTemplatesimultanément.
21.4.5. Suivi de l'avancement du déploiement de la politique de cluster géré Copier lienLien copié sur presse-papiers!
Le pipeline ArgoCD utilise les CR PolicyGenTemplate dans Git pour générer les politiques RHACM et les synchroniser avec le cluster central. Vous pouvez surveiller la progression de la synchronisation des politiques du cluster géré après que le service d'assistance a installé OpenShift Container Platform sur le cluster géré.
Conditions préalables
-
Vous avez installé l'OpenShift CLI (
oc). -
Vous vous êtes connecté au cluster hub en tant qu'utilisateur avec les privilèges
cluster-admin.
Procédure
Le Topology Aware Lifecycle Manager (TALM) applique les politiques de configuration liées à la grappe.
Une fois l'installation du cluster terminée et le cluster devenu
Ready, un CRClusterGroupUpgradecorrespondant à ce cluster, avec une liste de politiques ordonnées définies parran.openshift.io/ztp-deploy-wave annotations, est automatiquement créé par le TALM. Les politiques de la grappe sont appliquées dans l'ordre indiqué dansClusterGroupUpgradeCR.Vous pouvez contrôler l'avancement de la réconciliation des politiques de configuration à l'aide des commandes suivantes :
export CLUSTER=<clusterName>
$ export CLUSTER=<clusterName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[-1:]}' | jq$ oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[-1:]}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez contrôler l'état détaillé de la conformité de la politique de cluster en utilisant le tableau de bord RHACM ou la ligne de commande.
Pour vérifier la conformité de la politique à l'aide de
oc, exécutez la commande suivante :oc get policies -n $CLUSTER
$ oc get policies -n $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour vérifier l'état des politiques à partir de la console Web RHACM, effectuez les actions suivantes :
-
Cliquez sur Governance
Find policies. - Cliquez sur une politique de cluster pour vérifier son statut.
-
Cliquez sur Governance
Lorsque toutes les politiques de la grappe sont conformes, l'installation et la configuration de ZTP pour la grappe sont terminées. Le label ztp-done est ajouté à la grappe.
Dans la configuration de référence, la politique finale qui devient conforme est celle définie dans la politique *-du-validator-policy. Cette politique, lorsqu'elle est conforme sur un cluster, garantit que toute la configuration du cluster, l'installation de l'Opérateur et la configuration de l'Opérateur sont terminées.
21.4.6. Validation de la génération des CR de la politique de configuration Copier lienLien copié sur presse-papiers!
Les ressources personnalisées (CR) de stratégie sont générées dans le même espace de noms que le site PolicyGenTemplate à partir duquel elles sont créées. Le même flux de dépannage s'applique à toutes les CR de stratégie générées à partir de PolicyGenTemplate, qu'elles soient basées sur ztp-common, ztp-group ou ztp-site, comme le montrent les commandes suivantes :
export NS=<espace de noms>
$ export NS=<espace de noms>
oc get policy -n $NS
$ oc get policy -n $NS
L'ensemble attendu de CR enveloppés dans une politique doit être affiché.
Si la synchronisation des politiques a échoué, suivez les étapes de dépannage suivantes.
Procédure
Pour afficher des informations détaillées sur les politiques, exécutez la commande suivante :
oc describe -n openshift-gitops application policies
$ oc describe -n openshift-gitops application policiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que
Status: Conditions:est affiché dans les journaux d'erreurs. Par exemple, la définition d'une adressesourceFile→fileName:invalide génère l'erreur suivante :Status: Conditions: Last Transition Time: 2021-11-26T17:21:39Z Message: rpc error: code = Unknown desc = `kustomize build /tmp/https___git.com/ran-sites/policies/ --enable-alpha-plugins` failed exit status 1: 2021/11/26 17:21:40 Error could not find test.yaml under source-crs/: no such file or directory Error: failure in plugin configured via /tmp/kust-plugin-config-52463179; exit status 1: exit status 1 Type: ComparisonErrorStatus: Conditions: Last Transition Time: 2021-11-26T17:21:39Z Message: rpc error: code = Unknown desc = `kustomize build /tmp/https___git.com/ran-sites/policies/ --enable-alpha-plugins` failed exit status 1: 2021/11/26 17:21:40 Error could not find test.yaml under source-crs/: no such file or directory Error: failure in plugin configured via /tmp/kust-plugin-config-52463179; exit status 1: exit status 1 Type: ComparisonErrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez
Status: Sync:. S'il y a des erreurs d'enregistrement àStatus: Conditions:, le siteStatus: Sync:afficheUnknownouError:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque Red Hat Advanced Cluster Management (RHACM) reconnaît que des stratégies s'appliquent à un objet
ManagedCluster, les objets CR de stratégie sont appliqués à l'espace de noms du cluster. Vérifiez si les stratégies ont été copiées dans l'espace de noms du cluster :oc get policy -n $CLUSTER
$ oc get policy -n $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHACM copie toutes les politiques applicables dans l'espace de noms du cluster. Les noms des stratégies copiées ont le format suivant :
<policyGenTemplate.Namespace>.<policyGenTemplate.Name>-<policyName>.Vérifiez la règle de placement pour toutes les politiques qui n'ont pas été copiées dans l'espace de noms du cluster. Les
matchSelectordans lePlacementRulepour ces politiques doivent correspondre aux étiquettes de l'objetManagedCluster:oc get placementrule -n $NS
$ oc get placementrule -n $NSCopy to Clipboard Copied! Toggle word wrap Toggle overflow Notez le nom
PlacementRuleapproprié pour la politique, le commun, le groupe ou le site manquant, à l'aide de la commande suivante :oc get placementrule -n $NS <placementRuleName> -o yaml
oc get placementrule -n $NS <placementRuleName> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Les décisions d'état doivent inclure le nom de votre cluster.
-
La paire clé-valeur de
matchSelectordans la spécification doit correspondre aux étiquettes de votre cluster géré.
Vérifiez les étiquettes de l'objet
ManagedClusterà l'aide de la commande suivante :oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq$ oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez quelles politiques sont conformes à l'aide de la commande suivante :
oc get policy -n $CLUSTER
$ oc get policy -n $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si les stratégies
Namespace,OperatorGroupetSubscriptionsont conformes mais que les stratégies de configuration de l'opérateur ne le sont pas, il est probable que les opérateurs ne se sont pas installés sur le cluster géré. Dans ce cas, les politiques de configuration de l'opérateur ne s'appliquent pas car le CRD n'est pas encore appliqué au rayon.
21.4.7. Redémarrage du rapprochement des politiques Copier lienLien copié sur presse-papiers!
Vous pouvez relancer le rapprochement des politiques en cas de problèmes de conformité inattendus, par exemple lorsque la ressource personnalisée (CR) ClusterGroupUpgrade a expiré.
Procédure
Un CR
ClusterGroupUpgradeest généré dans l'espace de nomsztp-installpar le Topology Aware Lifecycle Manager une fois que le cluster géré devientReady:export CLUSTER=<clusterName>
$ export CLUSTER=<clusterName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get clustergroupupgrades -n ztp-install $CLUSTER
$ oc get clustergroupupgrades -n ztp-install $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si des problèmes inattendus surviennent et que les politiques ne sont pas réclamées dans le délai configuré (4 heures par défaut), l'état de la CR
ClusterGroupUpgradeest indiqué parUpgradeTimedOut:oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Ready")]}'$ oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Ready")]}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Un CR
ClusterGroupUpgradedans l'étatUpgradeTimedOutredémarre automatiquement son rapprochement des politiques toutes les heures. Si vous avez modifié vos politiques, vous pouvez lancer une nouvelle tentative immédiatement en supprimant le CRClusterGroupUpgradeexistant. Cela déclenche la création automatique d'un nouveau CRClusterGroupUpgradequi commence immédiatement à réconcilier les politiques :oc delete clustergroupupgrades -n ztp-install $CLUSTER
$ oc delete clustergroupupgrades -n ztp-install $CLUSTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Notez que lorsque le CR ClusterGroupUpgrade se termine avec le statut UpgradeCompleted et que le cluster géré a l'étiquette ztp-done appliquée, vous pouvez effectuer des changements de configuration supplémentaires en utilisant PolicyGenTemplate. La suppression du CR ClusterGroupUpgrade existant ne permet pas au TALM de générer un nouveau CR.
À ce stade, ZTP a terminé son interaction avec le cluster et toute interaction ultérieure doit être traitée comme une mise à jour et un nouveau CR ClusterGroupUpgrade créé pour la remédiation des politiques.
21.4.8. Indication de la réalisation pour les installations ZTP Copier lienLien copié sur presse-papiers!
Le Zero Touch Provisioning (ZTP) simplifie le processus de vérification de l'état de l'installation ZTP d'une grappe. L'état ZTP passe par trois phases : installation du cluster, configuration du cluster et ZTP terminé.
- Phase d'installation du cluster
-
La phase d'installation du cluster est indiquée par les conditions
ManagedClusterJoinedetManagedClusterAvailabledans le CRManagedCluster. Si le CRManagedClusterne contient pas ces conditions, ou si la condition est fixée àFalse, la grappe est toujours en phase d'installation. Des détails supplémentaires sur l'installation sont disponibles dans les CRAgentClusterInstalletClusterDeployment. Pour plus d'informations, voir "Troubleshooting GitOps ZTP". - Phase de configuration du cluster
-
La phase de configuration de la grappe est indiquée par une étiquette
ztp-runningappliquée à la CRManagedClusterde la grappe. - ZTP fait
L'installation et la configuration du cluster sont terminées dans la phase ZTP done. Cela se traduit par la suppression de l'étiquette
ztp-runninget l'ajout de l'étiquetteztp-doneà la CRManagedCluster. L'étiquetteztp-doneindique que la configuration a été appliquée et que la configuration de base de l'UA a terminé la mise au point du cluster.La transition vers l'état ZTP done est conditionnée par l'état de conformité d'une politique d'information du validateur de Red Hat Advanced Cluster Management (RHACM). Cette politique capture les critères existants pour une installation terminée et valide qu'elle passe à un état conforme uniquement lorsque le provisionnement ZTP du cluster géré est terminé.
La politique d'information des validateurs permet de s'assurer que la configuration du cluster est entièrement appliquée et que les opérateurs ont terminé leur initialisation. La politique valide les éléments suivants :
-
Le site cible
MachineConfigPoolcontient les entrées attendues et a fini d'être mis à jour. Tous les nœuds sont disponibles et ne sont pas dégradés. -
L'opérateur SR-IOV a terminé l'initialisation, comme l'indique au moins un site
SriovNetworkNodeStateavecsyncStatus: Succeeded. - Le jeu de démons PTP Operator existe.
-
Le site cible