12.3. Mise à jour d'un cluster dans un environnement déconnecté à l'aide du service de mise à jour d'OpenShift


Pour obtenir une expérience de mise à jour similaire aux clusters connectés, vous pouvez utiliser les procédures suivantes pour installer et configurer OpenShift Update Service (OSUS) dans un environnement déconnecté.

Les étapes suivantes décrivent le processus de haut niveau de mise à jour d'un cluster dans un environnement déconnecté à l'aide d'OSUS :

  1. Configurer l'accès à un registre sécurisé.
  2. Mettez à jour le secret d'extraction du cluster global pour accéder à votre registre miroir.
  3. Installer l'OSUS Operator.
  4. Créer une image de conteneur de données graphiques pour le service de mise à jour OpenShift.
  5. Installez l'application OSUS et configurez vos clusters pour utiliser le service de mise à jour local d'OpenShift.
  6. Effectuez une procédure de mise à jour prise en charge à partir de la documentation, comme vous le feriez avec un cluster connecté.

Le service de mise à jour OpenShift (OSUS) fournit des recommandations de mise à jour aux clusters OpenShift Container Platform. Red Hat héberge publiquement le service de mise à jour OpenShift, et les clusters dans un environnement connecté peuvent se connecter au service via des API publiques pour récupérer les recommandations de mise à jour.

Cependant, les clusters dans un environnement déconnecté ne peuvent pas accéder à ces API publiques pour récupérer les informations de mise à jour. Pour avoir une expérience de mise à jour similaire dans un environnement déconnecté, vous pouvez installer et configurer OpenShift Update Service localement afin qu'il soit disponible dans l'environnement déconnecté.

Les sections suivantes décrivent comment installer une instance locale d'OSUS et la configurer pour qu'elle fournisse des recommandations de mise à jour à un cluster.

12.3.2. Conditions préalables

Si les images de version sont contenues dans un registre dont le certificat HTTPS X.509 est signé par une autorité de certification personnalisée, suivez les étapes de la section Configuration de référentiels de confiance supplémentaires pour l'accès au registre d'images, ainsi que les modifications suivantes pour le service de mise à jour.

L'opérateur du service de mise à jour OpenShift a besoin du nom de la clé de la carte de configuration updateservice-registry dans le certificat de l'autorité de certification du registre.

Registre d'images Exemple de carte de configuration de l'autorité de certification pour le service de mise à jour

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-registry-ca
data:
  updateservice-registry: | 
1

    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  registry-with-port.example.com..5000: | 
2

    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
Copy to Clipboard Toggle word wrap

1
L'opérateur du service de mise à jour OpenShift nécessite le nom de la clé de la carte de configuration updateservice-registry dans le certificat de l'autorité de certification du registre.
2
Si le registre comporte le port, tel que registry-with-port.example.com:5000, : doit être remplacé par ...

12.3.4. Mise à jour du secret d'extraction du cluster global

Vous pouvez mettre à jour le secret d'extraction global pour votre cluster en remplaçant le secret d'extraction actuel ou en ajoutant un nouveau secret d'extraction.

Cette procédure est nécessaire lorsque les utilisateurs utilisent, pour stocker les images, un registre différent de celui utilisé lors de l'installation.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.

Procédure

  1. Facultatif : Pour ajouter un nouveau secret d'extraction au secret d'extraction existant, procédez comme suit :

    1. Entrez la commande suivante pour télécharger le secret d'extraction :

      $ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location> 
      1
      Copy to Clipboard Toggle word wrap
      1
      Indiquer le chemin d'accès au fichier de secret d'extraction.
    2. Entrez la commande suivante pour ajouter le nouveau secret d'extraction :

      $ oc registry login --registry="<registry>" \ 
      1
      
      --auth-basic="<username>:<password>" \ 
      2
      
      --to=<pull_secret_location> 
      3
      Copy to Clipboard Toggle word wrap
      1
      Indiquez le nouveau registre. Vous pouvez inclure plusieurs référentiels dans le même registre, par exemple : --registry="<registry/my-namespace/my-repository>".
      2
      Fournir les informations d'identification du nouveau registre.
      3
      Indiquer le chemin d'accès au fichier de secret d'extraction.

      Vous pouvez également procéder à une mise à jour manuelle du fichier "pull secret".

  2. Entrez la commande suivante pour mettre à jour le secret d'extraction global pour votre cluster :

    oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 
    1
    Copy to Clipboard Toggle word wrap
    1
    Indiquez le chemin d'accès au nouveau fichier de secret d'extraction.

    Cette mise à jour est déployée sur tous les nœuds, ce qui peut prendre un certain temps en fonction de la taille de votre cluster.

    Note

    Depuis OpenShift Container Platform 4.7.4, les modifications apportées au secret de tirage global ne déclenchent plus la vidange ou le redémarrage d'un nœud.

