OCI-Speicher
SUSE® Rancher Prime Continuous Delivery speichert standardmäßig Kubernetes-Bundle-Ressourcen in etcd. Allerdings hat etcd strenge Größenbeschränkungen und ist nicht für große Arbeitslasten optimiert. Wenn Ihre Bundle-Ressourcen die etcd-Größenbeschränkungen im Ziel-Cluster überschreiten, sollten Sie in Betracht ziehen, eine OCI-Registry als Speicher-Backend zu verwenden.
|
Um die Bundle-Größe zu reduzieren, komprimieren und base64-kodieren Sie den Bundle-Inhalt, bevor Sie ihn in die OCI-Registry hochladen. |
Die Verwendung einer OCI-Registry hilft Ihnen:
-
Die etcd-Belastung zu reduzieren, indem große Bundle-Inhalte ausgelagert werden.
-
Ein standardisiertes Speicher-Backend für große Manifeste oder Helm-Charts zu verwenden.
|
SUSE® Rancher Prime Continuous Delivery überprüft die Integrität von OCI-Artefakten und kennzeichnet OCI-Artefakte als |
Voraussetzungen
-
Eine laufende OCI-Registry.
-
Ein Kubernetes-Geheimnis mit gültigen Anmeldeinformationen.
-
Eine SUSE® Rancher Prime Continuous Delivery-Installation (v2.12.0 oder später).
Wie man OCI-Speicher aktiviert
Um OCI-Speicher zu aktivieren, erstellen Sie ein Geheimnis, das die erforderlichen Informationen und Zugriffsoptionen für die OCI-Registry enthält. Es gibt zwei Möglichkeiten, Geheimnisse zu definieren:
-
Globales Geheimnis: Ein Geheimnis, das genau
ocistorageim selben Namespace wie Ihre `GitRepo`s heißt.-
Dies ist das Fallback-Geheimnis. Wenn kein
GitRepo-Level-Geheimnis angegeben ist, verwendet SUSE® Rancher Prime Continuous Delivery dieses Geheimnis für alle `GitRepo`s im Namespace.
-
-
GitRepo-Level-Geheimnis: Ein benutzerdefiniertes Geheimnis für spezifische
GitRepo-Ressourcen.-
Dies ist ein benutzerdefiniertes Geheimnis, das jeden Namen haben kann und im
GitRepo-Ressource referenziert werden muss. -
Setzen Sie das
ociRegistrySecret-Feld in derGitRepo-Spezifikation auf den Namen des Geheimnisses.
-
|
SUSE® Rancher Prime Continuous Delivery greift nicht auf etcd zurück, wenn das Geheimnis fehlt oder ungültig ist. Stattdessen protokolliert es einen Fehler und überspringt die Bereitstellung. |
Erstellen Sie ein Kubernetes-Geheimnis, das die Registrierungsadresse und optionale Anmeldeinformationen enthält:
apiVersion: v1
kind: Secret
metadata:
name: ocistorage
namespace: fleet-local
type: fleet.cattle.io/bundle-oci-storage/v1alpha1
data:
reference: <base64-encoded-registry-url> # Only the reference field is required. All other fields are optional.
username: <base64-encoded-user>
password: <base64-encoded-password>
insecureSkipTLS: <base64-encoded-true/false>
basicHTTP: <base64-encoded-true/false>
agentUsername: <base64-encoded-readonly-user>
agentPassword: <base64-encoded-password>
|
Das Geheimnis muss den Typ: |
Die Änderung des Geheimnisses löst keine erneute Bereitstellung aus. SUSE® Rancher Prime Continuous Delivery verwendet das neue Registry nur nach einem Git-Update oder einem manuellen Zwangsupdate.
Geheimnisfeldreferenz
Die Felder, die Sie konfigurieren können, sind:
| Feld | Beschreibung | Format | Anmerkungen |
|---|---|---|---|
|
URL der OCI-Registry. |
Base64-kodierter String |
Verwenden Sie keine |
|
Benutzername mit Schreibzugriff auf die Registry. |
Base64-kodierter String |
Wenn nicht angegeben, greift SUSE® Rancher Prime Continuous Delivery ohne Authentifizierung auf die Registry zu. |
|
Passwort für den Benutzer mit Schreibzugriff. |
Base64-kodierter String |
Wenn nicht angegeben, greift SUSE® Rancher Prime Continuous Delivery ohne Authentifizierung auf die Registry zu. |
|
Schreibgeschützter Benutzername für Agenten. |
Base64-kodierter String |
Verwenden Sie schreibgeschützte Anmeldeinformationen für Agenten, um die Sicherheit zu erhöhen. Wenn Sie diese Anmeldeinformationen nicht festlegen, verwendet der Agent den Benutzernamen. |
|
Schreibgeschütztes Passwort für Agenten. |
Base64-kodierter String |
Verwenden Sie schreibgeschützte Anmeldeinformationen für Agenten, um die Sicherheit zu erhöhen. Wenn Sie diese Anmeldeinformationen nicht festlegen, verwendet der Agent das Benutzerpasswort. |
|
Überspringt die TLS-Zertifikatsvalidierung. |
Base64-kodiert |
Nur für Entwicklung oder Tests verwenden. Standardmäßig ist |
|
Aktiviert HTTP anstelle von HTTPS. |
Base64-kodiert |
Nicht empfohlen. Erlaubt unsicheren Datenverkehr. Standardmäßig ist |
SUSE® Rancher Prime Continuous Delivery Beispiel
Betrachten Sie die folgende GitRepo Datei:
apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata:
name: frontend-oci
namespace: fleet-local
spec:
repo: https://github.com/your-org/fleet-oci-example.git
branch: main
paths:
- ./frontend
ociRegistrySecret: ocistorage
Sie können entweder eine YAML-Datei erstellen und anwenden, die die Adresse der Registry und optionale Anmeldeinformationen ähnlich dem obigen Beispiel enthält. Führen Sie dann Folgendes aus:
kubectl apply -f secrets/oci-secret.yaml
Oder Sie können kubectl verwenden, um das Geheimnis mit Klartext zu erstellen. Kubernetes konvertiert die Werte automatisch in Base64.
kubectl -n fleet-local create secret generic ocistorage \
--type=fleet.cattle.io/bundle-oci-storage/v1alpha1 \
--from-literal=username=fleet-ci \
--from-literal=password=fleetRocks \
--from-literal=reference=192.168.1.39:8082 \
--from-literal=insecureSkipTLS=true \
--from-literal=basicHTTP=false \
--from-literal=agentUsername=fleet-ci-readonly \
--from-literal=agentPassword=readonlypass
Um Ihr Geheimnis zu validieren, führen Sie Folgendes aus:
kubectl get secret ocistorage -n fleet-local -o yaml
Um Ihr Geheimnis zu entschlüsseln und anzuzeigen:
kubectl get secret ocistorage -n fleet-local -o json | jq '.data | map_values(@base64d)'