Hinweis:
- Dieses Tutorial ist in einer von Oracle bereitgestellten kostenlosen Übungsumgebung verfügbar.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
ock-forge mit Oracle Cloud Native Environment verwenden
Einführung
Das Tool Oracle Container Host for Kubernetes Image Builder (OCK Image Builder) erstellt die Oracle Container Host for Kubernetes-(OCK-)Images, die in Oracle Cloud Native Environment-(Oracle CNE-)Deployments verwendet werden. OCK Image Builder hilft, wenn das von Oracle CNE verwendete Standard-OCK-Image Ihre Anforderungen nicht erfüllt, wie z.B.:
- Ein Partitionslayout, das sich vom Standard-OCK-Image unterscheidet.
- Zusätzliche Pakete oder fehlende Gerätetreiber.
OCK Image Builder ist eine Sammlung von Shellskripten, wobei die primäre ock-forge
ist, um ein bootfähiges Image im qcow2-Format zu generieren, um die Clusterknoten zu erstellen, oder ein OSTree-Containerimage, mit dem Oracle CNE Knoten in einem ausgeführten Container aktualisieren kann.
Ziele
In diesem Tutorial lernen Sie Folgendes:
- Installieren, richten Sie ein und verwenden Sie
ock-forge
, um ein benutzerdefiniertes OCK-Image zu erstellen - Oracle CNE-Cluster mit dem benutzerdefinierten OCK-Image erstellen
- Nehmen Sie
extraIgnitionInline:
-Änderungen am OCK-Image entweder als Standard für alle erstellten Cluster oder bei Verwendung mit einem einzelnen Cluster auf
Voraussetzungen
-
Mindestens eine Oracle Linux 9-Instanz
-
Auf jedem System muss Oracle Linux installiert und konfiguriert sein mit:
- Ein Oracle-Benutzerkonto (wird bei der Installation verwendet) mit Sudo-Zugriff
- Schlüsselbasiertes SSH (auch als passwortloses SSH bezeichnet) zwischen den Hosts
- Eine funktionierende KVM-Libvirt-Umgebung.
Oracle Cloud Native Environment bereitstellen
Hinweis: Wenn Sie in Ihrem eigenen Mandanten ausgeführt werden, lesen Sie das Projekt linux-virt-labs
GitHub README.md, und schließen Sie die Voraussetzungen ab, bevor Sie die Übungsumgebung bereitstellen.
-
Öffnen Sie ein Terminal auf dem Luna Desktop.
-
Klonen Sie das Projekt
linux-virt-labs
GitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
Wechseln Sie in das Arbeitsverzeichnis.
cd linux-virt-labs/ocne2
-
Installieren Sie die erforderlichen Collections.
ansible-galaxy collection install -r requirements.yml
-
Erhöhen Sie die Boot-Volume-Größe, installieren Sie libvirt, und verwenden Sie 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
Hinweis: OCK Image Builder funktioniert am besten mit Oracle Linux 9.
-
Stellen Sie die Übungsumgebung bereit.
Installation mit benutzerdefinierter Konfiguration.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
Die kostenlose Übungsumgebung erfordert die zusätzliche Variable
local_python_interpreter
, dieansible_python_interpreter
für Wiedergaben festlegt, die auf localhost ausgeführt werden. Diese Variable ist erforderlich, da die Umgebung das RPM-Package für das Oracle Cloud Infrastructure-SDK für Python installiert, das sich unter den python3.6-Modulen befindet.Die Standard-Deployment-Ausprägung verwendet die AMD-CPU und Oracle Linux 8. Um eine Intel-CPU oder Oracle Linux 9 zu verwenden, fügen Sie dem Deployment-Befehl
-e instance_shape="VM.Standard3.Flex"
oder-e os_version="9"
hinzu.Wichtig: Warten Sie, bis die Arbeitsmappe erfolgreich ausgeführt wurde, und erreichen Sie die Aufgabe "Unterbrechen". In dieser Phase des Handbuchs ist die Installation von Oracle Cloud Native Environment abgeschlossen, und die Instanzen sind bereit. Beachten Sie die vorherige Wiedergabe, in der die öffentlichen und privaten IP-Adressen der bereitgestellten Knoten sowie alle anderen Deployment-Informationen gedruckt werden, die während der Ausführung der Übung benötigt werden.
Oracle Container Host für Kubernetes Builder installieren
Oracle Container Host for Kubernetes Builder (ock-forge
) ist ein Befehlszeilentool zum Erstellen von OSTree-basierten Images von Oracle Container Host for Kubernetes (OCK). ock-forge
kann Images virtueller Maschinen im Format qcow2, Raw-Datenträgerimages oder direkt in ein vorhandenes Blockgerät schreiben. Dieses Tutorial zeigt, wie Sie ein benutzerdefiniertes .qcow2-Image erstellen und verwenden.
-
Öffnen Sie ein Terminal, und stellen Sie eine SSH-Verbindung zur OCNE-Instanz her.
ssh oracle@<ip_address_of_node>
-
Installieren Sie Git und Podman.
sudo dnf install -y git container-tools
Das Programm
ock-forge
erfordert Podman und klont mit Git die Repositorysock-forge
und Oracle Container Host for Kubernetes Configuration(OCK Configuration) aus GitHub. -
Klonen Sie das Repository
ock-forge
.git clone https://github.com/oracle-cne/ock-forge
-
Klonen Sie das Repository der OCK-Konfiguration.
ock-forge
verwendet die OCK-Konfigurationsbaumdateispezifikation für OCK, um ein Image zu erstellen.cd ock-forge/ git clone https://github.com/oracle-cne/ock
OCK-Image erstellen
Als Nächstes erstellen Sie ein Netzwerkblockgerät, fügen dem zu erstellenden OCK-Image einige zusätzliche Linux-Packages hinzu und führen dann mit ock-forge
alle zum Generieren eines bootfähigen OCK-Images erforderlichen Arbeiten aus.
Aktivieren eines Netzwerkblockgeräts
Das Network Block Device (NBD) wird von ock-forge
verwendet, um das generierte .qcow2-Image zu mounten, damit Oracle CNE ein Kubernetes-Cluster erstellen kann.
-
Laden Sie das NBD-Kernelmodul, und weisen Sie ihm acht Partitionen zu.
sudo modprobe nbd max_part=8
-
Bestätigen Sie, dass NBD-Geräte vorhanden sind.
ls -l /dev/nbd*
Beispielausgabe:
[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
OCK-Image-Build anpassen
Sie können zusätzliche Linux-Packages definieren, die dem von ock-forge
erstellten OCK-Image hinzugefügt werden sollen. Die von OCK-forge verwendete Baumdateispezifikation befindet sich im Repository GitHub OCK-Konfiguration.
-
Erstellen Sie ein Verzeichnis für die Anpassungsdatei.
mkdir /home/oracle/ock-forge/ock/configs/config-1.31/custom
-
Erstellen Sie eine Anpassungsdatei, um die Vim- und Emacs-Packages zu installieren.
cat << EOF | tee /home/oracle/ock-forge/ock/configs/config-1.31/custom/myconfig.yaml > /dev/null packages: - vim - emacs EOF
-
Nehmen Sie die Anpassungsdatei in die Datei
manifest.yaml
auf.Hinweis: Sie können der Kubernetes-Konfigurationsdatei zusätzliche Anpassungen für den angestrebten Kubernetes-Build hinzufügen.
sed -i '23i - custom/myconfig.yaml' /home/oracle/ock-forge/ock/configs/config-1.31/manifest.yaml
-
Vergewissern Sie sich, dass die neue Anpassungsdatei in der OCK-Image-Build-Sequenz angezeigt wird, die in der Datei
manifest.yaml
definiert ist.cat /home/oracle/ock-forge/ock/configs/config-1.31/manifest.yaml
Beispielausgabe:
[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
OCK-Image erstellen
-
Verwenden Sie
ock-forge
, um das qcow2-Image zu erstellen.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
Dabei gilt:
-d
: Der Pfad zu einem vorhandenen Block-Device.-D
: Der Pfad zur Datenträgerimagedatei.-i
: Ein vollqualifizierter Containerimagename, einschließlich eines Tags.-C
: Ein Verzeichnis, das eine Gruppe von rpm-ostree-Konfigurationen enthält.-c
: Ein Verzeichnis mit der zu erstellenden rpm-ostree-Konfiguration.-P
: Bei Verwendung dieses Flags wird das mit -d angegebene Block-Device dazu veranlasst, seine Partitionstabelle zu löschen und mit der Standardgeometrie neu zu füllen.
-
Drücken Sie die Eingabetaste, um die Standardcontainerregistrierung (
container-registry.oracle.com/ock-builder:latest
) zu übernehmen.Hinweis: Der Build-Prozess dauert etwa 30 Minuten.
Beispielausgabe:
[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
OCK-Image ändern
Nach Abschluss des OCK-Image-Build-Prozesses können Sie Benutzer erstellen, Dateien erstellen, das Netzwerk konfigurieren, systemd-Einheiten definieren und vieles mehr mit Butane-Konfigurations-YAML-Dateien, die dem Butane-Schema entsprechen, in der Datei qcow2 speichern. Weitere Details finden Sie in der Upstream-Dokumentation zu Butane.
Als Nächstes erstellen Sie eine Butan-konforme YAML-Datei, um eine Textdatei zu erstellen und einen neuen Benutzer einzurichten.
Standardkonfiguration verwenden
Sie haben zwei Möglichkeiten, Anpassungen anzuwenden:
- Verwenden Sie es als Standardwert für alle von Ihnen erstellten Oracle CNE-Cluster.
- Um eine maßgeschneiderte Konfiguration auf ein einzelnes Oracle CNE-Cluster anzuwenden.
Die folgenden Schritte zeigen, wie Sie Ihre Anpassung als Standard für alle von Ihnen erstellten Oracle CNE-Cluster festlegen.
-
Erstellen Sie das Verzeichnis
.ocne
.mkdir /home/oracle/.ocne
-
Fügen Sie die Datei
defaults.yaml
hinzu.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
Wobei (weitere Informationen finden Sie in der upstream-Dokumentation):
variant:
- Muss für die Verwendung mit Oracle CNE auffcos
gesetzt werdenversion:
- Muss für die Verwendung mit Oracle CNE auf1.5.0
gesetzt werdenpath:
:/etcmyfile.txt
(Pfad und Dateiname der erstellten Datei)mode:
– Setzen Sie diesen Wert auf:644
(Sie haben gelesen und geschrieben, dass alle anderen die Datei nur lesen können)user:
undgroup:
: Weisen Sie der angegebenen UID und GID die Dateieigentümerschaft zu. In diesem Beispiel wird die UID und GIDocne
festgelegt.
-
Bestätigen Sie die erstellte Datei.
cat /home/oracle/.ocne/defaults.yaml
Testen Sie das neue OCK-Image, das von OCK-forge erstellt wurde.
-
Kopieren Sie das .qcow2-Image in die Oracle CNE-Installation.
sudo cp /home/oracle/ock-forge/out/1.31/boot.qcow2 /var/lib/libvirt/images/boot.qcow2-1.31
-
Bestätigen Sie, dass das Image .qcow2 kopiert wurde.
sudo ls /var/lib/libvirt/images
-
Starten Sie Oracle CNE mit dem Image .qcow2.
ocne cluster start --version 1.31 -n 1 -w 1 -u false
Beispielausgabe:
[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
-
Prüfen Sie, ob das Cluster vorhanden ist.
ocne cluster list
-
Legen Sie die Umgebungsvariable
kubeconfig
für das neue Cluster fest.export KUBECONFIG=$(ocne cluster show -C ocne)
-
Rufen Sie eine Liste der Clusterknoten ab.
kubectl get nodes
-
Stellen Sie eine Verbindung zum Worker-Knoten her.
ocne cluster console --direct --node ocne-worker-1
-
Prüfen Sie, ob die Datei
myfile.txt
vorhanden ist.ls -lsa /etc/myfile.txt
Beispielausgabe:
sh-4.4# ls -lsa /etc/myfile.txt 4 -rw-r--r--. 1 ocne ocne 13 Apr 16 10:51 /etc/myfile.txt
-
Bestätigen Sie die Installation des Packages
emacs
.ls /bin/emacs
Beispielausgabe:
sh-4.4# ls /bin/emacs /bin/emacs
-
Geben Sie
exit
ein, um den Knotenocne-worker-1
zu verlassen. -
Stellen Sie eine Verbindung zum Control-Plane-Knoten her.
ocne cluster console --direct --node ocne-control-plane-1
-
Prüfen Sie, ob die Datei
myfile.txt
vorhanden ist.ls /etc/myfile.txt
Beispielausgabe:
sh-4.4# ls -lsa /etc/myfile.txt 4 -rw-r--r--. 1 ocne ocne 13 Apr 16 10:50 /etc/myfile.txt
-
Bestätigen Sie die Installation des Packages
emacs
.ls /bin/emacs
Beispielausgabe:
sh-4.4# ls /bin/emacs /bin/emacs
Bestätigen Sie, dass Sie die Standard-Oracle CNE-Clusterknoten angepasst haben, indem Sie eine Textdatei (
/etc/myfile.txt
) und ein Package (emacs
) hinzufügen, die standardmäßig nicht vorhanden sind. -
Geben Sie
exit
ein, um den Knotenocne-control-plane-1
zu verlassen.
Cluster entfernen
-
Löschen Sie das Cluster.
ocne cluster delete
-
Löschen Sie die Datei
defaults.yaml
.rm /home/oracle/.ocne/defaults.yaml
Konfiguration eines einzelnen Clusters aktualisieren
Als Nächstes erstellen Sie eine Anpassungsdatei und wenden sie auf ein einzelnes Oracle CNE-Cluster an.
-
Erstellen Sie eine Konfigurationsdatei.
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
-
Bestätigen Sie die erstellte Datei.
cat /home/oracle/myconfig.yaml
-
Starten Sie Oracle CNE mit dem Image .qcow2.
ocne cluster start -u false -c /home/oracle/myconfig.yaml
Beispielausgabe:
[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
-
Legen Sie die Umgebungsvariable
kubeconfig
für das neue Cluster fest.export KUBECONFIG=$(ocne cluster show -C ocne)
-
Rufen Sie eine Liste der Clusterknoten ab.
kubectl get nodes
-
Stellen Sie eine Verbindung zum Worker-Knoten her.
ocne cluster console --direct --node ocne-worker-1
-
Prüfen Sie, ob die Datei
myfile.txt
vorhanden ist.ls -lsa /etc/myfile.txt
-
Bestätigen Sie die Installation des Packages
emacs
.ls /bin/emacs
-
Geben Sie
exit
ein, um den Knotenocne-worker-1
zu verlassen. -
Stellen Sie eine Verbindung zum Control-Plane-Knoten her.
ocne cluster console --direct --node ocne-control-plane-1
-
Prüfen Sie, ob die Datei
myfile.txt
vorhanden ist.ls -lsa /etc/myfile.txt
-
Bestätigen Sie die Installation des Packages
emacs
.ls /bin/emacs
Bestätigen Sie, dass Sie die Standard-Oracle CNE-Clusterknoten angepasst haben, indem Sie eine Textdatei (
/etc/myfile.txt
) und ein Package (emacs
) hinzufügen, die standardmäßig nicht vorhanden sind. -
Geben Sie
exit
ein, um den Knotenocne-control-plane-1
zu verlassen.
Cluster entfernen
-
Löschen Sie das Cluster.
ocne cluster delete
Nächste Schritte
Durch Anpassen der OCK-Imagedateien von Oracle CNE können Sie die Umgebung ändern, die auf Ihren Oracle CNE Kubernetes-Clusterknoten verwendet wird. Erweitern Sie Ihr Wissen über Kubernetes und Oracle Cloud Native Environment weiter, indem Sie sich unsere anderen Tutorials ansehen, die in der Oracle Linux-Schulungsstation veröffentlicht wurden.
Verwandte Links
- Oracle Cloud Native Environment-Dokumentation
- Oracle Cloud Native Environment-Track
- Oracle Linux-Schulungsstation
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Use ock-forge with Oracle Cloud Native Environment
G33063-01
Copyright ©2025, Oracle and/or its affiliates.