12.3.5. Installation de l'opérateur OpenShift Update Service

Pour installer OpenShift Update Service, vous devez d'abord installer OpenShift Update Service Operator en utilisant la console web ou le CLI d'OpenShift Container Platform.

Note

Pour les clusters qui sont installés dans des environnements déconnectés, également connus sous le nom de clusters déconnectés, Operator Lifecycle Manager ne peut pas accéder par défaut aux sources OperatorHub fournies par Red Hat et hébergées sur des registres distants car ces sources distantes requièrent une connectivité Internet complète. Pour plus d'informations, voir Utilisation d'Operator Lifecycle Manager sur des réseaux restreints.

Vous pouvez utiliser la console web pour installer l'opérateur OpenShift Update Service.

Procédure

  1. Dans la console web, cliquez sur Operators OperatorHub.

    Note

    Entrez Update Service dans le champ Filter by keyword…​ pour trouver l'opérateur plus rapidement.

  2. Choisissez OpenShift Update Service dans la liste des opérateurs disponibles et cliquez sur Install.

    1. Le canal v1 est sélectionné comme Update Channel car c'est le seul canal disponible dans cette version.
    2. Sélectionnez A specific namespace on the cluster sous Installation Mode.
    3. Sélectionnez un espace de noms pour Installed Namespace ou acceptez l'espace de noms recommandé openshift-update-service.
    4. Sélectionnez un site Approval Strategy:

      • La stratégie Automatic permet à Operator Lifecycle Manager (OLM) de mettre automatiquement à jour l'opérateur lorsqu'une nouvelle version est disponible.
      • La stratégie Manual exige qu'un administrateur de cluster approuve la mise à jour de l'opérateur.
    5. Cliquez sur Install.
  3. Vérifiez que l'opérateur OpenShift Update Service est installé en passant à la page Operators Installed Operators.
  4. Assurez-vous que OpenShift Update Service est répertorié dans l'espace de noms sélectionné avec un Status de Succeeded.

Vous pouvez utiliser l'OpenShift CLI (oc) pour installer l'OpenShift Update Service Operator.

Procédure

  1. Créer un espace de noms pour l'opérateur de service de mise à jour OpenShift :

    1. Créez un fichier YAML de l'objet Namespace, par exemple, update-service-namespace.yaml, pour l'opérateur du service de mise à jour OpenShift :

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-update-service
        annotations:
          openshift.io/node-selector: ""
        labels:
          openshift.io/cluster-monitoring: "true" 
      1
      Copy to Clipboard Toggle word wrap
      1
      Définissez l'étiquette openshift.io/cluster-monitoring pour activer la surveillance des clusters recommandée par l'opérateur sur cet espace de noms.
    2. Créer l'espace de noms :

      $ oc create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap

      Par exemple :

      $ oc create -f update-service-namespace.yaml
      Copy to Clipboard Toggle word wrap
  2. Installez l'opérateur OpenShift Update Service en créant les objets suivants :

    1. Créez un fichier YAML de l'objet OperatorGroup, par exemple update-service-operator-group.yaml:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: update-service-operator-group
      spec:
        targetNamespaces:
        - openshift-update-service
      Copy to Clipboard Toggle word wrap
    2. Créer un objet OperatorGroup:

      oc -n openshift-update-service create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap

      Par exemple :

      $ oc -n openshift-update-service create -f update-service-operator-group.yaml
      Copy to Clipboard Toggle word wrap
    3. Créez un fichier YAML de l'objet Subscription, par exemple update-service-subscription.yaml:

      Exemple d'abonnement

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: update-service-subscription
      spec:
        channel: v1
        installPlanApproval: "Automatic"
        source: "redhat-operators" 
      1
      
        sourceNamespace: "openshift-marketplace"
        name: "cincinnati-operator"
      Copy to Clipboard Toggle word wrap

      1
      Indiquez le nom de la source de catalogue qui fournit l'opérateur. Pour les clusters qui n'utilisent pas un Operator Lifecycle Manager (OLM) personnalisé, indiquez redhat-operators. Si votre cluster OpenShift Container Platform est installé dans un environnement déconnecté, indiquez le nom de l'objet CatalogSource créé lorsque vous avez configuré Operator Lifecycle Manager (OLM).
    4. Créer l'objet Subscription:

      $ oc create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap

      Par exemple :

      $ oc -n openshift-update-service create -f update-service-subscription.yaml
      Copy to Clipboard Toggle word wrap

      L'opérateur OpenShift Update Service est installé dans l'espace de noms openshift-update-service et cible l'espace de noms openshift-update-service.

  3. Vérifier l'installation de l'opérateur :

    $ oc -n openshift-update-service get clusterserviceversions
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                             DISPLAY                    VERSION   REPLACES   PHASE
    update-service-operator.v4.6.0   OpenShift Update Service   4.6.0                Succeeded
    ...
    Copy to Clipboard Toggle word wrap

    Si l'opérateur OpenShift Update Service est listé, l'installation a réussi. Le numéro de version peut être différent de celui indiqué.

Le service de mise à jour OpenShift nécessite une image de conteneur de données graphiques, à partir de laquelle le service de mise à jour OpenShift récupère des informations sur l'appartenance à un canal et les bords de mise à jour bloqués. Les données de graphe sont généralement récupérées directement à partir du référentiel de données de graphe de la mise à jour. Dans les environnements où une connexion internet n'est pas disponible, le chargement de ces informations à partir d'un conteneur init est une autre façon de rendre les données graphiques disponibles pour le service de mise à jour OpenShift. Le rôle du conteneur init est de fournir une copie locale des données du graphe, et pendant l'initialisation du pod, le conteneur init copie les données sur un volume accessible par le service.

Note

Le plugin oc-mirror OpenShift CLI (oc) crée cette image de conteneur de données graphiques en plus de la mise en miroir des images de version. Si vous avez utilisé le plugin oc-mirror pour créer un miroir de vos images, vous pouvez sauter cette procédure.

Procédure

  1. Créez un fichier Docker, par exemple ./Dockerfile, contenant les éléments suivants :

    FROM registry.access.redhat.com/ubi8/ubi:8.1
    
    RUN curl -L -o cincinnati-graph-data.tar.gz https://api.openshift.com/api/upgrades_info/graph-data
    
    RUN mkdir -p /var/lib/cincinnati-graph-data && tar xvzf cincinnati-graph-data.tar.gz -C /var/lib/cincinnati-graph-data/ --no-overwrite-dir --no-same-owner
    
    CMD ["/bin/bash", "-c" ,"exec cp -rp /var/lib/cincinnati-graph-data/* /var/lib/cincinnati/graph-data"]
    Copy to Clipboard Toggle word wrap
  2. Utilisez le fichier docker créé à l'étape précédente pour construire une image de conteneur de données graphiques, par exemple, registry.example.com/openshift/graph-data:latest:

    $ podman build -f ./Dockerfile -t registry.example.com/openshift/graph-data:latest
    Copy to Clipboard Toggle word wrap
  3. Pousser l'image du conteneur de données graphiques créée à l'étape précédente vers un dépôt accessible à OpenShift Update Service, par exemple, registry.example.com/openshift/graph-data:latest:

    $ podman push registry.example.com/openshift/graph-data:latest
    Copy to Clipboard Toggle word wrap
    Note

    Pour pousser une image de données graphiques vers un registre local dans un environnement déconnecté, copiez l'image du conteneur de données graphiques créée à l'étape précédente vers un référentiel accessible au service de mise à jour OpenShift. Exécutez oc image mirror --help pour connaître les options disponibles.

12.3.7. Création d'une application OpenShift Update Service

Vous pouvez créer une application OpenShift Update Service en utilisant la console web ou le CLI d'OpenShift Container Platform.

Vous pouvez utiliser la console web d'OpenShift Container Platform pour créer une application OpenShift Update Service en utilisant l'OpenShift Update Service Operator.

Conditions préalables

  • L'opérateur de service de mise à jour OpenShift a été installé.
  • L'image du conteneur de données graphiques d'OpenShift Update Service a été créée et poussée vers un dépôt accessible à OpenShift Update Service.
  • La version actuelle et les versions cibles des mises à jour ont été mises en miroir dans un registre accessible localement.

Procédure

  1. Dans la console web, cliquez sur Operators Installed Operators.
  2. Choisissez OpenShift Update Service dans la liste des opérateurs installés.
  3. Cliquez sur l'onglet Update Service.
  4. Cliquez sur Create UpdateService.
  5. Entrez un nom dans le champ Name, par exemple service.
  6. Saisissez le pullspec local dans le champ Graph Data Image vers l'image du conteneur de données graphiques créée dans \N "Création de l'image du conteneur de données graphiques d'OpenShift Update Service\N", par exemple, registry.example.com/openshift/graph-data:latest.
  7. Dans le champ Releases, saisissez le registre local et le référentiel créés pour contenir les images de version dans le document "Mirroring the OpenShift Container Platform image repository", par exemple, registry.example.com/ocp4/openshift4-release-images.
  8. Saisissez 2 dans le champ Replicas.
  9. Cliquez sur Create pour créer l'application OpenShift Update Service.
  10. Vérifiez l'application OpenShift Update Service :

    • Dans la liste UpdateServices de l'onglet Update Service, cliquez sur l'application Update Service que vous venez de créer.
    • Cliquez sur l'onglet Resources.
    • Vérifiez que chaque ressource d'application a un statut de Created.

Vous pouvez utiliser l'OpenShift CLI (oc) pour créer une application OpenShift Update Service.

Conditions préalables

  • L'opérateur de service de mise à jour OpenShift a été installé.
  • L'image du conteneur de données graphiques d'OpenShift Update Service a été créée et poussée vers un dépôt accessible à OpenShift Update Service.
  • La version actuelle et les versions cibles des mises à jour ont été mises en miroir dans un registre accessible localement.

Procédure

  1. Configurez l'espace de noms cible d'OpenShift Update Service, par exemple, openshift-update-service:

    $ NAMESPACE=openshift-update-service
    Copy to Clipboard Toggle word wrap

    L'espace de noms doit correspondre à la valeur targetNamespaces du groupe d'opérateurs.

  2. Configurez le nom de l'application OpenShift Update Service, par exemple, service:

    $ NAME=service
    Copy to Clipboard Toggle word wrap
  3. Configurez le registre local et le référentiel pour les images de version comme configuré dans "Mirroring the OpenShift Container Platform image repository", par exemple, registry.example.com/ocp4/openshift4-release-images:

    $ RELEASE_IMAGES=registry.example.com/ocp4/openshift4-release-images
    Copy to Clipboard Toggle word wrap
  4. Définir le pullspec local pour l'image de données graphiques à l'image de conteneur de données graphiques créée dans " Création de l'image de conteneur de données graphiques d'OpenShift Update Service ", par exemple, registry.example.com/openshift/graph-data:latest:

    $ GRAPH_DATA_IMAGE=registry.example.com/openshift/graph-data:latest
    Copy to Clipboard Toggle word wrap
  5. Créer un objet d'application OpenShift Update Service :

    $ oc -n "${NAMESPACE}" create -f - <<EOF
    apiVersion: updateservice.operator.openshift.io/v1
    kind: UpdateService
    metadata:
      name: ${NAME}
    spec:
      replicas: 2
      releases: ${RELEASE_IMAGES}
      graphDataImage: ${GRAPH_DATA_IMAGE}
    EOF
    Copy to Clipboard Toggle word wrap
  6. Vérifiez l'application OpenShift Update Service :

    1. Utilisez la commande suivante pour obtenir un itinéraire de moteur de stratégie :

      $ while sleep 1; do POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"; SCHEME="${POLICY_ENGINE_GRAPH_URI%%:*}"; if test "${SCHEME}" = http -o "${SCHEME}" = https; then break; fi; done
      Copy to Clipboard Toggle word wrap

      Il se peut que vous deviez interroger le système jusqu'à ce que la commande aboutisse.

    2. Récupérer un graphe du moteur de politiques. Veillez à spécifier une version valide pour channel. Par exemple, si vous utilisez OpenShift Container Platform 4.12, utilisez stable-4.12:

      $ while sleep 10; do HTTP_CODE="$(curl --header Accept:application/json --output /dev/stderr --write-out "%{http_code}" "${POLICY_ENGINE_GRAPH_URI}?channel=stable-4.6")"; if test "${HTTP_CODE}" -eq 200; then break; fi; echo "${HTTP_CODE}"; done
      Copy to Clipboard Toggle word wrap

      Cette opération s'effectue jusqu'à ce que la demande de graphique aboutisse ; toutefois, le graphique résultant peut être vide en fonction des images de version que vous avez mises en miroir.

Note

Le nom de la route du moteur de stratégie ne doit pas comporter plus de 63 caractères, conformément à la norme RFC-1123. Si vous voyez le statut ReconcileCompleted comme false avec la raison CreateRouteFailed causée par host must conform to DNS 1123 naming convention and must be no more than 63 characters, essayez de créer le service de mise à jour avec un nom plus court.

Après l'installation de l'opérateur OpenShift Update Service et la création de l'application OpenShift Update Service, le Cluster Version Operator (CVO) peut être mis à jour pour extraire les données graphiques de l'OpenShift Update Service installé localement.

Conditions préalables

  • L'opérateur de service de mise à jour OpenShift a été installé.
  • L'image du conteneur de données graphiques d'OpenShift Update Service a été créée et poussée vers un dépôt accessible à OpenShift Update Service.
  • La version actuelle et les versions cibles des mises à jour ont été mises en miroir dans un registre accessible localement.
  • L'application OpenShift Update Service a été créée.

Procédure

  1. Définissez l'espace de noms cible du service de mise à jour OpenShift, par exemple, openshift-update-service:

    $ NAMESPACE=openshift-update-service
    Copy to Clipboard Toggle word wrap
  2. Définissez le nom de l'application OpenShift Update Service, par exemple, service:

    $ NAME=service
    Copy to Clipboard Toggle word wrap
  3. Obtenir la route du moteur de politique :

    $ POLICY_ENGINE_GRAPH_URI="$(oc -n "${NAMESPACE}" get -o jsonpath='{.status.policyEngineURI}/api/upgrades_info/v1/graph{"\n"}' updateservice "${NAME}")"
    Copy to Clipboard Toggle word wrap
  4. Définir le patch pour les données du graphique de traction :

    $ PATCH="{\"spec\":{\"upstream\":\"${POLICY_ENGINE_GRAPH_URI}\"}}"
    Copy to Clipboard Toggle word wrap
  5. Patch de l'OVE pour utiliser le service de mise à jour local d'OpenShift :

    $ oc patch clusterversion version -p $PATCH --type merge
    Copy to Clipboard Toggle word wrap
Note

Voir Activation du proxy à l'échelle du cluster pour configurer l'autorité de certification de manière à ce qu'elle fasse confiance au serveur de mise à jour.

12.3.8. Prochaines étapes

Avant de mettre à jour votre cluster, vérifiez que les conditions suivantes sont remplies :

  • Le Cluster Version Operator (CVO) est configuré pour utiliser votre application OpenShift Update Service installée localement.
  • La carte de configuration de la signature de l'image de version pour la nouvelle version est appliquée à votre cluster.
  • Les images de la version actuelle et de la version cible de la mise à jour sont mises en miroir dans un registre accessible localement.
  • Une image récente du conteneur de données graphiques a été mise en miroir dans votre registre local.

Après avoir configuré votre cluster pour utiliser le service de mise à jour OpenShift installé localement et le registre miroir local, vous pouvez utiliser l'une des méthodes de mise à jour suivantes :

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat