Files
ProxMenux/web/messages/de/docs/oci-manager/architecture.json
T

172 lines
7.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"meta": {
"title": "So wird ein OCI-Image umgesetzt | ProxMenux",
"description": "Vom Image-Repository und der Compose-Datei über eine überprüfbare Vorlage und einen Bereitstellungsplan zu einem nativen LXC unter Proxmox VE – ohne Docker im Container."
},
"header": {
"title": "So wird ein OCI-Image umgesetzt",
"description": "Vom Image-Repository und der Compose-Datei über eine überprüfbare Vorlage und einen Bereitstellungsplan zu einem nativen LXC, ohne Docker darin zu installieren.",
"section": "OCI manager Apps"
},
"sections": [
{
"id": "pipeline",
"title": "Der Umsetzungsablauf",
"blocks": [
{
"mermaid": {
"chartCode": "flowchart LR\n A[\"{{repo}}\"] --> B[\"Compose + README\"]\n B --> C[\"{{converter}}\"]\n C --> D[\"{{template}}\"]\n D --> E{\"{{blockers}}\"}\n E -- \"{{no}}\" --> F[\"{{review}}\"]\n F --> D\n E -- \"{{yes}}\" --> G[\"{{plan}}\"]\n G --> H[\"pct create\"]\n H --> I[\"{{lxc}}\"]",
"labels": {
"repo": "Image-Repository",
"converter": "Konverter",
"template": "JSON-Vorlage",
"blockers": "Keine Hindernisse?",
"no": "Nein",
"yes": "Ja",
"review": "Prüfung / Overlay",
"plan": "Bereitstellungsplan",
"lxc": "Nativer LXC"
}
}
},
{
"p": "Der Konverter liest das vom Projekt veröffentlichte Image und die Compose-Datei und erzeugt eine JSON-Vorlage. Lassen sich Anforderungen noch nicht umsetzen und verhindern dadurch die Installation, wird die Vorlage vor der Veröffentlichung im Katalog geprüft. Eine Datei mit geprüften Anpassungen, das Overlay, löst diese Hindernisse. Nur Vorlagen ohne verbleibende Hindernisse werden zur Installation angeboten."
}
]
},
{
"id": "template",
"title": "Was die Vorlage bewahrt",
"blocks": [
{
"cards": {
"items": [
{
"icon": "archive",
"title": "Image-Identität",
"body": "Repository, fortlaufend aktualisiertes Tag, Architektur, ermittelter Digest und Quellrevision."
},
{
"icon": "braces",
"title": "Container-Vertrag",
"body": "Entrypoint, Cmd, Umgebung, Benutzer, Arbeitsverzeichnis, Stoppsignal, Ports und Volumes."
},
{
"icon": "layers",
"title": "Umsetzung für Proxmox VE",
"body": "Ressourcen, Sicherheit, Mountpoints, Geräte, sysctls und Zustandsprüfungen sowie die jeweils nötigen Anpassungen mit ihrer Begründung."
},
{
"icon": "shield",
"title": "Kompatibilität",
"body": "Unterstützte Schlüssel, noch nicht umgesetzte Anforderungen, die die Installation verhindern, und der Status jeder Validierung."
}
]
}
}
]
},
{
"id": "sources",
"title": "OCI liefert den Prozess, Compose die Umgebung",
"blocks": [
{
"table": {
"headers": [
"Quelle",
"Beispiel",
"Natives Ergebnis"
],
"rows": [
[
"OCI-Metadaten",
"<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>",
"Proxmox VE importiert sie beim Erstellen des CT"
],
[
"Docker Compose",
"<code>environment</code>, <code>volumes</code>, <code>devices</code>",
"LXC-Umgebungseinträge, <code>mpN</code> und <code>devN</code>"
],
[
"ProxMenux-Profil",
"GPU, Zustandsprüfung, Zugangsdaten",
"Rückfragen und geprüfte Anpassungen"
],
[
"Benutzer",
"VMID, Speicher, Netzwerk",
"Der Instanzvertrag"
]
]
}
}
]
},
{
"id": "install",
"title": "Was während der Installation passiert",
"blocks": [
{
"steps": {
"items": [
{
"title": "Referenz auflösen",
"body": "Die Registry wird abgefragt, die Architektur des Hosts ausgewählt und der konkrete Digest festgehalten, auf den das fortlaufend aktualisierte Tag verweist."
},
{
"title": "Herunterladen und prüfen",
"body": "Skopeo lädt das Image als OCI-Archiv herunter. Bevor etwas erstellt wird, wird jede Schicht anhand ihres Digests geprüft und entpackt. Ist der Download beschädigt, wird er einmal wiederholt, bevor die Installation abbricht."
},
{
"title": "Dateisystem erstellen",
"body": "<code>pct create</code> erstellt das rootfs aus dem Archiv und übernimmt die offiziellen Prozessmetadaten des Images."
},
{
"title": "Ressourcen anbinden",
"body": "Die deklarierten Volumes, Netzwerkeinstellungen, Umgebung, Geräte und Sicherheitsprofile werden eingebunden."
},
{
"title": "Konsole",
"body": "Die Konsolenausgabe des Containers wird auf dem Host gespeichert. Die Proxmox-VE-Konsole öffnet eine Shell, sofern das Image eine enthält."
},
{
"title": "Prüfen",
"body": "Beim ersten Start wird gewartet, bis der Container eine Adresse hat und der Dienst antwortet. Schlägt dies fehl, wird die Installation nicht als erfolgreich gemeldet."
},
{
"title": "Konfiguration erfassen",
"body": "Die tatsächlich verwendete Konfiguration wird im Instanzvertrag gespeichert, den Aktualisierungen und Neuerstellungen verwenden."
}
]
}
}
]
},
{
"id": "example",
"title": "Beispiel: ein Image mit /config und /downloads",
"intro": "Eine typische Compose-Definition und die daraus erzeugte Proxmox-VE-Konfiguration. Die von der Anwendung erwarteten Pfade bleiben unverändert.",
"blocks": [
{
"codeGrid": {
"items": [
{
"title": "Docker Compose",
"code": "image: lscr.io/linuxserver/example:latest\nenvironment:\n - PUID=1000\n - PGID=1000\nvolumes:\n - config:/config\n - /srv/downloads:/downloads\nports:\n - 8080:8080"
},
{
"title": "/etc/pve/lxc/VMID.conf (Auszug)",
"code": "entrypoint: /init\nmp0: local-lvm:vm-VMID-disk-1,mp=/config,backup=1,size=8G\nmp1: /srv/downloads,mp=/downloads\nnet0: name=eth0,bridge=vmbr0,ip=dhcp,type=veth\nlxc.environment.runtime: PUID=1000\nlxc.environment.runtime: PGID=1000"
}
]
}
},
{
"p": "<code>mp0</code> ist ein zweiter Datenträger des Containers, der im gewählten Speicher <code>vm-VMID-disk-N</code> heißt. Er wird unter <code>/config</code> eingehängt und mit <code>backup=1</code> in die Containersicherung aufgenommen. <code>mp1</code> erstellt keinen Datenträger, sondern bindet das Host-Verzeichnis <code>/srv/downloads</code> unter <code>/downloads</code> im LXC ein. Port 8080 wird nicht weitergeleitet: Der LXC hat eine eigene Adresse, unter der der Dienst antwortet."
}
]
}
]
}