21.2. Préparation de la grappe du concentrateur pour ZTP
Pour utiliser RHACM dans un environnement déconnecté, créez un registre miroir qui reflète les images de version d'OpenShift Container Platform et le catalogue Operator Lifecycle Manager (OLM) qui contient les images d'opérateurs requises. OLM gère, installe et met à niveau les opérateurs et leurs dépendances dans le cluster. Vous pouvez également utiliser un hôte miroir déconnecté pour servir les images de disque RHCOS ISO et RootFS qui sont utilisées pour provisionner les hôtes bare-metal.
21.2.1. Versions logicielles de la solution Telco RAN 4.12 validées
La solution Red Hat Telco Radio Access Network (RAN) version 4.12 a été validée à l'aide des produits logiciels Red Hat suivants.
Produit | Version du logiciel |
---|---|
Cluster OpenShift Container Platform version | 4.12 |
Plugin GitOps ZTP | 4.10, 4.11 ou 4.12 |
Red Hat Advanced Cluster Management (RHACM) | 2.6, 2.7 |
Red Hat OpenShift GitOps | 1.6 |
Gestionnaire du cycle de vie tenant compte de la topologie (TALM) | 4.10, 4.11 ou 4.12 |
21.2.2. Installation de GitOps ZTP dans un environnement déconnecté
Utilisez Red Hat Advanced Cluster Management (RHACM), Red Hat OpenShift GitOps et Topology Aware Lifecycle Manager (TALM) sur le cluster hub dans l'environnement déconnecté pour gérer le déploiement de plusieurs clusters gérés.
Conditions préalables
-
Vous avez installé le CLI OpenShift Container Platform (
oc
). -
Vous vous êtes connecté en tant qu'utilisateur avec les privilèges
cluster-admin
. Vous avez configuré un registre miroir déconnecté à utiliser dans le cluster.
NoteLe registre miroir déconnecté que vous créez doit contenir une version des images de sauvegarde et de pré-cache de TALM qui correspond à la version de TALM en cours d'exécution dans le cluster hub. Le cluster de rayons doit pouvoir résoudre ces images dans le registre miroir déconnecté.
Procédure
- Installez RHACM dans le cluster hub. Voir Installation de RHACM dans un environnement déconnecté.
- Installer GitOps et TALM dans le hub cluster.
Ressources supplémentaires
21.2.3. Ajout d'images RHCOS ISO et RootFS à l'hôte miroir déconnecté
Avant de commencer à installer des clusters dans l'environnement déconnecté avec Red Hat Advanced Cluster Management (RHACM), vous devez d'abord héberger les images Red Hat Enterprise Linux CoreOS (RHCOS) pour qu'elles soient utilisées. Utilisez un miroir déconnecté pour héberger les images RHCOS.
Conditions préalables
- Déployer et configurer un serveur HTTP pour héberger les ressources de l'image RHCOS sur le réseau. Vous devez pouvoir accéder au serveur HTTP depuis votre ordinateur et depuis les machines que vous créez.
Les images RHCOS peuvent ne pas changer avec chaque version d'OpenShift Container Platform. Vous devez télécharger les images avec la version la plus élevée qui est inférieure ou égale à la version que vous installez. Utilisez les versions d'image qui correspondent à votre version d'OpenShift Container Platform si elles sont disponibles. Vous avez besoin d'images ISO et RootFS pour installer RHCOS sur les hôtes. Les images RHCOS QCOW2 ne sont pas prises en charge pour ce type d'installation.
Procédure
- Connectez-vous à l'hôte miroir.
Obtenez les images RHCOS ISO et RootFS à partir de mirror.openshift.com, par exemple :
Exporter les noms des images requises et la version d'OpenShift Container Platform en tant que variables d'environnement :
$ export ISO_IMAGE_NAME=<iso_image_name> 1
$ export ROOTFS_IMAGE_NAME=<rootfs_image_name> 1
$ export OCP_VERSION=<ocp_version> 1
Téléchargez les images nécessaires :
$ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.12/${OCP_VERSION}/${ISO_IMAGE_NAME} -O /var/www/html/${ISO_IMAGE_NAME}
$ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.12/${OCP_VERSION}/${ROOTFS_IMAGE_NAME} -O /var/www/html/${ROOTFS_IMAGE_NAME}
Verification steps
Vérifiez que les images ont été téléchargées avec succès et qu'elles sont servies sur l'hôte miroir déconnecté, par exemple :
$ wget http://$(hostname)/${ISO_IMAGE_NAME}
Exemple de sortie
Saving to: rhcos-4.12.1-x86_64-live.x86_64.iso rhcos-4.12.1-x86_64-live.x86_64.iso- 11%[====> ] 10.01M 4.71MB/s
Ressources supplémentaires
21.2.4. Activation du service assisté et mise à jour de AgentServiceConfig sur le cluster hub
Red Hat Advanced Cluster Management (RHACM) utilise le service assisté pour déployer les clusters OpenShift Container Platform. Le service assisté est déployé automatiquement lorsque vous activez l'opérateur MultiClusterHub avec Central Infrastructure Management (CIM). Lorsque vous avez activé CIM sur le cluster hub, vous devez alors mettre à jour la ressource personnalisée (CR) AgentServiceConfig
avec des références aux images ISO et RootFS qui sont hébergées sur le serveur HTTP du registre miroir.
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 activé le service assisté sur le cluster du concentrateur. Pour plus d'informations, voir Activation du service de gestion de l'infrastructure centrale.
Procédure
Mettez à jour le CR
AgentServiceConfig
en exécutant la commande suivante :$ oc edit AgentServiceConfig
Ajouter l'entrée suivante au champ
items.spec.osImages
du CR :- cpuArchitecture: x86_64 openshiftVersion: "4.12" rootFSUrl: https://<host>/<path>/rhcos-live-rootfs.x86_64.img url: https://<mirror-registry>/<path>/rhcos-live.x86_64.iso
où :
- <host>
- Nom de domaine complet (FQDN) du serveur HTTP du registre miroir cible.
- <sentier>
- Chemin d'accès à l'image sur le registre du miroir cible.
Enregistrez et quittez l'éditeur pour appliquer les modifications.
21.2.5. Configuration du cluster hub pour utiliser un registre miroir déconnecté
Vous pouvez configurer le hub cluster pour utiliser un registre miroir déconnecté pour un environnement déconnecté.
Conditions préalables
- Vous avez une installation de cluster hub déconnecté avec Red Hat Advanced Cluster Management (RHACM) 2.5 installé.
-
Vous avez hébergé les images
rootfs
etiso
sur un serveur HTTP.
Si vous activez TLS pour le serveur HTTP, vous devez confirmer que le certificat racine est signé par une autorité approuvée par le client et vérifier la chaîne de certificats approuvés entre votre hub OpenShift Container Platform et les clusters gérés et le serveur HTTP. L'utilisation d'un serveur configuré avec un certificat non approuvé empêche le téléchargement des images vers le service de création d'images. L'utilisation de serveurs HTTPS non approuvés n'est pas prise en charge.
Procédure
Créer un
ConfigMap
contenant la configuration du registre miroir :apiVersion: v1 kind: ConfigMap metadata: name: assisted-installer-mirror-config namespace: assisted-installer labels: app: assisted-service data: ca-bundle.crt: <certificate> 1 registries.conf: | 2 unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] location = <mirror_registry_url> 3 insecure = false mirror-by-digest-only = true
- 1
- Certificat du registre miroir utilisé lors de la création du registre miroir.
- 2
- Le fichier de configuration du registre des miroirs. La configuration du registre miroir ajoute des informations de miroir à
/etc/containers/registries.conf
dans l'image de découverte. Ces informations sont stockées dans la sectionimageContentSources
du fichierinstall-config.yaml
lorsqu'elles sont transmises au programme d'installation. Le pod de service assisté fonctionnant sur le cluster HUB récupère les images des conteneurs à partir du registre miroir configuré. - 3
- L'URL du registre miroir.
Cette opération met à jour
mirrorRegistryRef
dans la ressource personnaliséeAgentServiceConfig
, comme indiqué ci-dessous :Exemple de sortie
apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent namespace: assisted-installer spec: databaseStorage: volumeName: <db_pv_name> accessModes: - ReadWriteOnce resources: requests: storage: <db_storage_size> filesystemStorage: volumeName: <fs_pv_name> accessModes: - ReadWriteOnce resources: requests: storage: <fs_storage_size> mirrorRegistryRef: name: 'assisted-installer-mirror-config' osImages: - openshiftVersion: <ocp_version> rootfs: <rootfs_url> 1 url: <iso_url> 2
Un serveur NTP valide est requis lors de l'installation des clusters. Assurez-vous qu'un serveur NTP approprié est disponible et qu'il est accessible depuis les grappes installées via le réseau déconnecté.
21.2.6. Configurer le hub cluster pour utiliser des registres non authentifiés
Vous pouvez configurer le cluster hub pour utiliser des registres non authentifiés. Les registres non authentifiés ne nécessitent pas d'authentification pour accéder aux images et les télécharger.
Conditions préalables
- Vous avez installé et configuré un cluster de type hub et installé Red Hat Advanced Cluster Management (RHACM) sur le cluster de type hub.
- Vous avez installé le CLI (oc) de OpenShift Container Platform.
-
Vous vous êtes connecté en tant qu'utilisateur avec les privilèges
cluster-admin
. - Vous avez configuré un registre non authentifié à utiliser avec le cluster hub.
Procédure
Mettez à jour la ressource personnalisée (CR)
AgentServiceConfig
en exécutant la commande suivante :$ oc edit AgentServiceConfig agent
Ajouter le champ
unauthenticatedRegistries
dans le CR :apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: unauthenticatedRegistries: - example.registry.com - example.registry2.com ...
Les registres non authentifiés sont répertoriés sous
spec.unauthenticatedRegistries
dans la ressourceAgentServiceConfig
. Tout registre figurant sur cette liste n'est pas tenu d'avoir une entrée dans le secret d'extraction utilisé pour l'installation du cluster de rayons.assisted-service
valide le secret d'extraction en s'assurant qu'il contient les informations d'authentification pour chaque registre d'image utilisé pour l'installation.
Les registres miroirs sont automatiquement ajoutés à la liste des ignorés et n'ont pas besoin d'être ajoutés sous spec.unauthenticatedRegistries
. La spécification de la variable d'environnement PUBLIC_CONTAINER_REGISTRIES
dans ConfigMap
remplace les valeurs par défaut par la valeur spécifiée. Les valeurs par défaut de PUBLIC_CONTAINER_REGISTRIES
sont quay.io et registry.svc.ci.openshift.org.
Vérification
Vérifiez que vous pouvez accéder au registre nouvellement ajouté à partir du cluster hub en exécutant les commandes suivantes :
Ouvrez un shell de débogage vers le cluster du concentrateur :
oc debug node/<node_name>
Testez l'accès au registre non authentifié en exécutant la commande suivante :
sh-4.4# podman login -u kubeadmin -p $(oc whoami -t) <unauthenticated_registry>
où :
- <registre_non-authentifié>
-
Le nouveau registre est-il, par exemple,
unauthenticated-image-registry.openshift-image-registry.svc:5000
.
Exemple de sortie
Login Succeeded!
21.2.7. Configuration du cluster hub avec ArgoCD
Vous pouvez configurer le cluster hub avec un ensemble d'applications ArgoCD qui génèrent les ressources personnalisées (CR) d'installation et de stratégie requises pour chaque site avec GitOps zero touch provisioning (ZTP).
Red Hat Advanced Cluster Management (RHACM) utilise les CR SiteConfig
pour générer les CR d'installation de cluster géré du jour 1 pour ArgoCD. Chaque application ArgoCD peut gérer un maximum de 300 CR SiteConfig
.
Conditions préalables
- Vous avez un hub cluster OpenShift Container Platform avec Red Hat Advanced Cluster Management (RHACM) et Red Hat OpenShift GitOps installés.
-
Vous avez extrait le déploiement de référence du conteneur du plugin ZTP GitOps comme décrit dans la section "Préparation du référentiel de configuration du site GitOps ZTP". L'extraction du déploiement de référence crée le répertoire
out/argocd/deployment
auquel il est fait référence dans la procédure suivante.
Procédure
Préparer la configuration du pipeline ArgoCD :
- Créez un dépôt Git avec une structure de répertoire similaire au répertoire d'exemple. Pour plus d'informations, voir "Preparing the GitOps ZTP site configuration repository".
Configurez l'accès au référentiel en utilisant l'interface utilisateur d'ArgoCD. Sous Settings, configurez les éléments suivants :
-
Repositories - Ajoutez les informations de connexion. L'URL doit se terminer par
.git
, par exemple,https://repo.example.com/repo.git
et les informations d'identification. - Certificates - Ajoutez le certificat public pour le référentiel, si nécessaire.
-
Repositories - Ajoutez les informations de connexion. L'URL doit se terminer par
Modifiez les deux applications ArgoCD,
out/argocd/deployment/clusters-app.yaml
etout/argocd/deployment/policies-app.yaml
, en fonction de votre dépôt Git :-
Mettez à jour l'URL pour qu'elle pointe vers le dépôt Git. L'URL se termine par
.git
, par exemple,https://repo.example.com/repo.git
. -
Le site
targetRevision
indique la branche du dépôt Git à surveiller. -
path
spécifie le chemin vers les CRSiteConfig
etPolicyGenTemplate
, respectivement.
-
Mettez à jour l'URL pour qu'elle pointe vers le dépôt Git. L'URL se termine par
Pour installer le plugin ZTP GitOps, vous devez patcher l'instance ArgoCD dans le cluster hub en utilisant le fichier patch précédemment extrait dans le répertoire
out/argocd/deployment/
. Exécutez la commande suivante :$ oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
Appliquez la configuration du pipeline à votre cluster hub en utilisant la commande suivante :
$ oc apply -k out/argocd/deployment
21.2.8. Préparation du dépôt de configuration du site ZTP de GitOps
Avant d'utiliser le pipeline ZTP GitOps, vous devez préparer le dépôt Git qui hébergera les données de configuration du site.
Conditions préalables
- Vous avez configuré les applications GitOps du hub cluster pour générer les ressources personnalisées (CR) d'installation et de stratégie requises.
- Vous avez déployé les clusters gérés à l'aide du Zero Touch Provisioning (ZTP).
Procédure
-
Créez une structure de répertoire avec des chemins distincts pour les CR
SiteConfig
etPolicyGenTemplate
. Exportez le répertoire
argocd
à partir de l'image du conteneurztp-site-generate
à l'aide des commandes suivantes :$ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.12
$ mkdir -p ./out
$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.12 extract /home/ztp --tar | tar x -C ./out
Vérifiez que le répertoire
out
contient les sous-répertoires suivants :-
out/extra-manifest
contient les fichiers CR source queSiteConfig
utilise pour générer le manifeste supplémentaireconfigMap
. -
out/source-crs
contient les fichiers CR source quePolicyGenTemplate
utilise pour générer les stratégies de Red Hat Advanced Cluster Management (RHACM). -
out/argocd/deployment
contient des correctifs et des fichiers YAML à appliquer sur le cluster hub pour l'étape suivante de cette procédure. -
out/argocd/example
contient les exemples de fichiersSiteConfig
etPolicyGenTemplate
qui représentent la configuration recommandée.
-
La structure des répertoires sous out/argocd/example
sert de référence pour la structure et le contenu de votre dépôt Git. L'exemple inclut SiteConfig
et PolicyGenTemplate
, des CR de référence pour les clusters à un nœud, à trois nœuds et standard. Supprimez les références aux types de clusters que vous n'utilisez pas. L'exemple suivant décrit un ensemble de CR pour un réseau de clusters à nœud unique :
example ├── policygentemplates │ ├── common-ranGen.yaml │ ├── example-sno-site.yaml │ ├── group-du-sno-ranGen.yaml │ ├── group-du-sno-validator-ranGen.yaml │ ├── kustomization.yaml │ └── ns.yaml └── siteconfig ├── example-sno.yaml ├── KlusterletAddonConfigOverride.yaml └── kustomization.yaml
Conservez les CR SiteConfig
et PolicyGenTemplate
dans des répertoires distincts. Les répertoires SiteConfig
et PolicyGenTemplate
doivent contenir un fichier kustomization.yaml
qui inclut explicitement les fichiers de ce répertoire.
Cette structure de répertoire et les fichiers kustomization.yaml
doivent être validés et transférés dans votre dépôt Git. Le premier transfert vers Git doit inclure les fichiers kustomization.yaml
. Les fichiers SiteConfig
(example-sno.yaml
) et PolicyGenTemplate
(common-ranGen.yaml
, group-du-sno*.yaml
, et example-sno-site.yaml
) peuvent être omis et transférés ultérieurement si nécessaire lors du déploiement d'un site.
Le fichier KlusterletAddonConfigOverride.yaml
n'est requis que si un ou plusieurs CR SiteConfig
qui y font référence sont validés et poussés sur Git. Voir example-sno.yaml
pour un exemple d'utilisation.