Erweiterungen
Antworten auf häufig gestellte Fragen zum Agent for IBM Cloud Schematics.
Welche Aktualisierungen gibt es im Release des GA-Agenten?
Das Agentenrelease enthält die folgenden Funktionen.
- Verbesserungen der Agentenimplementierungserfahrung über CLI und Benutzerschnittstelle.
- Unterstützung für die Ausführung von Ansible-Playbooks auf dem Agenten.
- Dynamische Zuordnung von Arbeitsbereichs-oder Aktionsjobs zum Agenten.
Wie hoch sind die Kosten für die Installation und Verwendung von Agenten?
Im Folgenden finden Sie die Aufgliederung der Kosten für die Bereitstellung und Verwendung eines Schematics-Agenten.
Die vorausgesetzte Infrastruktur, die zum Implementieren und Ausführen eines Agenten erforderlich ist, ist gebührenpflichtig:
- Kosten für VPC-Infrastrukturelemente wie Teilnetz und öffentliche Gateways.
- Kosten für IBM Cloud Kubernetes Service (Cluster) in VPC mit Worker-Pool mit drei Knoten
- Kosten für IBM Cloud Object Storage
Ausführung des Agentenservice:
- Es entstehen keine Kosten für die Ausführung von Jobs auf Agenten.
- Die Agentenfunktion von Schematics Version 1 ist ein nicht gebührenpflichtiges Feature. Zukünftige Versionen können gebührenpflichtig sein.
Ist es möglich, mehrere Agenten auf einem Cluster zu installieren?
Sie können nur einen Agenten im Cluster IBM Cloud Kubernetes Service installieren. Zusätzliche Cluster sind erforderlich, um zusätzliche Agenten bereitzustellen. Wenn Sie versuchen, mehrere Agenten in einem Cluster zu installieren, schlägt der Bereitstellungsjob mit einem Namensbereichskonflikt fehl.
Welche Terraform-Versionen werden mit Agenten unterstützt?
Nur die beiden neuesten Versionen von Terraform, die von Schematics unterstützt werden, werden mit Agenten unterstützt, z. B. Terraform v1.13 und Terraform v1.14. Ältere Versionen von Terraform werden nicht unterstützt.
Arbeitsbereiche, die ältere Terraform-Versionen verwenden, müssen auf eine der unterstützten Versionen aktualisiert werden, bevor Agenten verwendet werden können. Lesen Sie die Anweisungen unter Upgrade auf neue Terraform-Version durchführen,
um ein Upgrade durchzuführen, bevor Sie Agenten verwenden.
Warum schlägt die Ausführung des Arbeitsbereichs mit terraformx.x: executable file not found in $PATH fehl?
Die vom Arbeitsbereich verwendete Version von Terraform wird von Agenten nicht unterstützt. Der Agent unterstützt den Arbeitsbereich mithilfe von Terraform v1.13 und v1.14 oder den beiden neuesten Versionen von Terraform,
die von Schematicsunterstützt werden. Arbeitsbereiche mit älteren Terraform-Versionen müssen für die Unterstützung durch einen Agenten auf eine der unterstützten Versionen aktualisiert werden. Weitere Informationen finden Sie unter Zeitplan für die Einstellung der Unterstützung und Benutzeraktionen für ein Upgrade.
Welcher Typ von Jobs kann in einem Agenten ausgeführt werden?
Sie können Schematics-Arbeitsbereichsjobs für Terraform und Aktionen auf einem Agenten ausführen.
Wie kann ich die Schematics-Jobergebnisse und -Protokolle für die Jobs anzeigen, die auf einem Agenten ausgeführt werden?
Die Jobprotokolle für Arbeitsbereichsjobs oder Aktionen sind in der Schematics-Benutzerschnittstellenkonsole verfügbar. Sie können auf die Jobprotokolle auch über die Schematics-Arbeitsbereichs-API oder die Befehlszeilenschnittstelle zugreifen.
Welche Mindestclusterkonfiguration ist im Agentenrelease erforderlich?
Der Agent benötigt den Service IBM Cloud Kubernetes Service mit mindestens drei Workerknoten des Typs b4x16 oder höher.
Wie viele Arbeitsbereiche können einem Agenten zugeordnet werden?
Derzeit können einem Agenten beliebig viele Arbeitsbereiche zugeordnet werden. Die Arbeitsbereichsjobs werden auf der Basis der Agentenzuordnungsrichtlinie zur Ausführung auf dem Agenten in die Warteschlange gestellt. Der Agent fragt Schematics regelmäßig nach auszuführenden Jobs mit einem Abfrageintervall von einer Minute ab. Standardmäßig führt der Agent nur drei Jobs parallel aus. Die übrigen Jobs werden in die Warteschlange gestellt.
Wie viele Jobs können parallel auf einem Agenten ausgeführt werden?
Schematics Agent kann drei Git-Downloads, Arbeitsbereichsjobs (Terraform-Befehle) und Aktionsjobs (Ansible-Playbooks) parallel ausführen. Alle zusätzlichen Jobs werden in die Warteschlange gestellt und ausgeführt, wenn die Ausführung vorheriger Jobs abgeschlossen ist.
Wie lautet das Standardabfrageintervall für Agenten?
Schematics verwaltet eine Warteschlange mit Jobs für einen Agenten. Standardmäßig fragt der Agent die Jobs jede Minute ab.
Gibt es bei der Arbeit mit Agenten Ausführungszeitlimits?
Schematics Agent lockert die Zeitlimitbegrenzung für die Playbook-Ausführung von local-exec, remote-exec und Ansible. Diese sind auf 60 Minuten im Multi-Tenant-Service begrenzt, um eine faire Servicenutzung durch alle
Benutzer sicherzustellen. Für Jobs, die auf Agenten ausgeführt werden, wird keine Dauer angewendet. Lange Jobausführungszeiten erfordern mehr Benutzerclusterkapazität und Workerknoten, um eine rechtzeitige Ausführung aller Clusterjobs sicherzustellen.
Es wird empfohlen, einen Service wie Continuous Delivery für Jobs mit langer Laufzeit zu verwenden, die Softwareinstallationstasks ausführen.
Was ist der Unterschied zwischen dem Flag agent-location und dem Flag location im Agentenservice?
Der Parameter --agent-location ist eine Variable, die die Region des Clusters angibt, in dem ein Agentenservice implementiert ist. Beispiel: us-south. Muss mit der Clusterregion übereinstimmen.
Der Parameter --location ist eine Variable, die die Region angibt, die vom Schematics-Service unterstützt wird, wie z. B. us-south, us-east, eu-de, eu-gb. Der Agent fragt Schematics-Serviceinstanz
von dieser Position aus nach Arbeitsbereichs-oder Aktionsjobs für die Verarbeitung ab.
Kann ein Agent Arbeitsbereichsjobs ausführen, die verschiedenen Ressourcengruppen zugeordnet sind?
Ja, ein Agent kann Arbeitsbereiche oder Aktionsjobs, die einer beliebigen Ressourcengruppe zugeordnet sind, in einem Konto ausführen. Agentenrichtlinien (Zuordnungsrichtlinien) werden verwendet, um die Ausführung von Jobs auf der Basis von Ressourcengruppen-, Regions-und Benutzertags einem bestimmten Agenten zuzuweisen.
Kann ein Agent mit Arbeitsbereichen und Aktionen arbeiten, die zu verschiedenen Schematics-Regionen gehören?
Agentenbereitstellungen sind einer Schematics-Ausgangsregion für die Jobausführung zugeordnet. Sie können nur Arbeitsbereichs-oder Aktionsjobs ausführen, die in derselben Region wie North America oder Europe definiert
sind.
Der Agent fragt regelmäßig seine Schematics-Ausgangsregion ab, um Jobs abzurufen und auszuführen. Er kann nur Arbeitsbereichs-oder Aktionsjobs ausführen, die für die Region mit ihrer Ausgangsregion definiert sind. Beispiel: Ein Agent, der in
einem Benutzercluster in Sydney implementiert ist, wird mit eu-de als Ausgangsstandort konfiguriert. Der Agent fragt Jobs in der Region 'Europa' ab, die die Regionen eu-de und eu-gb enthalten. Zum Bereitstellen
von Ressourcen mit dem Agenten von Sydney müssen Arbeitsbereiche oder Aktionen in den eu-de-oder eu-gb-Regionen erstellt werden.
Ist es möglich, einen Agenten zu verwenden, um Jobs für mehrere Konten auszuführen?
Nein, Agenten sind einem einzelnen übergeordneten Schematics-Account zugeordnet und können nur Jobs für Arbeitsbereiche oder Aktionen ausführen, die zu diesem Konto gehören.
Kann ein vorhandener Arbeitsbereich Jobs auf einem Agenten ausführen?
Ja. Arbeitsbereiche und Aktionen werden nach Richtlinie für die Ausführung auf Agenten ausgewählt. Ein Schematics agent-selection-policy ordnet vorhandene (oder neue) Arbeitsbereiche oder Aktionen zu, die auf einem Zielagenten ausgeführt
werden sollen, wenn sie den Richtlinienattributen für Tags, Ressourcengruppe, Position entsprechen.
Angenommen, Sie haben einen vorhandenen Arbeitsbereich: wks-0120 mit tag=dev und möchten, dass der Arbeitsbereich unter Agent-1 ausgeführt wird. Erstellen Sie eine agent-selection-policy mit
den Regeln für die Auswahl von Agent-1, wenn die tag == dev. Später wird der Arbeitsbereichsjob, wie z. B. 'plan', 'apply' oder 'update', dynamisch weitergeleitet, um unter Agent-1 ausgeführt zu werden.
Welche IAM-Berechtigungen sind erforderlich, um einen Agenten bereitzustellen?
Informationen zu Zugriffsberechtigungen finden Sie unter Agentenberechtigungen.
Kann ich selbstsignierte oder TLS-Zertifikate während der Laufzeit des Agenten in den Speicher für vertrauenswürdige CA-Stammzertifikate eines Pods oder Containers in IBM Cloud Kubernetes Service einfügen?
Ja, führen Sie die folgenden Schritte aus, um die Zertifikate in eine Agentenlaufzeit einzufügen.
Stellen Sie in den vier .cer-Erweiterungsdateinamen sicher, dass Sie das Leerzeichen durch ein Unterstreichungszeichen ersetzen.
-
Erstellen Sie eine Konfigurationszuordnung mithilfe der Datei
.cer, wie im Befehlkubectrlgezeigt.kubectl -n schematics-runtime create configmap xyz-root —-from-file 2014-2044_xyz_Root.cerkubectl -n schematics-runtime create configmap xyz-authentication —-from-file 2014-2029 xyz_Users_Authentication.cerkubectl -n schematics-runtime create configmap xyz-infrastructure —-from-file 2014-2029 xyz_Infrastructure.cer -
Hängen Sie die Konfigurationszuordnungsdatei als Datenträger in einem Verzeichnis
/etc/ssl/certs/als Dateiagent-runtime-deployment-certs.yamlin einem gemeinsam genutzten Verzeichnisxyz_agent_deployment_filesan.
Das gemeinsam genutzte Verzeichnis xyz_agent_deployment_files enthält zwei YAML-Dateien mit dem Namen - agent-runtime-deployment-certs.yaml und - agent-runtime-deployment.yaml.
Die Datei agent-runtime-deployment-certs.yaml aktualisiert die Zertifikate und hängt die Datei agent-runtime-deployment.yaml an, die Ihnen die gewünschten Implementierungsdetails bereitstellt, um die Zertifikate ohne
weitere Änderungen einzufügen.
Attribute von Arbeitsbereichen oder Aktionen, die zur dynamischen Auswahl eines Zielagenten für die Ausführung verwendet werden
Die folgenden Attribute eines Schematics-Arbeitsbereichs oder einer Aktion werden verwendet, um die Agent-Instanz dynamisch auszuwählen.
- Ressourcengruppe
- Standort (Region)
- Tags
Die Agentenzuordnungsrichtlinie für eine Agenteninstanz bestimmt, welcher Agent zum Ausführen eines Arbeitsbereichs oder Aktionsjobs ausgewählt wird.
Hier ist ein Beispielszenario für die Verwendung von Tags.
Wenn Ihre Organisation drei verschiedene Netzisolationszonen hat (z. B. Dev, HR-Stage und HR-Prod) und Sie drei Agenten installiert haben (jeweils einen für die drei Netzisolationszonen). Sie haben eine
agent-assignment-policy für den Agenten definiert, der in Dev ausgeführt wird, mit dem Selektor tags=dev. Alle Arbeitsbereiche mit tags=dev werden automatisch an den Dev-Agenten
gebunden. Mit anderen Worten: Dev Agent wird verwendet, um Terraform-Vorlagen (aus dem Git-Repository) herunterzuladen und Terraform-Jobs auszuführen. Ebenso kann agent-assignment-policy weitere Attribute der Arbeitsbereiche
enthalten, um den Agenten für die Jobausführung zu definieren.
Wie aktiviere ich den Debugmodus in einem Agenten?
Sie können die folgenden Schritte ausführen, um den Debugmodus eines Agenten zu aktivieren bzw. zu inaktivieren.
- Melden Sie sich bei IBM Cloud an.
- Klicken Sie im Navigatorfenster auf Kubernetes und anschließend auf Cluster.
- Klicken Sie auf der Seite Kubernetes-Cluster auf Cluster > Kubernetes-Dashboard.
- Klicken Sie auf die Dropdown-Liste default, um die Liste der Namensbereiche anzuzeigen:
- Geben Sie in der Dropdown-Liste die Schematics-job-runtime-Namensbereiche ein.
- Klicken Sie unter Konfiguration und Speicher auf Konfigurationszuordnung.
- Auf der Seite Konfigurationszuordnungen. Klicken Sie auf die drei Punkte für schematics-jobrunner-config.
- Klicken Sie auf Bearbeiten, um die Seite Ressource bearbeiten mit den Registerkarten YAML und JSON anzuzeigen.
- Sie können jetzt den Parameter
JR_LOGGERLEVELfür die Mikroserviceprotokollierung der Jobausführung bearbeiten. Standardmäßig lautet der Wert-1, der angibt, dass das Debugging inaktiviert ist, damit SieJR_LOGGERLEVELals0bearbeiten müssen. - Klicken Sie auf Aktualisieren, um Ihre Änderungen zu übernehmen.
- Klicken Sie auf die Dropdown-Liste default, um die Liste der Namensbereiche anzuzeigen:
Kann ich ein Upgrade einer Betaversion des Agenten auf eine GA-Version des Agenten durchführen?
Nein, Sie können kein Upgrade der Betaversion des Agenten auf die GA-Version des Agenten durchführen.
Sind Schematics Agent und Terraform-Cloud-Agenten identisch?
Schematics Agent hat eine ähnliche Rolle wie Terraform Cloud-Agenten.
Werden die Agenten in IBM Cloud-Cloudressourcen ausgeführt?
Schematics Agent kann nur Arbeitsbereichs-und Aktionsworkloads ausführen. Für die Betaversion werden die Agenten in IBM Cloud IBM Cloud Kubernetes Service-Clustern im Benutzerkonto implementiert.
Welche Clusterkonfigurationen sind mindestens erforderlich, um 30 Jobs auf dem Schematics-Agenten zu unterstützen?
Für den Cluster IBM Cloud® Virtual Servers for Virtual Private Cloud oder IBM Cloud® Kubernetes Service. Sie benötigen eine 9 Mindestanzahl von Knoten mit einer bx2.4x16-Version und bearbeiten die folgenden Agentenmikroserviceimplementierungen,
um die vorgeschriebene Replikatanzahl zu erhalten.
| Mikroservice | Anzahl der Replikate |
|---|---|
| Jobrunner | 4 |
| Sandbox | 8 |
| Laufzeit-WS | 16 |
Wie kann ein Benutzer den Job identifizieren, der von einem Agenten erstellt wird?
Sie können angeben, dass der Arbeitsbereich von einem Agenten über die Jobprotokolle des Arbeitsbereichs erstellt wird.
Ist es möglich, dass ein Arbeitsbereich von einem Agenten erstellt wird und immer noch keinen Verweis im Jobprotokoll des Arbeitsbereichs hat?
Nein, Wenn ein Agent einen Arbeitsbereich erstellt, muss eine Referenz im Jobprotokoll des Arbeitsbereichs angezeigt werden. Wenn die Referenz nicht angezeigt wird, müssen Sie überprüfen, ob die Richtlinienvalidierung fehlgeschlagen ist.
Kann der Schematics-Agent eine Verbindung zur privaten Git-Instanz herstellen?
Ja, Schematics Agent stellt eine Verbindung zur privaten Git-Instanz her. Sie müssen jedoch über ein SSL-Zertifikat verfügen und diese Schritte in den Agent-Mikroservices befolgen.
- Stellen Sie eine Verbindung her, indem Sie das SSL-Zertifikat in den
Runtime-wsAgent-MikroservicesJobrunner,Sandbox, und konfigurieren. - Die Konfiguration sollte mithilfe der Kubernetes Service-ConfigMap-Mountfunktion erfolgen.
-
Erstellen Sie eine ConfigMap mit dem erforderlichen SSL-Zertifikat, zum Beispiel:
kubectl -n schematics-job-runtime create configmap mytestcert --from-file cert.pem -
Verwenden Sie "configmap" als Datenträger und "mount" als gemeinsam genutzte Datei in der Implementierungsdatei in
Jobrunner,SandboxundRuntime-ws-Mikroservices.apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" kubernetes.io/change-cause: job_runner_1.0 creationTimestamp: "2023-09-14T12:18:07Z" generation: 1 labels: app: jobrunner name: jobrunner namespace: schematics-job-runtime resourceVersion: "23425" uid: fa66583a-8bdb-40a1-9b05-df2c2bf56656 spec: progressDeadlineSeconds: 600 ..... ..... volumes: - hostPath: path: /var/log/at type: "" name: at-events - hostPath: path: /var/log/schematics type: "" name: ext-logs - name: mytestcert #### added as a volume configMap: name: mytestcert status: availableReplicas: 1 conditions: - lastTransitionTime: "2023-09-14T12:18:42Z" lastUpdateTime: "2023-09-14T12:18:42Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2023-09-14T12:18:07Z" lastUpdateTime: "2023-09-14T12:18:42Z" message: ReplicaSet "jobrunner-7f9ffdf959" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1
-
Kann Schematics Agent eine Verbindung mit der privaten Git-Instanz aktualisieren?
Ja, Sie können den Agenten mit den Metadaten aktualisieren, um das Onboarding des Katalogs mit der privaten Git-Instanz durchzuführen. Verwenden Sie die API-Beispielaktualisierungsanforderung als Referenz.
Führen Sie diesen Schritt nur aus, wenn ein Agent keine Metadaten hat.
curl -X PUT 'https://schematics.cloud.ibm.com/v2/agents/<agent_id>'
-H 'Authorization: Bearer <token>'
-H 'X-Feature-Agents: true'
-H 'refresh_token: <refresh_token>'
-d '{
"agent_metadata": [
{
"name": "purpose",
"value": ["git"]
},
{
"name": "git_endpoints",
"value": ["https://myprivate-gitinstance/testrepo"]
}
]
}'