Quando os certificados dos nós do cluster expiram, os comandos kubectl falham e as operações da API retornam erros, o que bloqueia a comunicação com o servidor de API. Certificados expirados não podem ser renovados por meio de implantação baseada em modelo. Para renová-los, acesse cada nó e execute o comando docker run.
Pré-requisitos
Antes de começar, verifique se você tem:
Acesso como usuário root a cada nó mestre e nó trabalhador no cluster
Renovar certificados de nós mestres
Acesse um nó mestre como usuário root e execute:
docker run -it --privileged=true -v /:/alicoud-k8s-host --pid host --net host \
registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0 /renew/upgrade-k8s.sh --role master
Repita o procedimento em cada nó mestre do cluster.
Renovar certificados de nós trabalhadores
A renovação dos nós trabalhadores exige a chave privada da CA raiz de um nó mestre. Siga as etapas abaixo para cada nó trabalhador.
-
Acesse um nó mestre como usuário root e obtenha a chave privada da CA raiz:
cat /etc/kubernetes/pki/ca.key -
Codifique a chave privada da CA raiz em Base64. Execute um dos comandos a seguir, conforme a presença de linha em branco na chave:
-
Se a chave contiver uma linha em branco:
sed '1d' /etc/kubernetes/pki/ca.key | base64 -w 0 -
Se a chave não contiver linha em branco:
cat /etc/kubernetes/pki/ca.key | base64 -w 0
Copie a saída. Esse valor corresponde a
${base64CAKey}na próxima etapa. -
-
Acesse o nó trabalhador como usuário root e execute:
docker run -it --privileged=true -v /:/alicoud-k8s-host --pid host --net host \ registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0 /renew/upgrade-k8s.sh --role node --rootkey ${base64CAKey}Substitua
${base64CAKey}pela chave privada da CA raiz codificada em Base64 obtida na etapa 2.
Repita as etapas de 1 a 3 para cada nó trabalhador no cluster.