Note :
- Ce tutoriel est disponible dans un environnement de laboratoire gratuit fourni par Oracle.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Utiliser ock-forge avec Oracle Cloud Native Environment
Présentation
L'outil Hôte Oracle Container pour le générateur d'images Kubernetes (OCK Image Builder) crée les images Oracle Container Host for Kubernetes (OCK) utilisées dans les déploiements Oracle Cloud Native Environment (Oracle CNE). OCK Image Builder vous aide si l'image OCK par défaut utilisée par Oracle CNE ne répond pas à vos besoins, par exemple :
- Disposition de partition différente de l'image OCK standard.
- Paquets supplémentaires ou pilotes de périphérique manquants.
OCK Image Builder est une collection de scripts d'interpréteur de commandes, le principal étant ock-forge
pour générer une image au format qcow2 amorçable afin de créer les noeuds de grappe ou une image de conteneur OSTree qu'Oracle CNE peut utiliser pour mettre à jour les noeuds d'un conteneur en cours d'exécution.
Objectifs
Dans ce tutoriel, vous apprendrez à :
- Installez, configurez et utilisez
ock-forge
pour créer une image OCK personnalisée - Créer une grappe Oracle CNE à l'aide de l'image OCK personnalisée
- Inclure les modifications
extraIgnitionInline:
à l'image OCK en tant que valeur par défaut pour toutes les grappes créées ou lorsqu'elles sont utilisées avec une grappe individuelle
Préalables
-
Minimum d'une instance Oracle Linux 9
-
Oracle Linux doit être installé et configuré pour chaque système avec :
- Un compte utilisateur Oracle (utilisé pendant l'installation) avec accès sudo
- SSH basé sur une clé, également appelé SSH sans mot de passe, entre les hôtes
- Environnement libvirt KVM fonctionnel.
Déployer l'environnement natif Oracle Cloud
Note : Si vous exécutez votre propre location, lisez les préalables du projet linux-virt-labs
GitHub README.md et remplissez les conditions requises avant de déployer l'environnement de laboratoire.
-
Ouvrez un terminal sur le Luna Desktop.
-
Clonez le projet
linux-virt-labs
GitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
Accédez au répertoire de travail.
cd linux-virt-labs/ocne2
-
Installez les collections requises.
ansible-galaxy collection install -r requirements.yml
-
Augmentez la taille du volume de démarrage, installez libvirt et utilisez Oracle Linux 9.
cat << EOF | tee instances.yml > /dev/null compute_instances: 1: instance_name: "ocne" type: "server" instance_ocpus: 8 instance_memory: 128 boot_volume_size_in_gbs: 256 ocne_type: "libvirt" install_ocne_rpm: true update_all: true os_version: "9" EOF
Remarque : OCK Image Builder fonctionne mieux sur Oracle Linux 9.
-
Déployez l'environnement de l'exercice.
Installer à l'aide de la configuration personnalisée.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
L'environnement de laboratoire gratuit nécessite la variable supplémentaire
local_python_interpreter
, qui définitansible_python_interpreter
pour les lectures exécutées sur localhost. Cette variable est nécessaire car l'environnement installe l'ensemble RPM pour la trousse SDK Oracle Cloud Infrastructure pour Python, située sous les modules python3.6.La forme de déploiement par défaut utilise le processeur AMD et Oracle Linux 8. Pour utiliser une unité centrale Intel ou Oracle Linux 9, ajoutez
-e instance_shape="VM.Standard3.Flex"
ou-e os_version="9"
à la commande de déploiement.Important : Attendez que le livre de jeu s'exécute avec succès et atteignez la tâche Mettre en pause. À ce stade du livre de jeu, l'installation d'Oracle Cloud Native Environment est terminée et les instances sont prêtes. Prenez note de la lecture précédente, qui imprime les adresses IP publiques et privées des noeuds qu'il déploie et toutes les autres informations de déploiement nécessaires lors de l'exécution de l'exercice.
Installer l'hôte Oracle Container pour Kubernetes Builder
L'hôte de conteneur Oracle pour Kubernetes Builder (ock-forge
) est un outil de ligne de commande permettant de créer des images basées sur OSTree basées sur Oracle Container Host pour Kubernetes (OCK). ock-forge
peut générer des images de machine virtuelle au format qcow2, des images de disque brut ou en écrivant directement sur un périphérique de traitement par blocs existant. Ce tutoriel explique comment créer et utiliser une image .qcow2 personnalisée.
-
Ouvrez un terminal et connectez-vous via SSH à l'instance ocne.
ssh oracle@<ip_address_of_node>
-
Installez Git et Podman.
sudo dnf install -y git container-tools
Le programme
ock-forge
nécessite Podman et utilise Git pour cloner les référentielsock-forge
et Hôte de conteneur Oracle pour la configuration Kubernetes (Configuration d'OCK) à partir de GitHub. -
Clonez le référentiel
ock-forge
.git clone https://github.com/oracle-cne/ock-forge
-
Clonez le référentiel Configuration d'OCK.
ock-forge
utilise la spécification de fichier arborescent de configuration OCK pour la création d'une image.cd ock-forge/ git clone https://github.com/oracle-cne/ock
Créer une image OCK
Ensuite, vous allez créer un périphérique de traitement par blocs réseau, ajouter des ensembles Linux supplémentaires à l'image OCK que vous allez créer, puis utiliser ock-forge
pour effectuer tout le travail requis pour générer une image OCK amorçable.
Activer un appareil par blocs réseau
Le périphérique de traitement par blocs de réseau (NBD) est utilisé par ock-forge
pour monter l'image .qcow2 générée afin qu'Oracle CNE puisse créer une grappe Kubernetes.
-
Chargez le module du noyau NBD et affectez-lui huit partitions.
sudo modprobe nbd max_part=8
-
Vérifiez que les appareils NBD sont présents.
ls -l /dev/nbd*
Exemple de sortie :
[oracle@ocne ~]$ ls -l /dev/nbd* brw-rw----. 1 root disk 43, 0 Jan 15 13:55 /dev/nbd0 brw-rw----. 1 root disk 43, 16 Jan 15 13:55 /dev/nbd1 brw-rw----. 1 root disk 43, 160 Jan 15 13:55 /dev/nbd10 brw-rw----. 1 root disk 43, 176 Jan 15 13:55 /dev/nbd11 brw-rw----. 1 root disk 43, 192 Jan 15 13:55 /dev/nbd12 brw-rw----. 1 root disk 43, 208 Jan 15 13:55 /dev/nbd13 brw-rw----. 1 root disk 43, 224 Jan 15 13:55 /dev/nbd14 brw-rw----. 1 root disk 43, 240 Jan 15 13:55 /dev/nbd15 brw-rw----. 1 root disk 43, 32 Jan 15 13:55 /dev/nbd2 brw-rw----. 1 root disk 43, 48 Jan 15 13:55 /dev/nbd3 brw-rw----. 1 root disk 43, 64 Jan 15 13:55 /dev/nbd4 brw-rw----. 1 root disk 43, 80 Jan 15 13:55 /dev/nbd5 brw-rw----. 1 root disk 43, 96 Jan 15 13:55 /dev/nbd6 brw-rw----. 1 root disk 43, 112 Jan 15 13:55 /dev/nbd7 brw-rw----. 1 root disk 43, 128 Jan 15 13:55 /dev/nbd8 brw-rw----. 1 root disk 43, 144 Jan 15 13:55 /dev/nbd9
Personnaliser la création d'image OCK
Vous pouvez définir des ensembles Linux supplémentaires à ajouter à l'image OCK créée par ock-forge
. La spécification treefile utilisée par OCK-forge se trouve dans le référentiel GitHub OCK Configuration.
-
Créez un répertoire pour le fichier de personnalisation.
mkdir /home/oracle/ock-forge/ock/configs/config-1.31/custom
-
Créez un fichier de personnalisation pour installer les packages Vim et Emacs.
cat << EOF | tee /home/oracle/ock-forge/ock/configs/config-1.31/custom/myconfig.yaml > /dev/null packages: - vim - emacs EOF
-
Incluez le fichier de personnalisation dans le fichier
manifest.yaml
.Note : Vous pouvez ajouter des personnalisations supplémentaires au fichier de configuration Kubernetes pour la compilation Kubernetes ciblée.
sed -i '23i - custom/myconfig.yaml' /home/oracle/ock-forge/ock/configs/config-1.31/manifest.yaml
-
Vérifiez que le nouveau fichier de personnalisation s'affiche dans la séquence de création d'image OCK définie dans le fichier
manifest.yaml
.cat /home/oracle/ock-forge/ock/configs/config-1.31/manifest.yaml
Exemple de sortie :
[oracle@ocne ock-forge]$ cat /home/oracle/ock-forge/ock/configs/config-1.31/manifest.yaml ref: ock automatic-version-prefix: "1.31" documentation: false boot-location: modules machineid-compat: false ... ... include: - base.yaml - ux.yaml - ocne.yaml - removals.yaml - config.yaml - custom/myconfig.yaml ... ... modules: enable: - container-tools:ol8 - virt:kvm_utils3
Créer l'image OCK
-
Utilisez
ock-forge
pour créer l'image qcow2.sudo ./ock-forge -d /dev/nbd0 -D out/1.31/boot.qcow2 -i container-registry.oracle.com/olcne/ock-ostree:1.31 -O ./out/1.31/archive.tar -C ./ock -c configs/config-1.31 -P
Où :
-d
: Chemin d'accès à un périphérique de traitement par blocs existant.-D
: Chemin d'accès au fichier d'image de disque.-i
: Nom d'image de conteneur complet, y compris un marqueur.-C
: Répertoire contenant un jeu de configurations rpm-ostree.-c
: Répertoire contenant la configuration rpm-ostree à créer.-P
: Si cet indicateur est utilisé, le périphérique de traitement par blocs spécifié par -d essuie sa table de partition et le réalimente avec la géométrie par défaut.
-
Appuyez sur Entrée pour accepter le registre de conteneurs par défaut (
container-registry.oracle.com/ock-builder:latest
).Note : Le processus de création prend environ 30 minutes.
Exemple de sortie :
[oracle@ocne ock-forge]$ sudo ./ock-forge -d /dev/nbd0 -D out/1.31/boot.qcow2 -i container-registry.oracle.com/olcne/ock-ostree:1.31 -O ./out/1.31/archive.tar -C ./ock -c configs/config-1.31 -P + [[ -z '' ]] + [[ -z '' ]] + IGNITION_PROVIDER=qemu + [[ -n out/1.31/boot.qcow2 ]] ++ realpath -m out/1.31/boot.qcow2 + DISK=/home/oracle/ock-forge/out/1.31/boot.qcow2 ... ... + podman image exists ock-builder:latest + podman pull ock-builder:latest ? Please select an image: ▸ container-registry.oracle.com/ock-builder:latest docker.io/library/ock-builder:latest
Modifier l'image OCK
Une fois le processus de création OCK Image terminé, il est possible de créer des utilisateurs, de créer des fichiers, de configurer le réseau, de définir des unités système et bien plus encore dans le fichier qcow2 à l'aide des fichiers YAML de configuration Butane conformes au schéma de Butane. Pour plus de détails, consultez la documentation relative au butane en amont.
Ensuite, vous allez créer un fichier YAML conforme à Butane pour créer un fichier texte et configurer un nouvel utilisateur.
Utilisation d'une configuration par défaut
Vous pouvez appliquer des personnalisations de l'une des deux manières suivantes :
- Utilisez-le par défaut pour toutes les grappes CNE Oracle que vous créez.
- Pour appliquer une configuration sur mesure à une seule grappe Oracle CNE.
Les étapes suivantes montrent comment définir votre personnalisation comme valeur par défaut pour toutes les grappes CNE Oracle que vous créez.
-
Créez le répertoire
.ocne
.mkdir /home/oracle/.ocne
-
Ajoutez le fichier
defaults.yaml
.cat << EOF | tee /home/oracle/.ocne/defaults.yaml > /dev/null extraIgnitionInline: | variant: fcos version: 1.5.0 storage: files: - path: /etc/myfile.txt contents: inline: Hello, world! mode: 0644 user: id: 1000 group: id: 1001 EOF
Où (voir la documentation en amont pour plus de détails) :
variant:
- Doit être réglé àfcos
pour être utilisé avec Oracle CNEversion:
- Doit être réglé à1.5.0
pour être utilisé avec Oracle CNEpath:
-/etcmyfile.txt
(chemin et nom de fichier du fichier créé)mode:
- Réglez à :644
(vous avez lu et écrit que tous les autres utilisateurs ne peuvent que le lire)user:
etgroup:
- Affectez la responsabilité du fichier à l'UID et à l'IDG spécifiés. Cet exemple le règle à l'UID et à l'IDGocne
-
Confirmez le fichier créé.
cat /home/oracle/.ocne/defaults.yaml
Testez la nouvelle image OCK créée par OCK-forge.
-
Copiez l'image .qcow2 dans l'installation Oracle CNE.
sudo cp /home/oracle/ock-forge/out/1.31/boot.qcow2 /var/lib/libvirt/images/boot.qcow2-1.31
-
Confirmez l'image .qcow2 copiée.
sudo ls /var/lib/libvirt/images
-
Démarrez Oracle CNE à l'aide de l'image .qcow2.
ocne cluster start --version 1.31 -n 1 -w 1 -u false
Exemple de sortie :
[oracle@ocne ock-forge]$ ocne cluster start --version 1.31 -n 1 -w 1 -u false INFO[2025-04-14T13:47:36Z] Creating new Kubernetes cluster with version 1.31 named ocne INFO[2025-04-14T13:48:34Z] Waiting for the Kubernetes cluster to be ready: ok INFO[2025-04-14T13:48:35Z] Installing core-dns into kube-system: ok INFO[2025-04-14T13:48:36Z] Installing kube-proxy into kube-system: ok INFO[2025-04-14T13:48:39Z] Installing kubernetes-gateway-api-crds into kube-system: ok INFO[2025-04-14T13:48:39Z] Installing flannel into kube-flannel: ok INFO[2025-04-14T13:48:40Z] Installing ui into ocne-system: ok INFO[2025-04-14T13:48:41Z] Installing ocne-catalog into ocne-system: ok INFO[2025-04-14T13:48:41Z] Kubernetes cluster was created successfully INFO[2025-04-14T13:48:41Z] Post install information: To access the cluster from the VM host: copy /home/oracle/.kube/kubeconfig.ocne.vm to that host and run kubectl there To access the cluster from this system: use /home/oracle/.kube/kubeconfig.ocne.local To access the UI, first do kubectl port-forward to allow the browser to access the UI. Run the following command, then access the UI from the browser using via https://localhost:8443 kubectl port-forward -n ocne-system service/ui 8443:443 Run the following command to create an authentication token to access the UI: kubectl create token ui -n ocne-system
-
Vérifiez que la grappe existe.
ocne cluster list
-
Définissez la variable d'environnement
kubeconfig
pour votre nouvelle grappe.export KUBECONFIG=$(ocne cluster show -C ocne)
-
Obtenir la liste des noeuds de la grappe.
kubectl get nodes
-
Connectez-vous au noeud de travail.
ocne cluster console --direct --node ocne-worker-1
-
Vérifiez que le fichier
myfile.txt
existe.ls -lsa /etc/myfile.txt
Exemple de sortie :
sh-4.4# ls -lsa /etc/myfile.txt 4 -rw-r--r--. 1 ocne ocne 13 Apr 16 10:51 /etc/myfile.txt
-
Confirmez l'ensemble
emacs
installé.ls /bin/emacs
Exemple de sortie :
sh-4.4# ls /bin/emacs /bin/emacs
-
Entrez
exit
pour quitter le noeudocne-worker-1
. -
Connectez-vous au noeud du plan de contrôle.
ocne cluster console --direct --node ocne-control-plane-1
-
Vérifiez que le fichier
myfile.txt
existe.ls /etc/myfile.txt
Exemple de sortie :
sh-4.4# ls -lsa /etc/myfile.txt 4 -rw-r--r--. 1 ocne ocne 13 Apr 16 10:50 /etc/myfile.txt
-
Confirmez l'ensemble
emacs
installé.ls /bin/emacs
Exemple de sortie :
sh-4.4# ls /bin/emacs /bin/emacs
Confirmer que vous avez personnalisé les noeuds de grappe Oracle CNE par défaut en ajoutant un fichier texte (
/etc/myfile.txt
) et un ensemble (emacs
) qui ne sont pas présents par défaut. -
Entrez
exit
pour quitter le noeudocne-control-plane-1
.
Supprimer la grappe
-
Supprimer la grappe.
ocne cluster delete
-
Supprimez le fichier
defaults.yaml
.rm /home/oracle/.ocne/defaults.yaml
Mettre à jour la configuration d'une grappe unique
Vous allez ensuite créer et appliquer un fichier de personnalisation à une seule grappe CNE Oracle.
-
Créez un fichier de configuration.
cat << EOF | tee /home/oracle/myconfig.yaml > /dev/null provider: libvirt headless: true name: ocne kubernetesVersion: 1.31 controlPlaneNodes: 1 workerNodes: 1 extraIgnitionInline: | variant: fcos version: 1.5.0 storage: files: - path: /etc/myfile.txt contents: inline: Hello, world! mode: 0644 user: id: 1000 group: id: 1001 EOF
-
Confirmez le fichier créé.
cat /home/oracle/myconfig.yaml
-
Démarrez Oracle CNE à l'aide de l'image .qcow2.
ocne cluster start -u false -c /home/oracle/myconfig.yaml
Exemple de sortie :
[oracle@ocne ~]$ ocne cluster start -u false -c /home/oracle/myconfig.yaml INFO[2025-04-15T18:07:00Z] Creating new Kubernetes cluster with version 1.31 named ocne INFO[2025-04-15T18:08:14Z] Waiting for the Kubernetes cluster to be ready: ok INFO[2025-04-15T18:08:16Z] Installing core-dns into kube-system: ok INFO[2025-04-15T18:08:16Z] Installing kube-proxy into kube-system: ok INFO[2025-04-15T18:08:19Z] Installing kubernetes-gateway-api-crds into kube-system: ok INFO[2025-04-15T18:08:20Z] Installing flannel into kube-flannel: ok INFO[2025-04-15T18:08:20Z] Installing ocne-catalog into ocne-system: ok INFO[2025-04-15T18:08:20Z] Kubernetes cluster was created successfully INFO[2025-04-15T18:08:20Z] Post install information: To access the cluster from the VM host: copy /home/oracle/.kube/kubeconfig.ocne.vm to that host and run kubectl there To access the cluster from this system: use /home/oracle/.kube/kubeconfig.ocne.local
-
Définissez la variable d'environnement
kubeconfig
pour votre nouvelle grappe.export KUBECONFIG=$(ocne cluster show -C ocne)
-
Obtenir la liste des noeuds de la grappe.
kubectl get nodes
-
Connectez-vous au noeud de travail.
ocne cluster console --direct --node ocne-worker-1
-
Vérifiez que le fichier
myfile.txt
existe.ls -lsa /etc/myfile.txt
-
Confirmez l'ensemble
emacs
installé.ls /bin/emacs
-
Entrez
exit
pour quitter le noeudocne-worker-1
. -
Connectez-vous au noeud du plan de contrôle.
ocne cluster console --direct --node ocne-control-plane-1
-
Vérifiez que le fichier
myfile.txt
existe.ls -lsa /etc/myfile.txt
-
Confirmez l'ensemble
emacs
installé.ls /bin/emacs
Confirmer que vous avez personnalisé les noeuds de grappe Oracle CNE par défaut en ajoutant un fichier texte (
/etc/myfile.txt
) et un ensemble (emacs
) qui ne sont pas présents par défaut. -
Entrez
exit
pour quitter le noeudocne-control-plane-1
.
Supprimer la grappe
-
Supprimer la grappe.
ocne cluster delete
Étapes suivantes
La personnalisation des fichiers d'image OCK d'Oracle CNE vous permet de modifier l'environnement utilisé sur les noeuds de votre grappe Kubernetes CNE Oracle. Poursuivez l'expansion de vos connaissances dans Kubernetes et Oracle Cloud Native Environment en consultant nos autres tutoriels publiés sur le poste de formation Oracle Linux.
Liens connexes
- Documentation sur Oracle Cloud Native Environment
- Parcours Environnement natif Oracle Cloud
- Parcours d'apprentissage pour Oracle Linux
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Use ock-forge with Oracle Cloud Native Environment
G33065-01
Copyright ©2025, Oracle and/or its affiliates.