O ASM permite executar operações de criação, leitura, atualização e exclusão (CRUD) em recursos do Istio por meio da API do Kubernetes (KubeAPI) dos clusters do plano de dados. Você também pode usar o Helm para gerenciar aplicações. Este tópico descreve como acessar recursos do Istio por meio da KubeAPI de um cluster do plano de dados.
Pré-requisitos
Você criou uma instância do ASM Enterprise Edition ou Ultimate Edition. A versão da instância deve ser 1.12.4.50 ou posterior. Para mais informações, consulte Create an ASM instance e Upgrade an ASM instance.
Contexto
A API do Kubernetes é uma interface programática baseada em recursos, disponibilizada via HTTP. Ela suporta os verbos HTTP padrão (POST, PUT, PATCH, DELETE e GET) para recuperar, criar, atualizar e excluir recursos primários do cluster, como Deployments e Services. Para mais informações, consulte API do Kubernetes.
Observações
Recomendamos o uso deste recurso no modo de cluster único. Se a sua instância do ASM possuir vários clusters do plano de dados, você poderá executar operações CRUD em recursos do Istio a partir de qualquer um desses clusters.
Após ativar este recurso, não será mais possível excluir o namespace istio-system do cluster do plano de dados. Para excluir o namespace, primeiro remova o cluster do plano de dados da instância do ASM.
Depois de ativar este recurso, o plano de dados leva de um a dois minutos para ser preparado.
A exclusão de um namespace no plano de dados não exclui o namespace correspondente nem seus recursos do Istio no plano de controle.
-
Para executar operações CRUD em recursos do Istio, o namespace de destino deve existir no plano de dados. Se o namespace existir apenas no plano de controle, crie-o primeiro no plano de dados. Caso contrário, uma mensagem de erro semelhante à seguinte será retornada:
Error from server (NotFound): error when creating "xx.yaml": namespaces "daily-01" not found Se você criar um recurso do Istio em um namespace no plano de dados e esse namespace não existir no plano de controle do ASM, o namespace será criado automaticamente no plano de controle.
Os recursos do Istio criados por meio da KubeAPI de um cluster do plano de dados são armazenados no plano de controle. Portanto, ao criar ou atualizar um recurso do Istio, não adicione um campo
ownerReferencesque aponte para um recurso do plano de dados. Caso contrário, o recurso do Istio no plano de controle poderá ser coletado como lixo (garbage-collected) porque seu proprietário não será encontrado.
Ative o acesso à KubeAPI do plano de dados
Para novas instâncias do ASM
Para instâncias criadas após novembro de 2024, este recurso é ativado por padrão. Para instâncias criadas antes dessa data, siga as etapas em For existing ASM instances.
Para instâncias existentes do ASM
Faça login no console do ASM.
No painel de navegação à esquerda, escolha .
Na página Mesh Management, encontre a instância do ASM que você deseja configurar. Clique no nome da instância do ASM ou clique em Manage na coluna Actions.
Na página Basic Information, clique em Enable ao lado de Enable Data-plane KubeAPI access.
Na caixa de diálogo Confirm to enable data-plane cluster KubeAPI access, clique em OK.
Caso de uso 1: Gerencie recursos do Istio com o kubectl
Após ativar o acesso à KubeAPI do plano de dados, conecte-se a um cluster do plano de dados usando o kubectl e, em seguida, use o KubeConfig do cluster para criar, consultar, modificar e excluir recursos do Istio. Esta seção usa um VirtualService como exemplo.
-
Para criar um VirtualService, execute o seguinte comando:
kubectl apply -f <VirtualService-YAML-filename> -
Para consultar VirtualServices, execute o seguinte comando:
kubectl get VirtualService -
Para modificar um VirtualService, execute o seguinte comando:
kubectl edit VirtualService <VirtualService-name> -
Para excluir um VirtualService, execute o seguinte comando:
kubectl delete VirtualService <VirtualService-name>
Caso de uso 2: Implante aplicações com o Helm
Após ativar o acesso à KubeAPI do plano de dados, o Helm pode usar o KubeConfig do cluster para instalar aplicações no cluster e implantar recursos do Istio no ASM simultaneamente.
Conecte-se ao cluster ACK usando o kubectl. Para mais informações, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.
-
Instale o Helm na sua máquina local. Para mais informações, consulte Helm.
NotaDepois de se conectar ao cluster usando o kubectl, o cliente Helm usa automaticamente o mesmo KubeConfig para se conectar ao cluster.
Baixe e extraia o modelo de gráfico do Helm de exemplo istio-bookinfo.
-
Acesse o diretório istio-bookinfo e execute o seguinte comando para instalar a aplicação:
helm install -f values.yaml istio-bookinfo ./Saída esperada:
NAME:istio-bookinfo LAST DEPLOYED:THU May 26 16:44:19 2022 NAMESPACE:default STATUS:deployed REVISION:1 TEST SUITE:None -
Verifique a implantação.
-
Verifique a aplicação Bookinfo no console do ACK.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na página Deployments, defina o Namespace como default.
Você pode ver as aplicações instaladas pelo Helm, como details, productpage e ratings.
NotaNo painel de navegação à esquerda da página de gerenciamento do cluster, escolha . Na página Helm, você pode visualizar a release do Helm.
Isso inclui as versões reviews-v1 e reviews-v2. Cada Deployment tem 1/1 pods, o que indica que a aplicação de exemplo Bookinfo está executando conforme o esperado.
-
Verifique o VirtualService e o Gateway no console do ASM.
Faça login no console do ASM.
No painel de navegação à esquerda, escolha .
Na página Mesh Management, encontre a instância do ASM que você deseja configurar. Clique no nome da instância do ASM ou clique em Manage na coluna Actions.
-
No painel de navegação à esquerda da página de detalhes do mesh, escolha .
Na página VirtualService, o VirtualService
bookinfoinstalado pelo Helm é exibido. Esta página lista os recursos VirtualService existentes com seus namespaces, services associados, escopos e horários de criação. Você pode criar um novo VirtualService clicando em Create ou Create with YAML, ou gerenciar os recursos existentes usando as opções View YAML, Version Management e Delete. -
No painel de navegação à esquerda da página de detalhes do mesh, escolha .
Na página Gateway, o Gateway
bookinfo-gatewayinstalado pelo Helm é exibido. Esta página lista os recursos Gateway existentes com seus nomes de regra, namespaces, seletores de instância de gateway, protocolos e portas. Você pode criar um novo Gateway clicando em Create ou Create with YAML, ou gerenciar os recursos existentes usando as opções View YAML, Version Management e Delete.
-
Operações relacionadas
-
Execute o seguinte comando para visualizar a lista de releases do Helm:
helm list -
Execute o seguinte comando para atualizar um gráfico do Helm:
helm upgrade -f values.yaml istio-bookinfo ./