Comece a gerenciar aplicativos
Depois do "Adicionar um cluster de Kubernetes ao Astra Control", você poderá instalar aplicações no cluster (fora do Astra Control) e, em seguida, ir para a página aplicações no Astra Control para definir as aplicações.
Você pode definir e gerenciar aplicativos que incluem recursos de storage com pods em execução ou aplicativos que incluem recursos de storage sem pods em execução. Os aplicativos que não têm pods em execução são conhecidos como aplicativos somente de dados.
Requisitos de gerenciamento de aplicativos
O Astra Control tem os seguintes requisitos de gerenciamento de aplicações:
-
Licenciamento: Para gerenciar mais de 10 namespaces, você precisa de uma assinatura Astra Control.
-
Namespaces: Os aplicativos podem ser definidos em um ou mais namespaces especificados em um único cluster usando o Astra Control. Um aplicativo pode conter recursos que abrangem vários namespaces dentro do mesmo cluster. O Astra Control não dá suporte à capacidade de definir aplicações em vários clusters.
-
Storage class: Se você instalar um aplicativo com uma classe de armazenamento explicitamente definida e precisar clonar o aplicativo, o cluster de destino para a operação clone deve ter a classe de armazenamento especificada originalmente. Clonar um aplicativo com uma classe de storage definida explicitamente para um cluster que não tenha a mesma classe de storage falhará.
-
Recursos do Kubernetes: Os aplicativos que usam recursos do Kubernetes não coletados pelo Astra Control podem não ter recursos completos de gerenciamento de dados do aplicativo. O Astra Control coleta os seguintes recursos do 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
Métodos de instalação de aplicativos suportados
O Astra Control é compatível com os seguintes métodos de instalação de aplicações:
-
Arquivo manifesto: O Astra Control suporta aplicativos instalados a partir de um arquivo manifesto usando kubectl. Por exemplo:
kubectl apply -f myapp.yaml
-
Helm 3: Se você usar o Helm para instalar aplicativos, o Astra Control requer o Helm versão 3. O gerenciamento e clonagem de aplicativos instalados com o Helm 3 (ou atualizados do Helm 2 para o Helm 3) são totalmente compatíveis. O gerenciamento de aplicativos instalados com o Helm 2 não é suportado.
-
Aplicativos implantados pelo operador: O Astra Control suporta aplicativos instalados com operadores com escopo de namespace que são, em geral, projetados com uma arquitetura "pass-by-value" em vez de "pass-by-reference". Um operador e o aplicativo que ele instala devem usar o mesmo namespace; talvez seja necessário modificar o arquivo .yaml de implantação para que o operador garanta que esse seja o caso.
A seguir estão alguns aplicativos de operador que seguem estes padrões:
-
Para K8ssandra, são suportadas as operações de restauração no local. Uma operação de restauração para um novo namespace ou cluster requer que a instância original do aplicativo seja removida. Isto destina-se a garantir que as informações do grupo de pares transportadas não conduzam à comunicação entre instâncias. A clonagem da aplicação não é suportada.
O Astra Control pode não ser capaz de clonar um operador projetado com uma arquitetura "pass-by-reference" (por exemplo, o operador CockroachDB). Durante esses tipos de operações de clonagem, o operador clonado tenta consultar os segredos do Kubernetes do operador de origem, apesar de ter seu próprio novo segredo como parte do processo de clonagem. A operação de clone pode falhar porque o Astra Control não conhece os segredos do Kubernetes no operador de origem.
-
Instale aplicativos no cluster
Depois de "adicionado o cluster" acessar o Astra Control, você poderá instalar aplicações ou gerenciar aplicações existentes no cluster. Qualquer aplicativo com escopo para um ou mais namespaces pode ser gerenciado.
O Astra Control só gerenciará aplicações com estado monitorado se o storage estiver em uma classe de storage suportada pelo Astra Control. O Astra Control Service dá suporte a qualquer classe de storage compatível com o Astra Control Provisioner ou um driver CSI genérico.
Definir aplicações
Depois que o Astra Control descobrir namespaces em seus clusters, você pode definir as aplicações que deseja gerenciar. Você pode escolher para gerencie um aplicativo abrangendo um ou mais namespaces ou gerencie um namespace inteiro como uma única aplicação. Tudo se resume ao nível de granularidade de que você precisa para operações de proteção de dados.
Embora o Astra Control permita que você gerencie separadamente ambos os níveis da hierarquia (o namespace e os aplicativos nesse namespace ou spanning Namespaces), a prática recomendada é escolher um ou outro. As ações que você executa no Astra Control podem falhar se as ações ocorrerem ao mesmo tempo no nível do namespace e da aplicação.
Como exemplo, você pode querer definir uma política de backup para "maria" que tenha uma cadência semanal, mas você pode precisar fazer backup do "mariadb" (que está no mesmo namespace) com mais frequência do que isso. Com base nessas necessidades, você precisaria gerenciar os aplicativos separadamente e não como um aplicativo de namespace único. |
-
Um cluster de Kubernetes adicionado ao Astra Control.
-
Um ou mais aplicativos instalados no cluster. Leia mais sobre os métodos de instalação de aplicativos suportados.
-
Namespaces existentes no cluster do Kubernetes que você adicionou ao Astra Control.
-
(Opcional) Um rótulo do Kubernetes em qualquer "Recursos do Kubernetes compatíveis".
Um rótulo é um par de chave/valor que você pode atribuir a objetos Kubernetes para identificação. Os rótulos facilitam a ordenação, organização e localização de objetos do Kubernetes. Para saber mais sobre rótulos do Kubernetes, "Consulte a documentação oficial do Kubernetes".
-
Antes de começar, você também deve entender "gerenciamento de namespaces padrão e do sistema".
-
Se você planeja usar vários namespaces com seus aplicativos no Astra Control, considere "modificação de funções de usuário com restrições de namespace" antes de definir aplicativos.
-
Para obter instruções sobre como gerenciar aplicativos usando a API Astra Control, consulte o "Informações de API e automação do Astra".
Definir recursos para gerenciar como um aplicativo
Você pode especificar o "Recursos do Kubernetes que compõem uma aplicação" que deseja gerenciar com o Astra Control. A definição de um aplicativo permite agrupar elementos do cluster do Kubernetes em um único aplicativo. Essa coleção de recursos do Kubernetes é organizada por critérios de seleção de namespace e rótulo.
A definição de uma aplicação oferece controle mais granular sobre o que incluir em uma operação do Astra Control, incluindo clone, snapshot e backups.
Ao definir aplicativos, certifique-se de que você não inclua um recurso Kubernetes em vários aplicativos com políticas de proteção. A sobreposição de políticas de proteção em recursos do Kubernetes pode causar conflitos de dados. |
Leia mais sobre como adicionar recursos com escopo de cluster aos namespaces do aplicativo.
É possível importar recursos de cluster associados aos recursos de namespace, além dos recursos do Astra Control incluídos automaticamente. Você pode adicionar uma regra que incluirá recursos de um grupo específico, tipo, versão e, opcionalmente, rótulo. Você pode querer fazer isso se houver recursos que o Astra Control não inclui automaticamente.
Não é possível excluir nenhum dos recursos com escopo de cluster que sejam incluídos automaticamente pelo Astra Control.
Você pode adicionar o seguinte apiVersions
(que são os grupos combinados com a versão da API):
Tipo de recurso | ApiVersions (versão do grupo) |
---|---|
|
rbac.authorization.k8s.io/v1 |
|
rbac.authorization.k8s.io/v1 |
|
apipextensions.k8s.io/v1, apipextensions.k8s.io/v1beta1 |
|
apipextensions.k8s.io/v1, apipextensions.k8s.io/v1beta1 |
|
admissionregistration.k8s.io/v1 |
|
admissionregistration.k8s.io/v1 |
-
Na página aplicativos, selecione Definir.
-
Na janela Definir aplicativo, insira o nome do aplicativo.
-
Escolha o cluster no qual seu aplicativo está sendo executado na lista suspensa Cluster.
-
Escolha um namespace para sua aplicação na lista suspensa namespace.
As aplicações podem ser definidas em um ou mais namespaces especificados em um único cluster usando o Astra Control. Um aplicativo pode conter recursos que abrangem vários namespaces dentro do mesmo cluster. O Astra Control não dá suporte à capacidade de definir aplicações em vários clusters. -
(Opcional) Insira um rótulo para os recursos do Kubernetes em cada namespace. Você pode especificar um único rótulo ou critério de seleção de rótulo (consulta).
Para saber mais sobre rótulos do Kubernetes, "Consulte a documentação oficial do Kubernetes". -
(Opcional) Adicione namespaces adicionais para o aplicativo selecionando Adicionar namespace e escolhendo o namespace na lista suspensa.
-
(Opcional) Digite critérios de seleção de rótulo ou rótulo único para quaisquer namespaces adicionais que você adicionar.
-
(Opcional) para incluir recursos com escopo de cluster além daqueles que o Astra Control inclui automaticamente, marque incluir recursos adicionais com escopo de cluster e conclua o seguinte:
-
Selecione Adicionar regra de inclusão.
-
Group: Na lista suspensa, selecione o grupo de recursos da API.
-
Kind: Na lista suspensa, selecione o nome do esquema do objeto.
-
Versão: Insira a versão da API.
-
* Seletor de etiquetas*: Opcionalmente, inclua um rótulo para adicionar à regra. Este rótulo é usado para recuperar apenas os recursos correspondentes a esse rótulo. Se você não fornecer um rótulo, o Astra Control coletará todas as instâncias do tipo de recurso especificado para esse cluster.
-
Revise a regra criada com base em suas entradas.
-
Selecione Adicionar.
Você pode criar quantas regras de recursos com escopo de cluster quiser. As regras aparecem no Resumo da aplicação definida.
-
-
Selecione Definir.
-
Depois de selecionar define, repita o processo para outros aplicativos, conforme necessário.
Depois de concluir a definição de uma aplicação, a aplicação aparece Healthy
no estado na lista de aplicações na página aplicações. Agora você pode cloná-lo e criar backups e snapshots.
O aplicativo que você acabou de adicionar pode ter um ícone de aviso na coluna protegido, indicando que ele ainda não foi feito backup e ainda não está programado para backups. |
Para ver os detalhes de uma aplicação específica, selecione o nome da aplicação. |
Para ver os recursos adicionados a este aplicativo, selecione a guia recursos. Selecione o número após o nome do recurso na coluna recurso ou insira o nome do recurso em Pesquisa para ver os recursos adicionais com escopo de cluster incluídos.
Defina um namespace para gerenciar como um aplicativo
É possível adicionar todos os recursos do Kubernetes em um namespace ao gerenciamento do Astra Control definindo os recursos desse namespace como uma aplicação. Esse método é preferível à definição de aplicativos individualmente se você "pretende gerenciar e proteger todos os recursos em um namespace específico" de uma maneira semelhante e em intervalos comuns.
-
Na página clusters, selecione um cluster.
-
Selecione a guia namespaces.
-
Selecione o menu ações para o namespace que contém os recursos do aplicativo que você deseja gerenciar e selecione Definir como aplicativo.
Se você quiser definir vários aplicativos, selecione na lista namespaces e selecione o botão ações no canto superior esquerdo e selecione Definir como aplicativo. Isso definirá vários aplicativos individuais em seus namespaces individuais. Para aplicações com vários nomes de nomes, Definir recursos para gerenciar como um aplicativoconsulte a . Marque a caixa de seleção Mostrar namespaces do sistema para revelar namespaces do sistema que geralmente não são usados no gerenciamento de aplicativos por padrão. "Leia mais".
Após a conclusão do processo, os aplicativos associados ao namespace aparecem na Associated applications
coluna.
[Visualização técnica] defina uma aplicação usando um recurso personalizado do Kubernetes
Você pode especificar os recursos do Kubernetes que deseja gerenciar com o Astra Control definindo-os como uma aplicação usando um recurso personalizado (CR). Você pode adicionar recursos com escopo de cluster se quiser gerenciar esses recursos individualmente ou todos os recursos do Kubernetes em um namespace se, por exemplo, você pretende gerenciar e proteger todos os recursos em um namespace específico de maneira semelhante e em intervalos comuns.
-
Crie o arquivo de recurso personalizado (CR) e nomeie-o (por exemplo,
astra_mysql_app.yaml
). -
Nomeie o aplicativo em
metadata.name
. -
Definir recursos de aplicativos a serem gerenciados:
spec.includedClusterScopedResourcesIncluir tipos de recursos com escopo de cluster além daqueles que o Astra Control inclui automaticamente:
-
spec.includedClusterScopedResources: (Opcional) Uma lista de tipos de recursos com escopo de cluster a serem incluídos.
-
GroupVersionKind: (Opcional) identifica inequivocamente um tipo.
-
Group: (obrigatório se groupVersionKind for usado) grupo API do recurso a incluir.
-
Version: (obrigatório se groupVersionKind for usado) versão da API do recurso a incluir.
-
Kind: (obrigatório se groupVersionKind for usado) tipo do recurso a incluir.
-
-
LabelSeletor: (Opcional) Uma consulta de rótulo para um conjunto de recursos. Ele é usado para recuperar apenas os recursos correspondentes ao rótulo. Se você não fornecer um rótulo, o Astra Control coletará todas as instâncias do tipo de recurso especificado para esse cluster. O resultado de matchLabels e matchExpressions são ANDed.
-
MatchLabels: (Opcional) Um mapa de pares chave,valor. Uma única chave no mapa MatchLabels é equivalente a um elemento de matchExpressions que tem um campo chave de "key", operador como "in", e array de valores contendo apenas "value". Os requisitos são ANDed.
-
MatchExpressions: (Opcional) Uma lista de requisitos de seleção de etiquetas. Os requisitos são ANDed.
-
Key: (obrigatório se matchExpressions for usado) a chave de etiqueta associada ao seletor de etiquetas.
-
Operator: (obrigatório se matchExpressions for usado) representa a relação de uma chave com um conjunto de valores. Os operadores válidos são
In
,NotIn
,Exists
eDoesNotExist
. -
Values: (obrigatório se matchExpressions for usado)_uma matriz de valores de string. Se o operador for
In
ouNotIn
, a matriz de valores deve _não estar vazia. Se o operador forExists
ouDoesNotExist
, a matriz de valores deve estar vazia.
-
-
-
spec.includedNamespacesInclua namespaces e recursos dentro desses recursos no aplicativo:
-
spec.includedNamespaces: _(required)_define o namespace e os filtros opcionais para seleção de recursos.
-
* Namespace*: (obrigatório) o namespace que contém os recursos do aplicativo que você deseja gerenciar com o Astra Control.
-
LabelSeletor: (Opcional) Uma consulta de rótulo para um conjunto de recursos. Ele é usado para recuperar apenas os recursos correspondentes ao rótulo. Se você não fornecer um rótulo, o Astra Control coletará todas as instâncias do tipo de recurso especificado para esse cluster. O resultado de matchLabels e matchExpressions são ANDed.
-
MatchLabels: (Opcional) Um mapa de pares chave,valor. Uma única chave no mapa MatchLabels é equivalente a um elemento de matchExpressions que tem um campo chave de "key", operador como "in", e array de valores contendo apenas "value". Os requisitos são ANDed.
-
MatchExpressions: (Opcional) Uma lista de requisitos de seleção de etiquetas.
key
eoperator
são necessários. Os requisitos são ANDed.-
Key: (obrigatório se matchExpressions for usado) a chave de etiqueta associada ao seletor de etiquetas.
-
Operator: (obrigatório se matchExpressions for usado) representa a relação de uma chave com um conjunto de valores. Os operadores válidos são
In
,NotIn
,Exists
eDoesNotExist
. -
Values: (obrigatório se matchExpressions for usado) uma matriz de valores de string. Se o operador for
In
ouNotIn
, a matriz de valores deve não estar vazia. Se o operador forExists
ouDoesNotExist
, a matriz de valores deve estar vazia.
-
-
-
Exemplo 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
-
-
Depois de preencher o
astra_mysql_app.yaml
ficheiro com os valores corretos, aplique o CR:kubectl apply -f astra_mysql_app.yaml -n astra-connector
E quanto aos namespaces do sistema?
O Astra Control também descobre namespaces do sistema em um cluster do Kubernetes. Nós não mostramos esses namespaces do sistema por padrão, porque é raro que você precise fazer backup dos recursos do aplicativo do sistema.
Você pode exibir namespaces do sistema na guia namespaces para um cluster selecionado selecionando a caixa de seleção Mostrar namespaces do sistema.
O Astra Control em si não é um aplicativo padrão; é um "aplicativo do sistema". Você não deve tentar gerenciar o Astra Control por si só. O próprio Astra Control não é mostrado por padrão para gerenciamento. |