Conecte um cliente kubectl a uma instância do Service Mesh (ASM) para criar, atualizar e excluir recursos do Istio — como VirtualServices, DestinationRules e Gateways — diretamente pela linha de comando. Cada instância do ASM expõe um servidor de API dedicado que aceita conexões padrão do kubectl.
Como funciona
O kubectl é uma ferramenta de linha de comando para Kubernetes que permite gerenciar clusters Kubernetes, aplicações em contêineres implantadas nesses clusters e instâncias do ASM.
Cada instância do ASM possui seu próprio servidor de API, independente dos servidores de API dos seus clusters Kubernetes do plano de dados. Para estabelecer a conexão, baixe o arquivo kubeconfig específico da instância do ASM e aponte seu cliente kubectl local para ele.
O ASM utiliza o controle de acesso baseado em funções (RBAC) do Kubernetes para governar as operações no plano de controle. O serviço oferece funções RBAC predefinidas com diferentes permissões na instância do ASM. Por exemplo, a ClusterRole istio-admin concede as seguintes permissões:
|
Escopo |
Recursos |
Operações permitidas |
|
Namespaces |
|
create, delete, get, list, patch, update, watch |
|
Recursos do Istio |
Todos os recursos em |
create, delete, get, list, patch, update, watch |
|
Ingress gateways |
|
create, delete, get, list, patch, update, watch |
|
Extensões do Istio da Alibaba Cloud |
Todos os recursos em |
get, list (somente leitura) |
Pré-requisitos
Antes de começar, verifique se você tem:
O kubectl instalado na sua máquina local. Selecione e baixe uma versão do kubectl no GitHub. Para instruções de instalação, consulte Instalar e configurar o kubectl
Uma instância do ASM criada no console do ASM
(Apenas para acesso pela Internet) Um endereço IP elástico (EIP) associado ao servidor de API da instância do ASM
Conectar o kubectl à instância do ASM
Etapa 1: Escolher um modo de acesso
O ASM suporta dois modos de rede para conectar o kubectl ao plano de controle. Escolha o modo adequado ao seu ambiente de rede:
|
Modo de acesso |
Requisito de rede |
Quando usar |
|
Internet Access |
Um EIP associado ao servidor de API do ASM |
Para conexões externas à VPC, como uma máquina de desenvolvimento local |
|
Internal Access |
Conectividade de VPC com a instância do ASM |
Para conexões dentro da mesma VPC |
A aba Internet Access está disponível apenas se houver um EIP associado ao servidor de API da instância do ASM. Caso contrário, somente a aba Internal Access será exibida no painel Connection.
Etapa 2: Baixar o arquivo kubeconfig
Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Instance > Base Information.
No canto superior direito da página Base Information, clique em Connection.
No painel Connection, clique em aba Internet Access ou Internal Access conforme o seu ambiente de rede.
Clique em Copy Kubeconfig File para copiar o conteúdo do kubeconfig.
Etapa 3: Configurar as credenciais do kubectl
Salve o conteúdo do kubeconfig copiado em $HOME/.kube/config, o arquivo padrão de onde o kubectl lê as credenciais.
Se o arquivo não existir, crie-o:
mkdir -p $HOME/.kube
vi $HOME/.kube/config
# Paste the copied kubeconfig content and save the file
Caso $HOME/.kube/config já contenha credenciais de outros clusters, salve o kubeconfig do ASM em um arquivo separado. Em seguida, combine ambos os caminhos por meio da variável de ambiente KUBECONFIG:
vi $HOME/.kube/asm-config
# Paste the copied kubeconfig content and save the file
export KUBECONFIG=$HOME/.kube/config:$HOME/.kube/asm-config
Etapa 4: Verificar a conexão
Execute o comando abaixo para confirmar se o kubectl consegue alcançar o plano de controle do ASM:
kubectl get ns
Se a conexão for bem-sucedida, a saída listará os namespaces da instância do ASM:
NAME STATUS AGE
default Active 30d
istio-system Active 30d
kube-system Active 30d
Se o comando atingir o tempo limite ou retornar um erro, verifique os seguintes pontos:
O arquivo kubeconfig foi salvo no caminho correto.
Sua rede tem acesso ao servidor de API do ASM — via EIP para acesso pela Internet ou conectividade de VPC para acesso interno.
O conteúdo do kubeconfig foi copiado integralmente, sem truncamento ou espaços em branco extras.