Fleet CLI installieren und verwenden
SUSE® Rancher Prime Continuous Delivery CLI ist eine Befehlszeilenschnittstelle (CLI), die es Ihnen ermöglicht, direkt von Ihrem lokalen Rechner mit SUSE® Rancher Prime Continuous Delivery zu interagieren. Es ermöglicht Ihnen, bundles zu erstellen, anzuwenden und zu inspizieren, ohne dass ein GitRepo erforderlich ist. Typische Anwendungsfälle sind:
-
Testen und Vorschau der Inhalte von Bundles.
-
Erstellen von Bundles direkt aus Helm-Charts, Kubernetes-Manifests und
fleet.yaml-Dateien. -
Überprüfen, welche Cluster ein Bundle anvisieren würde.
-
Validierung von Implementierungen, ohne SUSE® Rancher Prime Continuous Delivery im Cluster zu installieren.
|
Sie können Für weitere Informationen siehe Install Fleet. |
Installieren Sie Fleet CLI
Fleet CLI ist eine eigenständige Binärdatei, die Sie von der Fleet GitHub Releases-Seite herunterladen können.
Linux/macOS
curl -L -o fleet https://github.com/rancher/fleet/releases/latest/download/fleet-linux-amd64
# Make it executable and move to PATH
chmod +x fleet
sudo mv fleet /usr/local/bin/
Voraussetzungen
Stellen Sie sicher, dass Sie die folgenden Tools installiert und konfiguriert haben:
-
Ein funktionierender Kubernetes-Cluster (zum Beispiel k3s, kind oder ein Cloud-Anbieter).
-
kubectlist für Ihren Cluster konfiguriert. -
Helm ist installiert.
-
Fleet CLI ist installiert und in Ihrem Terminal zugänglich.
Wichtige Befehle
SUSE® Rancher Prime Continuous Delivery bietet mehrere CLI-Befehle zum Erstellen, Vorschauen und Bereitstellen von Bundles. Diese Befehle sind nützlich zum Debuggen und Verstehen des Bundle-Lebenszyklus.
-
fleet apply: Erstellt oder zeigt ein Bundle aus lokalen Dateien an, wie z.B. einem Helm-Chart, Kubernetes-Manifests oder Kustomize-Ordnern. Dieser Befehl erfordert keinen Zugriff auf einen Cluster, sodass er auch ohne SUSE® Rancher Prime Continuous Delivery oderkubectlfunktioniert.Beispiel:
fleet apply my-bundle ./manifests
-
fleet target: Liest eine Bundle-Datei und bewertet, welche Cluster es erhalten würden, basierend auf Selektoren und Zielregeln wietargets,targetOverrides,clusterGroupsund Label-Selektoren.Beispiel:
fleet target my-bundle ./manifests
-
fleet deploy: Nimmt die Ausgabe vonfleet targetoder einer dumpiertenbundledeployment/content-Ressource und stellt sie in einem Cluster bereit – genau wiefleet-agentes tun würde.Sie können es in diesen Szenarien verwenden:
fleet apply -o - name ./folder, um die YAML des Bundles vor der Erstellung zu überprüfen. Für weitere Informationen siehe Untersuchung des Bundle-Lebenszyklus mit der CLI. Verwenden Sie es mit einem Ziel, um Selektoren zu debuggen und zu überprüfen, welche Downstream-Cluster angesprochen werden. **fleet deploy --dry-run, um Ressourcen anzuzeigen, die bereitgestellt werden würden, ohne sie anzuwenden.
Ein Beispiel-Bundle mit Fleet CLI bereitstellen
Sie können Workloads bereitstellen, ohne GitRepos zu verwenden, indem Sie sie lokal mit der Kommandozeilenschnittstelle anwenden. Zum Beispiel verwenden Sie das Fleet-Beispiele-Repository:
git clone https://github.com/rancher/fleet-examples
cd fleet-examples/single-cluster
Wenden Sie es auf den aktuellen Cluster an:
fleet apply -o my-cool-bundle manifests
Dieser Befehl erstellt eine Bundle Ressource im Namespace.
Konvertieren Sie ein Helm-Chart in ein Bundle.
Sie können die Fleet CLI verwenden, um ein Helm-Chart in ein Bundle zu konvertieren. Zum Beispiel, um das external-secrets Operator-Chart zu konvertieren:
cat > targets.yaml <<EOF
targets:
- clusterSelector: {}
EOF
mkdir app
cat > app/fleet.yaml <<EOF
defaultNamespace: external-secrets
helm:
repo: https://charts.external-secrets.io
chart: external-secrets
EOF
fleet apply --compress --targets-file=targets.yaml -n fleet-default -o - external-secrets app > eso-bundle.yaml
kubectl apply -f eso-bundle.yaml
Stellen Sie sicher, dass Sie einen Cluster-Selector in targets.yaml verwenden, der mit allen Clustern übereinstimmt, auf die Sie bereitstellen möchten.
Für weitere Informationen siehe Fleet: Multi-Cluster-Bereitstellung mit Hilfe von External Secrets.
Fehlerbehebung
Wenn das Bundle nicht bereit ist:
-
Überprüfen Sie, ob die
fleet-controllerundfleet-agentPods laufen. -
Stellen Sie sicher, dass der
fleet-localCluster registriert ist. -
Überprüfen Sie das Bundle auf Fehlermeldungen:
kubectl describe bundle -n fleet-local <bundle-name> -
Löschen und wenden Sie das Bundle erneut an, wenn Sie auf Konflikte mit Helm-Besitzrechten stoßen.
Überprüfen Sie den Status von Agent und Controller.
Bevor Sie Probleme mit dem Bundle oder der Bereitstellung beheben, vergewissern Sie sich, dass der Fleet-Agent registriert ist und im Downstream-Cluster aktiv ist. Für weitere Informationen siehe Fleet-Agent ist registriert, überwacht BundleDeployments.
Wenn ein Bundle in einem bestimmten Cluster nicht bereit ist, überprüfen Sie Folgendes:
-
Im Management-Cluster:
-
Überprüfen Sie, ob die
fleet-controllerundgitjobPods (oderhelmops, je nach Ihrer Konfiguration) laufen. -
Stellen Sie sicher, dass der Cluster-Status Bereit anzeigt.
-
Überprüfen Sie den Status des Bundles – es sollte eine Fehlermeldung enthalten, wenn die Implementierung fehlgeschlagen ist.
-
-
Im Ziel-Cluster, in dem das Bundle nicht bereit ist:
-
Überprüfen Sie, ob dieser Ziel-Cluster registriert ist und einen laufenden
fleet-agentPod hat. -
Als letzte Möglichkeit überprüfen Sie die Protokolle des
fleet-agentPods.
-