O Google Distributed Cloud usa certificados e chaves privadas para autenticar e encriptar
ligações entre componentes do sistema em clusters. A autoridade de certificação (AC) do cluster gere estes certificados e chaves. Quando executa o comando bmctl
update credentials certificate-authorities rotate
, o Google Distributed Cloud realiza as seguintes ações:
O comando cria e carrega novas autoridades de certificação (ACs) do cluster para a AC do cluster, a AC do etcd e a AC do front-proxy para o espaço de nomes do cluster de utilizadores no cluster de administrador.
Os controladores do cluster de administrador substituem as autoridades de certificação do cluster de utilizador pelas autoridades de certificação recém-geradas.
Os controladores do cluster de administrador distribuem os novos certificados da AC públicos e os pares de chaves de certificados de folhas aos componentes do sistema do cluster de utilizador.
O comando também atualiza o
stackdriver-prometheus-etcd-scrape
segredo, que foi criado pelo Google Distributed Cloud durante a criação do cluster. O Prometheus requer este segredo para recolher métricas do etcd.
Para manter a comunicação segura do cluster, altere a CA do cluster de utilizadores periodicamente e sempre que houver uma possível violação de segurança.
Antes de começar
Antes de rodar a autoridade de certificação do cluster, planeie de acordo com as seguintes condições e impactos:
Certifique-se de que os clusters de administrador e de utilizador estão na versão 1.9.0 ou superior antes de iniciar a rotação da AC.
A rotação de CA é incremental, o que permite que os componentes do sistema comuniquem durante a rotação.
Uma rotação da AC reinicia o servidor da API, outros processos do plano de controlo e cada nó no cluster várias vezes. Cada fase de uma rotação de CA progride de forma semelhante a uma atualização de cluster. Embora o cluster de utilizadores permaneça operacional durante uma rotação da AC, deve esperar que as cargas de trabalho sejam reiniciadas e reagendadas.
Se o cluster de utilizadores não tiver um plano de controlo de alta disponibilidade, espere breves períodos de indisponibilidade do plano de controlo durante a rotação da AC.
As operações de gestão de clusters não são permitidas durante a rotação da AC.
A duração da rotação da CA depende do tamanho do cluster. Por exemplo, a rotação de CA pode demorar quase duas horas a ser concluída para um cluster com um plano de controlo e 50 nós de trabalho.
Limitações
A capacidade de rotação da autoridade de certificação tem as seguintes limitações:
A rotação da AC não atualiza os certificados emitidos manualmente por um administrador, mesmo que a AC do cluster assine os certificados. Atualize e redistribua todos os certificados emitidos manualmente após a rotação da AC do cluster de utilizadores estar concluída.
Depois de iniciada, não é possível pausar nem reverter a rotação da AC.
Inicie uma rotação da AC do cluster
Por predefinição, os certificados TLS têm um período de validade de 1 ano. O Google Distributed Cloud renova estes certificados quando roda as autoridades de certificação. O Google Distributed Cloud também renova os certificados TLS durante as atualizações dos clusters. Recomendamos que atualize os seus clusters regularmente para os manter seguros, suportados e evitar a expiração dos certificados TLS.
Use o seguinte comando para iniciar o processo de rotação da AC:
bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
--kubeconfig KUBECONFIG
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster para o qual quer rodar as ACs.KUBECONFIG
: o caminho para o ficheiro kubeconfig do cluster de administrador. Para clusters autogeridos, este ficheiro é o ficheiro kubeconfig do cluster.
O comando bmctl
termina após a rotação da CA ser bem-sucedida e ser gerado um novo ficheiro kubeconfig. O caminho padrão para o ficheiro kubeconfig é bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.
Resolva problemas de rotação da CA do cluster
O comando bmctl update credentials
apresenta o progresso da rotação da AC.
O ficheiro update-credentials.log
associado é guardado no seguinte diretório com indicação de data/hora:
bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP