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. Também é possível usar o Helm para gerenciar aplicações. Este tópico descreve como acessar recursos do Istio pela KubeAPI de um cluster do plano de dados.
Pré-requisitos
Crie 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 Criar uma instância do ASM e Atualizar uma instância do ASM.
Contexto
A API do Kubernetes é uma interface programática baseada em recursos, servida via HTTP. Ela suporta 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 Kubernetes API.
Observações
Recomendamos o uso deste recurso no modo de cluster único. Se a instância do ASM possuir vários clusters no plano de dados, execute 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, remova primeiro o cluster do plano de dados da instância do ASM.
Após a ativação deste recurso, o plano de dados leva de um a dois minutos para se preparar.
Excluir um namespace no plano de dados não remove 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, o sistema retornará uma mensagem de erro semelhante à seguinte:
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 pela 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. Do contrário, o recurso do Istio no plano de controle pode ser removido pelo garbage collector 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 vem ativado por padrão. Para instâncias criadas antes dessa data, siga os passos em Para instâncias existentes do ASM.
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, localize a instância do ASM que 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 kubectl
Após ativar o acesso à KubeAPI do plano de dados, conecte-se a um cluster do plano de dados usando kubectl e utilize 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 Helm
Depois de 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 kubectl. Para mais informações, consulte Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.
-
Instale o Helm em sua máquina local. Para mais informações, consulte Helm.
NotaApós conectar-se ao cluster usando kubectl, o cliente Helm utiliza automaticamente o mesmo KubeConfig para estabelecer a conexão com o cluster.
Baixe e extraia o modelo Helm de exemplo istio-bookinfo.
-
Navegue até o diretório istio-bookinfo e execute o comando a seguir 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.
As aplicações instaladas pelo Helm, como details, productpage e ratings, estarão visíveis.
NotaNo painel de navegação à esquerda da página de gerenciamento do cluster, escolha . Na página Helm, visualize a release do Helm.
Isso inclui as versões reviews-v1 e reviews-v2. Cada Deployment possui 1/1 pods, o que indica que a aplicação de exemplo Bookinfo está em execução 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, localize a instância do ASM que 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 da malha, escolha .
Na página VirtualService, o VirtualService
bookinfoinstalado pelo Helm é exibido. Esta página lista os recursos VirtualService existentes com seus namespaces, serviços associados, escopos e horários de criação. Crie um novo VirtualService clicando em Create ou Create with YAML, ou gerencie os recursos existentes usando as opções View YAML, Version Management e Delete. -
No painel de navegação à esquerda da página de detalhes da malha, escolha .
Na página Gateway, o Gateway
bookinfo-gatewayinstalado pelo Helm é exibido. Esta página lista os recursos de Gateway existentes com seus nomes de regra, namespaces, seletores de instância de gateway, protocolos e portas. Crie um novo Gateway clicando em Create ou Create with YAML, ou gerencie os recursos existentes usando as opções View YAML, Version Management e Delete.
-
Operações relacionadas
-
Execute o comando a seguir para visualizar a lista de releases do Helm:
helm list -
Execute o comando a seguir para atualizar um modelo do Helm:
helm upgrade -f values.yaml istio-bookinfo ./