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.
NoteL'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
Créez l'objet
Namespace
pour l'Opérateur de conteneurs en bac à sable OpenShift.Créez un fichier YAML de l'objet
Namespace
qui contient le manifeste suivant :apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator
Créer l'objet
Namespace
:$ oc create -f Namespace.yaml
Créez l'objet
OperatorGroup
pour l'Opérateur de conteneurs en bac à sable OpenShift.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
Créer l'objet
OperatorGroup
:$ oc create -f OperatorGroup.yaml
Créez l'objet
Subscription
pour abonnerNamespace
à l'opérateur de conteneurs en bac à sable d'OpenShift.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
Créer l'objet
Subscription
:$ oc create -f Subscription.yaml
L'opérateur OpenShift sandboxed containers est maintenant installé sur votre cluster.
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
Ressources supplémentaires
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 utilisentkata
comme durée d'exécution en faisant référence à la CR dans le champRuntimeClassName
. Ce CR spécifie également la surcharge de ressources pour le runtime.
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.
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
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écuterkata
en tant queRuntimeClass
. 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).
(Facultatif) Si vous souhaitez installer
kata
en tant queRuntimeClass
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 denodeSelector
n'est pas prise en charge.
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.
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.
Ressources supplémentaires
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 champruntimeClassName
estkata
, la charge de travail s'exécute sur un conteneur OpenShift sandboxed.