Inizia a gestire le app
Dopo di lei "Aggiungere un cluster Kubernetes ad Astra Control", È possibile installare le applicazioni sul cluster (al di fuori di Astra Control), quindi andare alla pagina delle applicazioni in Astra Control per definire le applicazioni.
Puoi definire e gestire le app che includono risorse storage con pod in esecuzione o app che includono risorse storage senza pod in esecuzione. Le app che non hanno pod in esecuzione sono note come applicazioni solo dati.
Requisiti di gestione delle applicazioni
Astra Control ha i seguenti requisiti di gestione delle applicazioni:
-
Licensing: Per gestire più di 10 spazi dei nomi, è necessario un abbonamento Astra Control.
-
Namespace: Le applicazioni possono essere definite all'interno di uno o più namespace specificati su un singolo cluster utilizzando Astra Control. Un'applicazione può contenere risorse che spaziano da più spazi dei nomi all'interno dello stesso cluster. Astra Control non supporta la possibilità di definire le applicazioni in più cluster.
-
Storage class: Se si installa un'applicazione con una classe di storage impostata in modo esplicito e si deve clonare l'applicazione, il cluster di destinazione per l'operazione di clone deve avere la classe di storage specificata in origine. La clonazione di un'applicazione con una classe di storage esplicitamente impostata su un cluster che non ha la stessa classe di storage non avrà esito positivo.
-
Kubernetes resources: Le applicazioni che utilizzano Kubernetes Resources non raccolte da Astra Control potrebbero non disporre di funzionalità complete di gestione dei dati delle applicazioni. Astra Control raccoglie le seguenti risorse Kubernetes:
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
Metodi di installazione delle applicazioni supportati
Astra Control supporta i seguenti metodi di installazione dell'applicazione:
-
Manifest file: Astra Control supporta le applicazioni installate da un file manifest utilizzando kubectl. Ad esempio:
kubectl apply -f myapp.yaml
-
Helm 3: Se utilizzi Helm per installare le app, Astra Control richiede Helm versione 3. La gestione e la clonazione delle applicazioni installate con Helm 3 (o aggiornate da Helm 2 a Helm 3) sono completamente supportate. La gestione delle applicazioni installate con Helm 2 non è supportata.
-
Applicazioni distribuite dall'operatore: Astra Control supporta le applicazioni installate con operatori con ambito namespace, in generale progettati con un'architettura "pass-by-value" piuttosto che "pass-by-reference". Un operatore e l'applicazione che installa devono utilizzare lo stesso namespace; potrebbe essere necessario modificare il file .yaml di implementazione per l'operatore per assicurarsi che questo sia il caso.
Di seguito sono riportate alcune applicazioni per operatori che seguono questi modelli:
-
Per K8ssandra, sono supportate le operazioni di ripristino in-place. Un'operazione di ripristino su un nuovo namespace o cluster richiede che l'istanza originale dell'applicazione venga tolto. In questo modo si garantisce che le informazioni del peer group trasportate non conducano a comunicazioni tra istanze. La clonazione dell'applicazione non è supportata.
Astra Control potrebbe non essere in grado di clonare un operatore progettato con un'architettura "pass-by-reference" (ad esempio, l'operatore CockroachDB). Durante questi tipi di operazioni di cloning, l'operatore clonato tenta di fare riferimento ai segreti di Kubernetes dall'operatore di origine, nonostante abbia il proprio nuovo segreto come parte del processo di cloning. L'operazione di clonazione potrebbe non riuscire perché Astra Control non è a conoscenza dei segreti di Kubernetes nell'operatore di origine.
-
Installa le app sul tuo cluster
Dopo di che "aggiunto il cluster" In Astra Control, puoi installare le app o gestire quelle esistenti sul cluster. È possibile gestire qualsiasi applicazione con un ambito per uno o più spazi dei nomi.
Astra Control gestirà le applicazioni stateful solo se lo storage si trova su una classe di storage supportata da Astra Control. Astra Control Service supporta qualsiasi classe di storage supportata da Astra Control Provivioner o da un driver CSI generico.
Definire le applicazioni
Una volta che Astra Control rileva gli spazi dei nomi sui cluster, è possibile definire le applicazioni che si desidera gestire. È possibile scegliere gestisci un'applicazione che spazia uno o più spazi dei nomi oppure gestire un intero namespace come singola applicazione. Tutto questo si riduce al livello di granularità necessario per le operazioni di protezione dei dati.
Sebbene Astra Control ti consenta di gestire separatamente entrambi i livelli della gerarchia (lo spazio dei nomi e le applicazioni nello spazio dei nomi o negli spazi dei nomi), la Best practice è scegliere uno o l'altro. Le azioni eseguite in Astra Control possono non riuscire se vengono eseguite contemporaneamente sia a livello di spazio dei nomi che di applicazione.
Ad esempio, è possibile impostare una policy di backup per "maria" con cadenza settimanale, ma potrebbe essere necessario eseguire il backup di "mariadb" (che si trova nello stesso namespace) con maggiore frequenza. In base a tali esigenze, sarebbe necessario gestire le applicazioni separatamente e non come un'applicazione con un singolo spazio dei nomi. |
-
Un cluster Kubernetes aggiunto ad Astra Control.
-
Una o più applicazioni installate sul cluster. Scopri di più sui metodi di installazione delle app supportati.
-
Spazi dei nomi esistenti nel cluster Kubernetes aggiunto ad Astra Control.
-
(Facoltativo) un'etichetta Kubernetes su qualsiasi "Risorse Kubernetes supportate".
Un'etichetta è una coppia chiave/valore che è possibile assegnare agli oggetti Kubernetes per l'identificazione. Le etichette semplificano l'ordinamento, l'organizzazione e la ricerca degli oggetti Kubernetes. Per ulteriori informazioni sulle etichette Kubernetes, "Consultare la documentazione ufficiale di Kubernetes".
-
Prima di iniziare, dovresti anche capire "gestione degli spazi dei nomi standard e di sistema".
-
Se si prevede di utilizzare più spazi dei nomi con le applicazioni in Astra Control, prendere in considerazione "modifica dei ruoli utente con vincoli dello spazio dei nomi" prima di definire le applicazioni.
-
Per istruzioni su come gestire le applicazioni utilizzando l'API Astra Control, fare riferimento a. "Astra Automation e informazioni API".
Definire le risorse da gestire come applicazione
È possibile specificare "Kubernetes risorse che compongono un'applicazione" Che si desidera gestire con Astra Control. La definizione di un'applicazione consente di raggruppare gli elementi del cluster Kubernetes in una singola applicazione. Questa raccolta di risorse Kubernetes è organizzata in base allo spazio dei nomi e ai criteri di selezione delle etichette.
La definizione di un'applicazione offre un controllo più granulare su ciò che deve essere incluso in un'operazione Astra Control, inclusi cloni, snapshot e backup.
Quando definisci le app, assicurati di non includere una risorsa Kubernetes in più app con policy di protezione. La sovrapposizione di policy di protezione su risorse Kubernetes può causare conflitti di dati. |
Scopri di più sull'aggiunta di risorse con ambito cluster agli spazi dei nomi delle app.
È possibile importare risorse del cluster associate alle risorse dello spazio dei nomi oltre a quelle incluse automaticamente in Astra Control. È possibile aggiungere una regola che includerà le risorse di un gruppo specifico, un tipo, una versione e, facoltativamente, un'etichetta. Questa operazione potrebbe essere utile se ci sono risorse che Astra Control non include automaticamente.
Non è possibile escludere nessuna delle risorse con ambito del cluster incluse automaticamente da Astra Control.
È possibile aggiungere quanto segue apiVersions
(Che sono i gruppi combinati con la versione API):
Tipo di risorsa | ApiVersions (gruppo + versione) |
---|---|
|
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 |
|
admissionregistration.k8s.io/v1 |
|
admissionregistration.k8s.io/v1 |
-
Dalla pagina applicazioni, selezionare Definisci.
-
Nella finestra define application (Definisci applicazione), inserire il nome dell'applicazione.
-
Scegliere il cluster in cui viene eseguita l'applicazione nell'elenco a discesa Cluster.
-
Scegliere uno spazio dei nomi per l'applicazione dall'elenco a discesa namespace.
Le applicazioni possono essere definite all'interno di uno o più spazi dei nomi specifici su un singolo cluster utilizzando Astra Control. Un'applicazione può contenere risorse che spaziano da più spazi dei nomi all'interno dello stesso cluster. Astra Control non supporta la possibilità di definire le applicazioni in più cluster. -
(Facoltativo) inserire un'etichetta per le risorse Kubernetes in ogni namespace. È possibile specificare un'etichetta singola o criteri di selezione delle etichette (query).
Per ulteriori informazioni sulle etichette Kubernetes, "Consultare la documentazione ufficiale di Kubernetes". -
(Facoltativo) aggiungere spazi dei nomi aggiuntivi per l'applicazione selezionando Aggiungi spazio dei nomi e scegliendo lo spazio dei nomi dall'elenco a discesa.
-
(Facoltativo) inserire i criteri di selezione di un'etichetta o di un'etichetta singola per gli spazi dei nomi aggiuntivi aggiunti.
-
(Facoltativo) per includere risorse con ambito cluster oltre a quelle incluse automaticamente da Astra Control, selezionare Includi risorse aggiuntive con ambito cluster e completare quanto segue:
-
Selezionare Aggiungi regola di inclusione.
-
Gruppo: Selezionare il gruppo di risorse API dall'elenco a discesa.
-
Kind: Dall'elenco a discesa, selezionare il nome dello schema dell'oggetto.
-
Version: Inserire la versione dell'API.
-
Selettore etichetta: Facoltativamente, includere un'etichetta da aggiungere alla regola. Questa etichetta viene utilizzata per recuperare solo le risorse corrispondenti a questa etichetta. Se non si fornisce un'etichetta, Astra Control raccoglie tutte le istanze del tipo di risorsa specificato per quel cluster.
-
Esaminare la regola creata in base alle voci immesse.
-
Selezionare Aggiungi.
È possibile creare tutte le regole di risorse con ambito cluster desiderate. Le regole vengono visualizzate nel riepilogo dell'applicazione Definisci.
-
-
Selezionare Definisci.
-
Dopo aver selezionato define, ripetere la procedura per altre applicazioni, in base alle necessità.
Al termine della definizione di un'applicazione, l'applicazione viene visualizzata in Healthy
indicare nell'elenco delle applicazioni nella pagina applicazioni. Ora è possibile clonarlo e creare backup e snapshot.
L'applicazione appena aggiunta potrebbe presentare un'icona di avviso sotto la colonna Protected, che indica che il backup non è stato ancora eseguito e non è stato pianificato per i backup. |
Per visualizzare i dettagli di una particolare applicazione, selezionare il nome dell'applicazione. |
Per visualizzare le risorse aggiunte a questa applicazione, selezionare la scheda risorse. Selezionare il numero dopo il nome della risorsa nella colonna Resource (risorsa) o inserire il nome della risorsa in Search (Cerca) per visualizzare le risorse aggiuntive incluse nell'ambito del cluster.
Definire uno spazio dei nomi da gestire come applicazione
È possibile aggiungere tutte le risorse Kubernetes in uno spazio dei nomi alla gestione di Astra Control definendo le risorse dello spazio dei nomi come applicazione. Questo metodo è preferibile alla definizione individuale delle applicazioni, se necessario "intende gestire e proteggere tutte le risorse in uno spazio dei nomi specifico" in modo simile e ad intervalli comuni.
-
Dalla pagina Clusters, selezionare un cluster.
-
Selezionare la scheda spazi dei nomi.
-
Selezionare il menu Actions (azioni) per lo spazio dei nomi che contiene le risorse dell'applicazione che si desidera gestire e selezionare define as application (Definisci come applicazione).
Se si desidera definire più applicazioni, selezionare dall'elenco namespace e selezionare il pulsante azioni nell'angolo in alto a sinistra, quindi selezionare Definisci come applicazione. In questo modo verranno definite più applicazioni singole nei rispettivi spazi dei nomi. Per le applicazioni multi-spazio dei nomi, fare riferimento a. Definire le risorse da gestire come applicazione. Selezionare la casella di controllo Show system namespace (Mostra spazi dei nomi di sistema) per visualizzare gli spazi dei nomi di sistema solitamente non utilizzati nella gestione delle applicazioni per impostazione predefinita. "Scopri di più".
Al termine del processo, le applicazioni associate allo spazio dei nomi vengono visualizzate in Associated applications
colonna.
[Anteprima tecnica] Definisci un'applicazione usando una risorsa personalizzata di Kubernetes
Puoi specificare le risorse Kubernetes da gestire con Astra Control definendole come un'applicazione tramite una risorsa personalizzata (CR). Puoi aggiungere risorse destinate al cluster se desideri gestire tali risorse singolarmente o tutte le risorse Kubernetes in un namespace, se, ad esempio, intendi gestire e proteggere tutte le risorse in un namespace specifico in modo simile e a intervalli comuni.
-
Creare il file di risorse personalizzate (CR) e assegnargli un nome (ad esempio,
astra_mysql_app.yaml
). -
Assegnare un nome all'applicazione in
metadata.name
. -
Definire le risorse dell'applicazione da gestire:
spec.includedClusterScopedResourcesInserisci i tipi di risorse riferiti all'ambito del cluster e quelli indicati automaticamente da Astra Control:
-
spec.includedClusterScopedResources: (opzionale) elenco dei tipi di risorse con ambito cluster da includere.
-
GroupVersionKind: (opzionale) identifica in modo inequivocabile un tipo.
-
Gruppo: (obbligatorio se viene utilizzato groupVersionKind) gruppo API della risorsa da includere.
-
Version: (obbligatorio se si utilizza groupVersionKind) versione API della risorsa da includere.
-
Tipo: (richiesto se viene utilizzato groupVersionKind) tipo di risorsa da includere.
-
-
LabelSelector: (Optional) Una query di etichetta per un insieme di risorse. Viene utilizzato per recuperare solo le risorse corrispondenti all'etichetta. Se non si fornisce un'etichetta, Astra Control raccoglie tutte le istanze del tipo di risorsa specificato per quel cluster. Il risultato di MatchLabels e MatchExpressions è ANDed.
-
MatchLabels: (Optional) Una mappa di {key,value} coppie. Un singolo {key,value} nella mappa matchLabels è equivalente a un elemento di matchExpressions che ha un campo chiave di "key", operatore di "in" e matrice di valori contenente solo "value". I requisiti sono ANDed.
-
MatchExpressions: (Optional) elenco dei requisiti del selettore di etichette. I requisiti sono ANDed.
-
Tasto: (obbligatorio se si utilizza matchExpressions) il tasto etichetta associato al selettore etichetta.
-
Operatore: (obbligatorio se si utilizza matchExpressions) rappresenta la relazione di una chiave con un insieme di valori. Gli operatori validi sono
In
,NotIn
,Exists
e.DoesNotExist
. -
Values: (obbligatorio se viene utilizzato matchExpressions)_una matrice di valori di stringa. Se l'operatore è
In
oppureNotIn
, la matrice dei valori deve _non essere vuota. Se l'operatore èExists
oppureDoesNotExist
, la matrice dei valori deve essere vuota.
-
-
-
spec.includedNamespacesIncludere spazi dei nomi e risorse all'interno di tali risorse nell'applicazione:
-
spec.includedNamespaces: _(required)_definisce lo spazio dei nomi e i filtri opzionali per la selezione delle risorse.
-
Namespace: (obbligatorio) lo spazio dei nomi che contiene le risorse dell'applicazione che si desidera gestire con Astra Control.
-
LabelSelector: (Optional) Una query di etichetta per un insieme di risorse. Viene utilizzato per recuperare solo le risorse corrispondenti all'etichetta. Se non si fornisce un'etichetta, Astra Control raccoglie tutte le istanze del tipo di risorsa specificato per quel cluster. Il risultato di MatchLabels e MatchExpressions è ANDed.
-
MatchLabels: (Optional) Una mappa di {key,value} coppie. Un singolo {key,value} nella mappa matchLabels è equivalente a un elemento di matchExpressions che ha un campo chiave di "key", operatore di "in" e matrice di valori contenente solo "value". I requisiti sono ANDed.
-
MatchExpressions: (Optional) elenco dei requisiti del selettore di etichette.
key
e.operator
sono obbligatori. I requisiti sono ANDed.-
Tasto: (obbligatorio se si utilizza matchExpressions) il tasto etichetta associato al selettore etichetta.
-
Operatore: (obbligatorio se si utilizza matchExpressions) rappresenta la relazione di una chiave con un insieme di valori. Gli operatori validi sono
In
,NotIn
,Exists
e.DoesNotExist
. -
Values: (obbligatorio se si utilizza matchExpressions) una matrice di valori di stringa. Se l'operatore è
In
oppureNotIn
, la matrice dei valori deve non essere vuota. Se l'operatore èExists
oppureDoesNotExist
, la matrice dei valori deve essere vuota.
-
-
-
Esempio 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
-
-
Dopo aver popolato il
astra_mysql_app.yaml
File con i valori corretti, applicare il CR:kubectl apply -f astra_mysql_app.yaml -n astra-connector
E gli spazi dei nomi di sistema?
Astra Control rileva anche gli spazi dei nomi di sistema su un cluster Kubernetes. Per impostazione predefinita, questi spazi dei nomi di sistema non vengono visualizzati perché è raro che sia necessario eseguire il backup delle risorse delle applicazioni di sistema.
È possibile visualizzare gli spazi dei nomi di sistema dalla scheda spazi dei nomi di un cluster selezionato selezionando la casella di controllo Mostra spazi dei nomi di sistema.
Astra Control non è un'applicazione standard, ma un'applicazione di sistema. Non si dovrebbe tentare di gestire Astra Control da solo. Per impostazione predefinita, Astra Control non viene visualizzato per la gestione. |