Starten Sie das Anwendungsmanagement
Nach Ihnen "Fügen Sie zum Astra Control ein Kubernetes Cluster hinzu", Sie können Apps auf dem Cluster installieren (außerhalb von Astra Control) und dann auf der Seite Anwendungen in Astra Control, um die Apps zu definieren.
Sie können Apps definieren und managen, die Storage-Ressourcen mit laufenden Pods umfassen, oder Applikationen mit Storage-Ressourcen, ohne laufende Pods auszuführen. Applikationen, auf denen keine Pods ausgeführt werden, werden als reine Daten-Applikationen bezeichnet.
Anforderungen für das Applikationsmanagement
Astra Control verfügt über folgende Anforderungen an das Applikationsmanagement:
-
Lizenzierung: Um mehr als 10 Namespaces zu verwalten, benötigen Sie ein Astra Control Abonnement.
-
Namesaces: Apps können mit Astra Control innerhalb eines oder mehrerer spezifizierter Namespaces auf einem einzigen Cluster definiert werden. Eine App kann Ressourcen enthalten, die mehrere Namespaces innerhalb desselben Clusters umfassen. Astra Control unterstützt nicht die Möglichkeit, Applikationen über mehrere Cluster hinweg zu definieren.
-
Speicherklasse: Wenn Sie eine App installieren, die eine Speicherklasse explizit festgelegt hat und Sie die App klonen müssen, muss das Zielcluster für den Klonvorgang die ursprünglich angegebene Speicherklasse haben. Das Klonen einer Applikation mit einer explizit festgelegten Storage-Klasse auf ein Cluster ohne dieselbe Storage-Klasse schlägt fehl.
-
Kubernetes-Ressourcen: Applikationen, die nicht von Astra Control gesammelte Kubernetes-Ressourcen verwenden, verfügen unter Umständen nicht über umfassende Funktionen zum App-Datenmanagement. Astra Control sammelt die folgenden Kubernetes-Ressourcen:
ClusterRole
ClusterRoleBinding
ConfigMap
CronJob
CustomResourceDefinition
CustomResource
DaemonSet
DeploymentConfig
HorizontalPodAutoscaler
Ingress
MutatingWebhook
NetworkPolicy
PersistentVolumeClaim
Pod
PodDisruptionBudget
PodTemplate
ReplicaSet
Role
RoleBinding
Route
Secret
Service
ServiceAccount
StatefulSet
ValidatingWebhook
Unterstützte Installationsmethoden für Anwendungen
Astra Control unterstützt folgende Installationsmethoden für Anwendungen:
-
Manifest-Datei: Astra Control unterstützt Apps, die aus einer Manifest-Datei mit kubectl installiert wurden. Beispiel:
kubectl apply -f myapp.yaml
-
Helm 3: Wenn Sie Helm zur Installation von Apps verwenden, benötigt Astra Control Helm Version 3. Das Management und Klonen von Apps, die mit Helm 3 installiert sind (oder ein Upgrade von Helm 2 auf Helm 3), werden vollständig unterstützt. Das Verwalten von mit Helm 2 installierten Apps wird nicht unterstützt.
-
Vom Betreiber implementierte Apps: Astra Control unterstützt Apps, die mit Betreibern mit Namespace-Scoped installiert sind, die im Allgemeinen mit einer "Pass-by-Value"-Architektur statt mit "Pass-by-reference"-Architektur konzipiert sind. Ein Operator und die von ihm zu installieren App müssen denselben Namespace verwenden. Möglicherweise müssen Sie die yaml-Bereitstellungsdatei ändern, um sicherzustellen, dass dies der Fall ist.
Im Folgenden sind einige Bedieneranwendungen aufgeführt, die folgende Muster befolgen:
-
Für K8ssandra werden in-Place-Wiederherstellungsvorgänge unterstützt. Für einen Restore-Vorgang in einem neuen Namespace oder Cluster muss die ursprüngliche Instanz der Applikation ausgefallen sein. Dadurch soll sichergestellt werden, dass die überführten Peer-Group-Informationen nicht zu einer instanzübergreifenden Kommunikation führen. Das Klonen der App wird nicht unterstützt.
Astra Control kann einen Operator, der mit einer „Pass-by-reference“-Architektur entworfen wurde, möglicherweise nicht klonen (z.B. der CockroachDB-Operator). Während dieser Art von Klonvorgängen versucht der geklonte Operator, Kubernetes Secrets vom Quelloperator zu beziehen, obwohl er im Zuge des Klonens ein eigenes neues Geheimnis hat. Der Klonvorgang kann fehlschlagen, da Astra Control die Kubernetes-Geheimnisse im Quelloperator nicht kennt.
-
Installation von Apps auf dem Cluster
Nach dem haben "Hat den Cluster hinzugefügt" Bei Astra Control können Sie Apps installieren oder vorhandene Apps auf dem Cluster managen. Jede Anwendung, die einem oder mehreren Namespaces zugeordnet ist, kann verwaltet werden.
Astra Control verwaltet statusorientierte Applikationen nur dann, wenn sich der Storage auf einer Storage-Klasse befindet, die von Astra Control unterstützt wird. Astra Control Service unterstützt alle Storage-Klassen, die von Astra Control Provisioner oder einem allgemeinen CSI-Treiber unterstützt werden.
Definieren von Apps
Nachdem Astra Control Namespaces auf den Clustern ermittelt hat, können Sie Anwendungen definieren, die Sie managen möchten. Sie können wählen die als Applikation gemanagt werden sollen,Verwalten einer App, die einen oder mehrere Namespaces umfasst Oder der als App gemanagt werden soll,Management eines gesamten Namespace als einzelne Applikation. All dies kommt auf die Granularität zurück, die Sie für Datensicherungsvorgänge benötigen.
Astra Control ermöglicht es Ihnen zwar, beide Ebenen der Hierarchie (den Namespace und die Apps in diesem Namespace oder den überspannenden Namespaces) separat zu verwalten, aber die beste Vorgehensweise ist es, eine oder andere zu wählen. Aktionen, die Sie in Astra Control nehmen, können fehlschlagen, wenn die Aktionen gleichzeitig sowohl auf Namespace- als auch auf App-Ebene stattfinden.
Beispielsweise könnten Sie eine Backup-Policy für „maria“ setzen, die über ein wöchentliches Kadenz verfügt, aber vielleicht müssen Sie „mariadb“ (die sich im selben Namespace befindet) häufiger sichern. Basierend auf diesen Anforderungen müssen die Applikationen separat gemanagt werden und nicht als Single Namespace App. |
-
Astra Control ist ein Kubernetes Cluster.
-
Eine oder mehrere installierte Applikationen auf dem Cluster. Weitere Informationen zu unterstützten App-Installationsmethoden.
-
Namespaces sind auf dem Kubernetes-Cluster vorhanden, die Sie Astra Control hinzugefügt haben.
-
(Optional) ein Kubernetes-Etikett auf jeder beliebigen "Unterstützte Kubernetes-Ressourcen".
Eine Bezeichnung ist ein Schlüssel-/Wertpaar, das Sie Kubernetes-Objekten zur Identifizierung zuweisen können. Etiketten erleichtern das Sortieren, Organisieren und Auffinden Ihrer Kubernetes-Objekte. Weitere Informationen zu Kubernetes-Labels: "In der offiziellen Kubernetes-Dokumentation finden Sie weitere Informationen".
-
Bevor Sie beginnen, sollten Sie auch verstehen "Verwalten von Standard- und Systemnames".
-
Wenn Sie in Astra Control mehrere Namespaces mit Ihren Apps verwenden möchten, sollten Sie dies in Betracht ziehen "Ändern von Benutzerrollen mit Namespace-Einschränkungen" Vor dem Definieren von Apps.
-
Anweisungen zum Verwalten von Apps mit der Astra Control API finden Sie im "Astra Automation und API-Informationen".
Definition von Ressourcen, die als Applikation gemanagt werden sollen
Sie können den angeben "Kubernetes-Ressourcen bilden eine Applikation" Die Sie mit Astra Control verwalten möchten. Durch die Definition einer App können Sie Elemente Ihres Kubernetes Clusters zu einer einzelnen Applikation gruppieren. Diese Sammlung von Kubernetes-Ressourcen ist nach Namespace und Auswahlkriterien für Labels organisiert.
Mit der Definition einer App haben Sie eine granularere Kontrolle über die Auswirkungen einer Astra Control Operation, einschließlich Klonen, Snapshots und Backups.
Stellen Sie bei der Definition von Applikationen sicher, dass Sie keine Kubernetes-Ressource in mehrere Applikationen mit Sicherungsrichtlinien aufnehmen. Überlappende Sicherungsrichtlinien für Kubernetes-Ressourcen können zu Datenkonflikten führen. |
Erfahren Sie mehr über das Hinzufügen von Ressourcen im Cluster-Umfang zu Ihren Applikationsnamensräumen.
Außerdem können Sie Clusterressourcen importieren, die den Namespace-Ressourcen zugeordnet sind und die automatisch mit Astra Control integriert sind. Sie können eine Regel hinzufügen, die Ressourcen einer bestimmten Gruppe, Art, Version und optional eine Bezeichnung enthält. Dies sollten Sie tun, wenn Astra Control nicht automatisch Ressourcen enthält.
Sie können keine Ressourcen mit Cluster-Umfang ausschließen, die automatisch von Astra Control enthalten sind.
Sie können Folgendes hinzufügen apiVersions
(Welche Gruppen sind mit der API-Version kombiniert):
RessourcArt | ApiVersions (Gruppe + Version) |
---|---|
|
rbac.authorization.k8s.io/v1 |
|
rbac.authorization.k8s.io/v1 |
|
Apiextensions.k8s.io/v1, apiextensions.k8s.io/v1beta1 |
|
Apiextensions.k8s.io/v1, apiextensions.k8s.io/v1beta1 |
|
Zulassungsregistrierung.k8s.io/v1 |
|
Zulassungsregistrierung.k8s.io/v1 |
-
Wählen Sie auf der Seite Anwendungen die Option Definieren.
-
Geben Sie im Fenster Anwendung definieren den App-Namen ein.
-
Wählen Sie den Cluster aus, auf dem Ihre Anwendung ausgeführt wird, in der Dropdown-Liste * Cluster* aus.
-
Wählen Sie aus der Dropdown-Liste Namespace einen Namespace für Ihre Anwendung aus.
Apps können mit Astra Control in einem oder mehreren festgelegten Namespaces auf einem einzigen Cluster definiert werden. Eine App kann Ressourcen enthalten, die mehrere Namespaces innerhalb desselben Clusters umfassen. Astra Control unterstützt nicht die Möglichkeit, Applikationen über mehrere Cluster hinweg zu definieren. -
(Optional) Geben Sie in jedem Namespace ein Etikett für die Kubernetes-Ressourcen ein. Sie können ein einzelnes Etikett oder ein Label-Auswahlkriterium (Abfrage) festlegen.
Weitere Informationen zu Kubernetes-Labels: "In der offiziellen Kubernetes-Dokumentation finden Sie weitere Informationen". -
(Optional) Fügen Sie zusätzliche Namespaces für die App hinzu, indem Sie Namespace hinzufügen und den Namespace aus der Dropdown-Liste auswählen.
-
(Optional) Geben Sie für alle weiteren Namespaces, die Sie hinzufügen, die Kriterien für eine einzelne Beschriftung oder eine Labelauswahl ein.
-
(Optional) um Ressourcen mit Cluster-Umfang zusätzlich zu den Ressourcen von Astra Control automatisch einzubeziehen, überprüfen Sie zusätzliche Ressourcen mit Cluster-Umfang und füllen Sie Folgendes aus:
-
Wählen Sie Add include Rule.
-
Gruppe: Wählen Sie aus der Dropdown-Liste die API-Ressourcengruppe aus.
-
Art: Wählen Sie aus der Dropdown-Liste den Namen des Objektschemas aus.
-
Version: Geben Sie die API-Version ein.
-
Label selector: Optional ein Etikett enthalten, das der Regel hinzugefügt werden soll. Mit diesem Etikett werden nur die Ressourcen abgerufen, die diesem Etikett entsprechen. Wenn Sie kein Etikett bereitstellen, sammelt Astra Control alle Instanzen der für diesen Cluster angegebenen Ressourcenkartart.
-
Überprüfen Sie die Regel, die auf Ihren Einträgen erstellt wird.
-
Wählen Sie Hinzufügen.
Sie können die gewünschten Ressourcenregeln mit dem Cluster-Umfang erstellen. Die Regeln werden in der Anwendungsübersicht definieren angezeigt.
-
-
Wählen Sie Definieren.
-
Nachdem Sie Definieren ausgewählt haben, wiederholen Sie den Vorgang für andere Apps, je nach Bedarf.
Nachdem Sie die Definition einer App abgeschlossen haben, wird die App in angezeigt Healthy
Geben Sie in der Liste der Apps auf der Seite Anwendungen an. Sie können sie jetzt klonen und erstellen Backups und Snapshots.
Die gerade hinzugefügte App verfügt möglicherweise über ein Warnsymbol unter der Spalte „geschützt“, das angibt, dass sie nicht gesichert ist und noch keine Backups geplant sind. |
Um Details zu einer bestimmten App anzuzeigen, wählen Sie den App-Namen aus. |
Um die Ressourcen anzuzeigen, die dieser App hinzugefügt wurden, wählen Sie die Registerkarte Ressourcen aus. Wählen Sie in der Spalte „Ressource“ die Nummer nach dem Ressourcennamen aus, oder geben Sie den Ressourcennamen in „Suche“ ein, um die zusätzlichen Ressourcen anzuzeigen, die im Cluster-Umfang enthalten sind.
Definieren Sie einen Namespace, der als App gemanagt werden soll
Sie können alle Kubernetes-Ressourcen im Namespace zum Astra Control Management hinzufügen, indem Sie die Ressourcen dieses Namespace als Applikation definieren. Diese Methode ist vorzuziehen, Apps einzeln zu definieren, wenn Sie "Alle Ressourcen in einem bestimmten Namespace managen und schützen sollen" Auf ähnliche Weise und in gemeinsamen Abständen.
-
Wählen Sie auf der Seite Cluster einen Cluster aus.
-
Wählen Sie die Registerkarte Namesaces aus.
-
Wählen Sie das Menü Aktionen für den Namespace aus, der die Anwendungsressourcen enthält, die Sie verwalten möchten, und wählen Sie als Anwendung definieren aus.
Wenn Sie mehrere Anwendungen definieren möchten, wählen Sie in der Namensliste die Schaltfläche Aktionen in der linken oberen Ecke aus und wählen Sie als Anwendung definieren aus. Damit werden mehrere einzelne Anwendungen in ihren einzelnen Namespaces definiert. Informationen zu Applikationen mit mehreren Namespaces finden Sie unter die als Applikation gemanagt werden sollen. Aktivieren Sie das Kontrollkästchen System-Namespaces, um Systemnamenpaces anzuzeigen, die in der Regel nicht standardmäßig in der App-Verwaltung verwendet werden. "Weitere Informationen".
Nach Abschluss des Prozesses werden die dem Namespace zugeordneten Anwendungen im angezeigt Associated applications
Spalte.
[Tech Preview] Definieren Sie eine Applikation mithilfe einer benutzerdefinierten Kubernetes-Ressource
Sie können die Kubernetes-Ressourcen angeben, die Sie mit Astra Control managen möchten, indem Sie sie als Applikation mithilfe einer benutzerdefinierten Ressource definieren. Sie können Ressourcen mit Cluster-Umfang hinzufügen, wenn Sie diese Ressourcen einzeln oder alle Kubernetes-Ressourcen in einem Namespace managen möchten, wenn Sie beispielsweise alle Ressourcen in einem bestimmten Namespace auf ähnliche Weise und in gängigen Intervallen managen und schützen möchten.
-
Erstellen Sie die CR-Datei (Custom Resource) und benennen Sie sie (z. B.
astra_mysql_app.yaml
). -
Benennen Sie die Anwendung in
metadata.name
. -
Definieren Sie die zu verwaltenden Anwendungsressourcen:
spec.includedClusterScopedResourcesHinzufügen von Ressourcentypen mit Cluster-Umfang zusätzlich zu den von Astra Control automatisch enthaltenen Ressourcen:
-
spec.includedClusterScopedResources: (Optional) Eine Liste der im Cluster enthaltenen Ressourcentypen.
-
GroupVersionRind: (Optional) eindeutig identifiziert eine Art.
-
Group: (erforderlich, wenn groupVersionRind verwendet wird) API-Gruppe der einzuschließen Ressource.
-
Version: (erforderlich, wenn groupVersionRind verwendet wird) API-Version der einzubauenden Ressource.
-
Kind: (erforderlich, wenn groupVersionRind verwendet wird) Art der Ressource, die einbezogen werden soll.
-
-
LabelSelector: (Optional) Eine Label-Abfrage für eine Gruppe von Ressourcen. Es wird verwendet, um nur die Ressourcen abzurufen, die der Bezeichnung entsprechen. Wenn Sie kein Etikett bereitstellen, sammelt Astra Control alle Instanzen der für diesen Cluster angegebenen Ressourcenkartart. Das Ergebnis von matchLabels und matchExpressions ist ANDed.
-
MatchLabels: (Optional) Eine Karte von {key,value} Paaren. Ein einzelner {key,value} in der matchLabels-Karte entspricht einem Element von matchExpressions, das ein Schlüsselfeld von "key", Operator als "in" und Values-Array enthält, das nur "value" enthält. Die Anforderungen sind ANDed.
-
MatchExpressions: (Optional) Eine Liste der Anforderungen an die Etikettenauswahl. Die Anforderungen sind ANDed.
-
Key: (erforderlich, wenn matchExpressions verwendet wird) der Label-Schlüssel, der mit dem Label-Selektor verknüpft ist.
-
Operator: (erforderlich, wenn matchExpressions verwendet wird) stellt die Beziehung eines Schlüssels zu einem Satz von Werten dar. Gültige Operatoren sind
In
,NotIn
,Exists
UndDoesNotExist
. -
Values: (erforderlich, wenn matchExpressions verwendet wird)_ein Array von String-Werten. Wenn der Operator ist
In
OderNotIn
, Das Wertearray darf _Not leer sein. Wenn der Operator istExists
OderDoesNotExist
, Das Werte-Array muss leer sein.
-
-
-
spec.includedNamespacesFügen Sie Namespaces und Ressourcen in diesen Ressourcen in der Anwendung ein:
-
spec.includedNamespaces: _(required)_definiert den Namespace und optionale Filter für die Ressourcenauswahl.
-
Namespace: (erforderlich) der Namespace, der die App-Ressourcen enthält, die Sie mit Astra Control managen möchten.
-
LabelSelector: (Optional) Eine Label-Abfrage für eine Gruppe von Ressourcen. Es wird verwendet, um nur die Ressourcen abzurufen, die der Bezeichnung entsprechen. Wenn Sie kein Etikett bereitstellen, sammelt Astra Control alle Instanzen der für diesen Cluster angegebenen Ressourcenkartart. Das Ergebnis von matchLabels und matchExpressions ist ANDed.
-
MatchLabels: (Optional) Eine Karte von {key,value} Paaren. Ein einzelner {key,value} in der matchLabels-Karte entspricht einem Element von matchExpressions, das ein Schlüsselfeld von "key", Operator als "in" und Values-Array enthält, das nur "value" enthält. Die Anforderungen sind ANDed.
-
MatchExpressions: (Optional) Eine Liste der Anforderungen an die Etikettenauswahl.
key
Undoperator
Erforderlich sind. Die Anforderungen sind ANDed.-
Key: (erforderlich, wenn matchExpressions verwendet wird) der Label-Schlüssel, der mit dem Label-Selektor verknüpft ist.
-
Operator: (erforderlich, wenn matchExpressions verwendet wird) stellt die Beziehung eines Schlüssels zu einem Satz von Werten dar. Gültige Operatoren sind
In
,NotIn
,Exists
UndDoesNotExist
. -
Values: (erforderlich, wenn matchExpressions verwendet wird) ein Array von String-Werten. Wenn der Operator ist
In
OderNotIn
, Das Wertearray darf Not leer sein. Wenn der Operator istExists
OderDoesNotExist
, Das Werte-Array muss leer sein.
-
-
-
Beispiel YAML:
apiVersion: astra.netapp.io/v1 kind: Application metadata: name: astra_mysql_app spec: includedNamespaces: - namespace: astra_mysql_app labelSelector: matchLabels: app: nginx env: production matchExpressions: - key: tier operator: In values: - frontend - backend
-
-
Nachdem Sie das ausgefüllt haben
astra_mysql_app.yaml
Datei mit den richtigen Werten, CR anwenden:kubectl apply -f astra_mysql_app.yaml -n astra-connector
Und wie sieht es mit System-Namespaces aus?
Astra Control erkennt auch Systemnames auf einem Kubernetes Cluster. Wir zeigen Ihnen diese System-Namespaces standardmäßig nicht, da es selten ist, dass Sie die Ressourcen der System-App sichern müssen.
Sie können Systemnames auf der Registerkarte Namespaces für ein ausgewähltes Cluster anzeigen, indem Sie das Kontrollkästchen System-Namespaces anzeigen auswählen.
Astra Control selbst ist keine Standard-App, sondern eine „System-App“. Sie sollten nicht versuchen, Astra Control selbst zu verwalten. Astra Control selbst wird für das Management nicht standardmäßig angezeigt. |