Esta página descreve como alternar as chaves das seguintes contas de serviço:
Para alternar as chaves da conta de serviço:
Crie um diretório para armazenar uma cópia de segurança dos seus segredos atuais:
mkdir backup
Tenha em atenção as seguintes informações para a conta de serviço relevante:
Acesso aos componentes
Cluster Secreto Espaço de nomes Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador private-registry-creds kube-system Utilizador private-registry-creds kube-system - Se não estiver a usar um
registo privado,
o
private-registry-creds
segredo contém a chave para a sua conta de serviço de acesso aos componentes. - Se estiver a usar um registo privado, o segredo contém as credenciais para o seu registo privado e não a chave da conta de serviço de acesso aos componentes.
private-registry-creds
Connect-register
Cluster Secreto Espaço de nomes Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Registo e monitorização
Cluster Secreto Espaço de nomes Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utilizador google-cloud-credentials kube-system Utilizador stackdriver-service-account-key knative-serving Registo de auditoria
Cluster Secreto Espaço de nomes Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador kube-apiserver CLUSTER_NAME Stackdriver
Cluster Secreto Espaço de nomes Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utilizador google-cloud-credentials kube-system Utilizador stackdriver-service-account-key knative-serving - Se não estiver a usar um
registo privado,
o
Crie uma cópia de segurança de cada segredo com o seguinte comando:
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json
Substitua o seguinte:
NAMESPACE
: o espaço de nomes onde o segredo está localizado. Por exemplo,kube-system
.KUBECONFIG
: o caminho para o ficheiro kubeconfig do cluster de administrador ou de utilizador.SECRET
: o nome do segredo. Por exemplo,admin-cluster-creds
.
Por exemplo, execute os seguintes comandos para a conta do serviço de registo de auditoria:
kubectl get secret admin-cluster-creds --namespace kube-system \ --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json kubectl get secret user-cluster-creds --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json kubectl get secret kube-apiserver --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
Para criar um novo ficheiro de chave de conta de serviço, execute o seguinte comando:
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
Substitua o seguinte:
NEW_KEY_FILE
: o nome do novo ficheiro de chave da conta de serviçoIAM_ACCOUNT
: o endereço de email da conta de serviço
No ficheiro de configuração do cluster de administrador, encontre o campo
componentAccessServiceAccountKeyPath
, a secçãogkeConnect
, a secçãostackdriver
e a secçãocloudAuditLogging
. Nesses locais, substitua os caminhos para os ficheiros de chaves de contas de serviço.No ficheiro de configuração do cluster de utilizadores, encontre o campo
componentAccessServiceAccountKeyPath
, a secçãogkeConnect
, a secçãostackdriver
e a secçãocloudAudigLogging
. Nesses locais, substitua os caminhos para os ficheiros de chaves da conta de serviço.Guarde as alterações que fez executando os seguintes comandos:
Pode rodar as chaves de um componente de cada vez ou rodar todas as chaves em simultâneo definindo o componente como
sakeys
.gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --admin-cluster gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Substitua o seguinte:
COMPONENT
: um dos seguintes:componentaccess
register
cloudauditlogging
stackdriver
sakeys
(roda todas as chaves de componentes)
ADMIN_CLUSTER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do cluster de administrador.ADMIN_CLUSTER_CONFIG
: o caminho para o ficheiro de configuração do cluster de administrador.USER_CLUSTER_CONFIG
: o caminho para o ficheiro de configuração do cluster do utilizador.
Recriação do nó
Algumas rotações de chaves de contas de serviço podem demorar mais tempo porque é necessária a recriação do nó:
Conta de serviço | É necessária a recriação de nós |
---|---|
Acesso a componentes | Se usar o Artifact Registry: sim Se usar um registo privado: não |
Registo de auditoria | Cluster de administrador: sim, mas apenas nós do plano de controlo Cluster de utilizador com kubeception: não Cluster de utilizador com Controlplane V2: sim, mas apenas nós do plano de controlo |
Registo-monitorização | Não |
Connect-register | Não |
Para uma rotação de chaves que requer a recriação de nós, os nós são substituídos num processo de atualização contínua, ou seja, os nós são recriados um a um.
O possível tempo de inatividade durante uma rotação de chaves é semelhante ao tempo de inatividade de uma atualização do cluster. Para ver detalhes, consulte o artigo Tempo de inatividade durante as atualizações.
Restaurar cópias de segurança
Se precisar de restaurar as cópias de segurança dos segredos que criou anteriormente, execute o seguinte comando:
kubectl apply -f backup/
Diferenças avançadas de clusters para a rotação de chaves de contas de serviço
O comando gkectl update credentials
só é parcialmente suportado para clusters avançados. A tabela seguinte apresenta as variações de comandos suportadas e não suportadas:
Comando | Descrição | Apoio técnico |
---|---|---|
gkectl update credentials certificate-authorities rotate |
Rode as autoridades de certificação. | Suportado |
gkectl update credentials certificate-authorities status |
(Pré-visualização) Veja o estado de rotação das autoridades de certificação. | Suportado |
gkectl update credentials certificate-authorities update-kubeconfig |
Transfira um ficheiro kubeconfig com o certificado de cliente mais recente. | Suportado |
gkectl update credentials cloudauditlogging |
Atualize as credenciais dos registos de auditoria do Cloud. | Não suportado |
gkectl update credentials componentaccess |
Atualize as credenciais da chave da conta de serviço de acesso aos componentes para os clusters criados com o Google Distributed Cloud para VMware. | Suportado |
gkectl update credentials f5bigip |
Atualize as credenciais do balanceador de carga F5 BIG-IP. | Não necessário |
gkectl update credentials ksa-signing-key rotate |
Alterne a chave de assinatura do token da conta de serviço do Kubernetes (KSA). | Não suportado |
gkectl update credentials ksa-signing-key status |
Veja o estado de uma rotação de chaves de assinatura de tokens da KSA em curso. | Não suportado |
gkectl update credentials |
Atualize as credenciais do cluster. | Suportado |
gkectl update credentials privateregistry |
Atualize as credenciais do registo privado para um cluster. | Suportado |
gkectl update credentials register |
Atualize as credenciais da chave da conta de serviço de registo. | Suportado |
gkectl update credentials sakeys |
Atualize as credenciais das chaves de contas de serviço para um cluster. | Suportado |
gkectl update credentials stackdriver |
(Pré-visualização) Atualize as credenciais da observabilidade do Google Cloud. | Suportado |
gkectl update credentials vsphere |
Atualize as credenciais do vSphere para um cluster. | Suportado |
Para uma lista abrangente das funcionalidades e capacidades do Google Distributed Cloud para VMware que são ou não suportadas para clusters avançados, consulte o artigo Diferenças ao executar clusters avançados.