|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Python Client
Sie können auf die Longhorn-API mit Python-Binding zugreifen.
-
Longhorn-Endpunkt abrufen
Eine Möglichkeit, mit Longhorn zu kommunizieren, ist über den
longhorn-frontendDienst.Wenn Sie Ihr Automatisierungs-/Skript-Tool im selben Cluster ausführen, in dem Longhorn installiert ist, verbinden Sie sich mit dem Endpunkt
http://longhorn-frontend.longhorn-system/v1Wenn Sie Ihr Automatisierungs-/Skript-Tool auf Ihrem lokalen Rechner ausführen, verwenden Sie
kubectl port-forward, um denlonghorn-frontendDienst an localhost weiterzuleiten:kubectl port-forward services/longhorn-frontend 8080:http -n longhorn-system
und verbinden Sie sich mit dem Endpunkt
http://localhost:8080/v1 -
Verwendung des Python-Clients
Importieren Sie die Datei longhorn.py, die den Python-Client enthält, in Ihr Python-Skript und erstellen Sie einen Client vom Endpunkt:
import longhorn # If automation/scripting tool is inside the same cluster in which Longhorn is installed longhorn_url = 'http://longhorn-frontend.longhorn-system/v1' # If forwarding `longhorn-frontend` service to localhost longhorn_url = 'http://localhost:8080/v1' client = longhorn.Client(url=longhorn_url) # Volume operations # List all volumes volumes = client.list_volume() # Get volume by NAME/ID testvol1 = client.by_id_volume(id="testvol1") # Attach TESTVOL1 testvol1 = testvol1.attach(hostId="worker-1") # Detach TESTVOL1 testvol1.detach() # Create a snapshot of TESTVOL1 with NAME snapshot1 = testvol1.snapshotCreate(name="snapshot1") # Create a backup from a snapshot NAME testvol1.snapshotBackup(name=snapshot1.name) # Update the number of replicas of TESTVOL1 testvol1.updateReplicaCount(replicaCount=2) # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests # Node operations # List all nodes nodes = client.list_node() # Get node by NAME/ID node1 = client.by_id_node(id="worker-1") # Disable scheduling for NODE1 client.update(node1, allowScheduling=False) # Enable scheduling for NODE1 client.update(node1, allowScheduling=True) # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests # Setting operations # List all settings settings = client.list_setting() # Get setting by NAME/ID backupTargetsetting = client.by_id_setting(id="backup-target") # Update a setting backupTargetsetting = client.update(backupTargetsetting, value="s3://backupbucket@us-east-1/") # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests