Use um kubeconfig temporário ou de longo prazo para autenticar o kubectl no servidor de API do cluster.
Você também pode gerenciar clusters e aplicações pelo ACK console.
Conforme o modelo de responsabilidade compartilhada, proteja as credenciais do kubeconfig: faça a rotação regularmente e siga o princípio do menor privilégio.
Escolha o tipo de kubeconfig
Selecione o tipo de kubeconfig conforme a duração necessária do acesso e o método de conexão do cliente ao cluster.
Por período de validade
|
Tipo |
Validade |
Mais indicado para |
Segurança |
|
Temporário |
30 minutos a 3 dias (configurável) |
Operações diárias e manutenção (O&M), solução de problemas, pipelines de CI/CD |
Menor risco — expira automaticamente após o período configurado |
|
Longo prazo |
3 anos (padrão) |
Sistemas automatizados, serviços de monitoramento contínuo |
Exige rotação manual antes do vencimento |
Por método de acesso
|
Tipo |
Quando usar |
Detalhes |
|
Acesso privado |
A máquina cliente está na mesma Virtual Private Cloud (VPC) do cluster |
Conexão pela rede interna, com menor latência e maior segurança |
|
Acesso público |
Conexão a partir de qualquer máquina com acesso à Internet |
Expõe o servidor de API por meio de um Elastic IP Address (EIP) — ideal para desenvolvimento local e O&M remoto |
Um EIP vinculado gera custos de pagamento conforme o uso .
Em clusters dedicados ACK com acesso público, você também pode conectar-se ao nó mestre via SSH para obter o kubeconfig.
Pré-requisitos
Antes de começar, verifique se você tem:
kubectl instalado, dentro de uma versão secundária da versão do Kubernetes do cluster (por exemplo, kubectl 1,27–1,29 para Kubernetes 1.28).
Um usuário RAM com permissões concedidas nos níveis do ACK e do cluster.
Obter um arquivo kubeconfig e conectar-se ao cluster
Faça logon no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster ou em Details na coluna Actions.
Na página Cluster Information, clique em Connection Information. Selecione um kubeconfig temporário ou de longo prazo. Para kubeconfig temporário, defina o período de validade.
Clique em Internal Access ou Public Access e clique em Copy.
-
Cole o conteúdo no arquivo
$HOME/.kube/configdo cliente e salve-o.Nota: Se o diretório ou arquivo não existir, crie-o antes.
-
Verifique a conexão listando todos os namespaces:
kubectl get namespacesSaída esperada:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
Gerencie credenciais do kubeconfig
Fazer rotação de credenciais antes do vencimento
O kubeconfig de longo prazo tem validade de 3 anos. Obtenha um novo pelo ACK console ou pela API DescribeClusterUserKubeconfig até 180 dias antes do vencimento para evitar interrupções no serviço.
O novo kubeconfig terá validade de 3 anos. O anterior permanecerá válido até a data de expiração original.
Revogar credenciais comprometidas
Se suspeitar que um kubeconfig foi comprometido, revogue as credenciais do kubeconfig do cluster imediatamente. Essa ação invalida todas as conexões existentes e gera um novo kubeconfig.
Limpar permissões de usuários desligados
Quando um usuário não precisar mais de acesso (por exemplo, após o término de um projeto ou desligamento de funcionário), revogue as permissões do kubeconfig em massa: exclua arquivos kubeconfig ou use ack-ram-tool. O sistema não gera um novo kubeconfig após a revogação.
Para restaurar permissões revogadas acidentalmente, use a lixeira de kubeconfig .
Perguntas frequentes
Por padrão, o kubectl usa$HOME/.kube/config. Para usar outro arquivo, defina a variável de ambienteKUBECONFIGou passe o parâmetro--kubeconfig. Nos comandos abaixo, substituakubeconfigpelo caminho do seu arquivo kubeconfig.
Como encontro a identidade associada a um certificado kubeconfig?
Extraia o assunto do certificado:
# Extract the client certificate, decode it from base64,
# then use OpenSSL to display the Subject field
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -text | grep Subject:
Saída esperada:
Subject: O=system:users, OU=, CN=1***-1673419473
O—Grupo de usuários do Kubernetes. Neste exemplo,system:users.CN—Identificador do usuário. Neste exemplo,1***-1673419473, onde1***é o ID de usuário da Alibaba Cloud.
Como verifico quando um certificado kubeconfig expira?
Verifique a expiração do certificado:
# Extract the client certificate, decode it from base64,
# then use OpenSSL to print the expiration date
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -enddate
Saída esperada:
notAfter=Jan 10 06:44:34 2026 GMT
Neste exemplo, o certificado expira em 10 de janeiro de 2026.
Obtenha um novo kubeconfig pelo console ou pela API até 180 dias antes do vencimento ou a qualquer momento após a expiração.
Como extraio o certificado do cliente, a chave privada e a URL do servidor de API de um kubeconfig?
Extraia o certificado, a chave e a URL do servidor de API:
# Extract and decode the client certificate to a PEM file
grep client-certificate-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-cert.pem
# Extract and decode the client private key to a PEM file
grep client-key-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-key.pem
# Extract the API server URL into a variable
APISERVER=$(grep server ./kubeconfig | awk -F ' ' '{print $2}')
Como resolvo o erro "certificate is valid for"?
Esse erro ocorre ao vincular um novo endereço IP à instância do Server Load Balancer (SLB) do servidor de API. Comandos kubectl direcionados ao novo IP falham com Error while proxying request: x509: certificate is valid for xxx ou Unable to connect to the server: x509: certificate is valid for xxx.
A correção depende do tipo de cluster:
Clusters gerenciados ACK: Adicione o novo endereço IP ao Subject Alternative Name (SAN) do certificado do servidor de API.
-
Clusters dedicados ACK: Configure o kubectl para ignorar a verificação TLS com um destes métodos:
ImportanteIgnorar a verificação TLS representa um risco de segurança. Não use esse método em produção. Migre para clusters ACK Pro e adicione o novo endereço IP ao SAN do certificado do servidor de API.
-
Método 1: Passe o parâmetro
--insecure-skip-tls-verify:kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns -
Método 2: Edite o arquivo kubeconfig. Adicione
insecure-skip-tls-verify: truee remova o campocertificate-authority-data:apiVersion: v1 clusters: - cluster: server: https://<IP>:6443 insecure-skip-tls-verify: true name: kubernetes contexts: ...
-
Posso obter a chave do certificado raiz de um cluster gerenciado ACK para gerar um kubeconfig manualmente?
Não. Clusters gerenciados ACK não expõem a chave do certificado raiz. Obtenha o kubeconfig pelo console ou pela API DescribeClusterUserKubeconfig.
Referências
Consulte um kubeconfig programaticamente com a API DescribeClusterUserKubeconfig.
Faça logon em um nó do cluster. Consulte Métodos de conexão remota do ECS.