3.3. Déployer les charges de travail des conteneurs OpenShift sandboxed à l'aide de la CLI

Vous pouvez déployer des charges de travail de conteneurs OpenShift sandboxed à l'aide de la CLI. Tout d'abord, vous devez installer OpenShift sandboxed containers Operator, puis créer la ressource personnalisée KataConfig. Une fois que vous êtes prêt à déployer une charge de travail dans un conteneur sandboxed, vous devez ajouter kata en tant que runtimeClassName au fichier YAML de la charge de travail.

3.3.1. Installation de l'Opérateur de conteneurs sandboxés OpenShift à l'aide de la CLI

Vous pouvez installer les conteneurs OpenShift sandboxed Operator en utilisant le CLI de OpenShift Container Platform.

Conditions préalables

  • OpenShift Container Platform 4.12 est installé sur votre cluster.
  • Vous avez installé l'OpenShift CLI (oc).
  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez souscrit au catalogue de conteneurs en bac à sable d'OpenShift.

    Note

    L'abonnement au catalogue de conteneurs OpenShift sandboxed donne accès à l'espace de noms openshift-sandboxed-containers-operator à l'opérateur de conteneurs OpenShift sandboxed.

Procédure

  1. Créez l'objet Namespace pour l'Opérateur de conteneurs en bac à sable OpenShift.

    1. Créez un fichier YAML de l'objet Namespace qui contient le manifeste suivant :

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-sandboxed-containers-operator
    2. Créer l'objet Namespace:

      $ oc create -f Namespace.yaml
  2. Créez l'objet OperatorGroup pour l'Opérateur de conteneurs en bac à sable OpenShift.

    1. Créez un fichier YAML de l'objet OperatorGroup qui contient le manifeste suivant :

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: openshift-sandboxed-containers-operator
        namespace: openshift-sandboxed-containers-operator
      spec:
        targetNamespaces:
        - openshift-sandboxed-containers-operator
    2. Créer l'objet OperatorGroup:

      $ oc create -f OperatorGroup.yaml
  3. Créez l'objet Subscription pour abonner Namespace à l'opérateur de conteneurs en bac à sable d'OpenShift.

    1. Créez un fichier YAML de l'objet Subscription qui contient le manifeste suivant :

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-sandboxed-containers-operator
        namespace: openshift-sandboxed-containers-operator
      spec:
        channel: "stable-1.3"
        installPlanApproval: Automatic
        name: sandboxed-containers-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        startingCSV: sandboxed-containers-operator.v1.3.2
    2. Créer l'objet Subscription:

      $ oc create -f Subscription.yaml

L'opérateur OpenShift sandboxed containers est maintenant installé sur votre cluster.

Note

Tous les noms de fichiers d'objets énumérés ci-dessus sont des suggestions. Vous pouvez créer les fichiers YAML des objets en utilisant d'autres noms.

Vérification

  • S'assurer que l'opérateur est correctement installé :

    $ oc get csv -n openshift-sandboxed-containers-operator

    Exemple de sortie

    NAME                             DISPLAY                                  VERSION  REPLACES     PHASE
    openshift-sandboxed-containers   openshift-sandboxed-containers-operator  1.3.2    1.3.1        Succeeded

3.3.2. Création de la ressource personnalisée KataConfig à l'aide du CLI

Vous devez créer une ressource personnalisée (CR) KataConfig pour installer kata en tant que RuntimeClass sur vos nœuds. La création de la CR KataConfig déclenche l'opération suivante de l'opérateur de conteneurs en bac à sable OpenShift :

  • Installez les extensions RHCOS nécessaires, telles que QEMU et kata-containers, sur votre nœud RHCOS.
  • Assurez-vous que le runtime CRI-O est configuré avec les bons gestionnaires de runtime kata.
  • Créez un CR RuntimeClass nommé kata avec une configuration par défaut. Cela permet aux utilisateurs de configurer les charges de travail pour qu'elles utilisent kata comme durée d'exécution en faisant référence à la CR dans le champ RuntimeClassName. Ce CR spécifie également la surcharge de ressources pour le runtime.
Note

Kata est installé par défaut sur tous les nœuds de travail. Si vous souhaitez installer kata en tant que RuntimeClass uniquement sur des nœuds spécifiques, vous pouvez ajouter des étiquettes à ces nœuds, puis définir l'étiquette dans le CR KataConfig lorsque vous le créez.

Conditions préalables

  • Vous avez installé OpenShift Container Platform 4.12 sur votre cluster.
  • Vous avez installé l'OpenShift CLI (oc).
  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez installé l'Opérateur de conteneurs sandboxés OpenShift.
Important

La création de KataConfig CR entraîne le redémarrage automatique des nœuds de travail. Le redémarrage peut prendre de 10 à plus de 60 minutes. Les facteurs qui ralentissent le redémarrage sont les suivants :

  • Un déploiement plus important d'OpenShift Container Platform avec un plus grand nombre de nœuds de travail.
  • Activation du BIOS et de l'utilitaire de diagnostic.
  • Déploiement sur un disque dur plutôt que sur un SSD.
  • Déploiement sur des nœuds physiques tels que le métal nu, plutôt que sur des nœuds virtuels.
  • Une unité centrale et un réseau lents.

Procédure

  1. Créer un fichier YAML avec le manifeste suivant :

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      checkNodeEligibility: false 1
      logLevel: info
    1
    Définissez "checkNodeEligibility" à true pour détecter l'éligibilité du nœud à exécuter kata en tant que RuntimeClass. Pour plus d'informations, voir "Checking whether cluster nodes are eligible to run OpenShift sandboxed containers" (Vérifier si les nœuds du cluster sont éligibles à l'exécution des conteneurs OpenShift).
  2. (Facultatif) Si vous souhaitez installer kata en tant que RuntimeClass uniquement sur certains nœuds, créez un fichier YAML qui inclut l'étiquette dans le manifeste :

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      checkNodeEligibility: false
      logLevel: info
      kataConfigPoolSelector:
        matchLabels:
          <label_key>: '<label_value>' 1
    1
    Les étiquettes dans kataConfigPoolSelector ne prennent en charge que des valeurs uniques ; la syntaxe de nodeSelector n'est pas prise en charge.
  3. Créer la ressource KataConfig:

    oc create -f <file name>.yaml

Le nouveau CR KataConfig est créé et commence à installer kata en tant que RuntimeClass sur les nœuds de travail. Attendez la fin de l'installation de kata et le redémarrage des nœuds de travail avant de passer à l'étape suivante.

Important

OpenShift sandboxed containers installe Kata uniquement en tant que runtime secondaire et optionnel sur le cluster et non en tant que runtime principal.

Vérification

  • Contrôler la progression de l'installation :

    $ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"

    Une fois que la valeur de Is In Progress apparaît comme false, l'installation est terminée.

3.3.3. Déployer une charge de travail dans un conteneur en bac à sable à l'aide de la CLI

OpenShift sandboxed containers installe Kata en tant que runtime secondaire et optionnel sur votre cluster, et non en tant que runtime principal.

Pour déployer une charge de travail modélisée par un pod dans un conteneur en bac à sable, vous devez ajouter kata en tant que runtimeClassName au fichier YAML de la charge de travail.

Conditions préalables

  • Vous avez installé OpenShift Container Platform 4.12 sur votre cluster.
  • Vous avez installé l'OpenShift CLI (oc).
  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez installé l'Opérateur de conteneurs sandboxés OpenShift.
  • Vous avez créé une ressource personnalisée (CR) KataConfig.

Procédure

  • Ajouter runtimeClassName: kata à n'importe quel objet modélisé par un pod :

    • Pod objets
    • ReplicaSet objets
    • ReplicationController objets
    • StatefulSet objets
    • Deployment objets
    • DeploymentConfig objets

Exemple pour les objets Pod

  apiVersion: v1
  kind: Pod
  metadata:
   name: mypod
  spec:
    runtimeClassName: kata

Exemple d'objets de déploiement

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: mypod
    labels:
      app: mypod
  spec:
    replicas: 3
    selector:
      matchLabels:
        app: mypod
    template:
      metadata:
        labels:
          app: mypod
      spec:
        runtimeClassName: kata
        containers:
        - name: mypod
          image: myImage

OpenShift Container Platform crée la charge de travail et commence à la planifier.

Vérification

  • Inspectez le champ runtimeClassName sur un objet pod-templated. Si le champ runtimeClassName est kata, la charge de travail s'exécute sur un conteneur OpenShift sandboxed.