O Google Distributed Cloud usa certificados e chaves privadas para autenticar e criptografar
conexões entre componentes do sistema em clusters. A autoridade
certificadora (CA, na sigla em inglês) do cluster gerencia esses certificados e chaves. Quando você executa o comando bmctl
update credentials certificate-authorities rotate
,
o Google Distributed Cloud realiza as seguintes ações:
O comando cria e faz upload de novas autoridades de certificação de cluster (CAs) para a CA do cluster, a CA etcd e a CA do proxy frontal para o namespace do cluster de usuário no cluster de administrador.
Os controladores do cluster de administrador substituem as autoridades de certificação do cluster de usuário pelas recém-geradas.
os controladores do cluster de administrador distribuem os novos certificados de CA públicos e pares de chaves de certificado de folha para os componentes do sistema do cluster de usuário.
O comando também atualiza o Secret
stackdriver-prometheus-etcd-scrape
, que foi criado pelo Google Distributed Cloud durante a criação do cluster. O Prometheus exige esse secret para coletar métricas do etcd.
Para manter a comunicação segura no cluster, rotacione a CA do cluster de usuário periodicamente e sempre que houver uma possível violação de segurança.
Antes de começar
Antes de fazer a rotação da autoridade de certificação do cluster, planeje-se de acordo com as seguintes condições e impactos:
Verifique se os clusters de administrador e de usuário estão na versão 1.9.0 ou superior antes de iniciar a rotação de CA.
A rotação da CA é incremental, permitindo que componentes do sistema se comuniquem durante a rotação.
Uma rotação de CA reinicia o servidor da API, outros processos do plano de controle e cada nó no cluster várias vezes. Cada estágio de uma rotação de CA é semelhante a um upgrade de cluster. Embora o cluster de usuário permaneça operacional durante uma rotação de CA, espera-se que as cargas de trabalho sejam reiniciadas e reprogramadas.
Se o cluster de usuário não tiver um plano de controle de alta disponibilidade, espere breves períodos de inatividade do plano de controle durante a rotação da CA.
As operações de gerenciamento de cluster não são permitidas durante a rotação da CA.
A duração da rotação de CA depende do tamanho do cluster. Por exemplo, a rotação de CA pode levar quase duas horas para ser concluída para um cluster com um plano de controle e 50 nós de trabalho.
Limitações
O recurso de rotação da autoridade de certificação tem as seguintes limitações:
A rotação da CA não atualiza os certificados emitidos manualmente por um administrador, mesmo se a CA do cluster assinar os certificados. Atualize e redistribua quaisquer certificados emitidos manualmente após a conclusão da rotação da CA do cluster de usuário;
Depois de iniciada, a rotação de CA não pode ser pausada ou revertida.
Iniciar uma rotação da CA do cluster
Por padrão, os certificados TLS têm um período de validade de um ano. O Google Distributed Cloud renova esses certificados quando você faz a rotação das autoridades de certificação. O Google Distributed Cloud também renova os certificados TLS durante upgrades de cluster. Recomendamos que você faça upgrade dos clusters regularmente para manter a segurança e o suporte deles, além de evitar que os certificados TLS expirem.
Use este comando para iniciar o processo de rotação da CA:
bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
--kubeconfig KUBECONFIG
Substitua:
CLUSTER_NAME
: o nome do cluster em que você quer rotacionar as CAs.KUBECONFIG
: o caminho até o arquivo kubeconfig do cluster de administrador. Para o gerenciamento automático de clusters, esse arquivo é o kubeconfig do cluster.
O comando bmctl
é encerrado depois que a CA do cluster é rotacionada com êxito e um novo
arquivo kubeconfig é gerado. O caminho padrão para o arquivo kubeconfig é
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.
Resolver problemas com uma rotação de CA do cluster
O comando bmctl update credentials
exibe o progresso da rotação da CA.
O arquivo update-credentials.log
associado é salvo neste
diretório com carimbo de data/hora:
bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP