Os nomes alternativos do sujeito (SANs, na sigla em inglês) personalizados permitem estender a cobertura do certificado do servidor de API
para outros domínios, subdomínios e endereços IP. Em um cluster do Google Distributed Cloud, os SANs padrão incluem apenas os endereços IP e VIP dos nós do plano de controle e os nomes de DNS padrão do Kubernetes. É possível configurar SANs personalizadas usando o campo mutável controlPlane.apiServerCertExtraSANs no arquivo de configuração do cluster, durante a criação do cluster ou a qualquer momento depois.
Adicionar domínios durante a criação do cluster
Quando você adiciona SANs extras ao criar um cluster, o certificado do servidor de API Kubernetes inclui os domínios e endereços IP adicionais especificados quando o cluster fica disponível.
O exemplo a seguir mostra o campo apiServerCertExtraSANs em um arquivo de configuração de cluster:
...
kind: Cluster
metadata:
name: sample001
namespace: cluster-sample001
spec:
type: user
...
controlPlane:
apiServerCertExtraSANs:
- "demo-dns.example.com"
- "sample-dns.com"
nodePoolSpec:
nodes:
- address: 10.200.0.20
clusterNetwork:
...
Adicionar ou atualizar domínios de um cluster atual
Como o campo apiServerCertExtraSANs é mutável, é possível adicionar ou atualizar o
campo a qualquer momento para clusters atuais. Quando você modifica o
campo apiServerCertExtraSANs no cluster, ele aciona as seguintes
atividades:
Os controladores de cluster do Google Distributed Cloud regeneram o certificado do servidor de API para incluir os domínios extras modificados.
Os controladores do cluster reiniciam o servidor de API para recarregar o novo certificado.
Os novos valores de
apiServerCertExtraSANssão verificados por um webhook para garantir que estejam em conformidade com as convenções de nome de domínio RFC 1035.O pool de nós do plano de controle entra em um estado de reconciliação.
Control Plane Node Pool Status: Anthos Bare Metal Version: 1.28.0-gke.435 Anthos Bare Metal Versions: 1.28.0-gke.435: 3 Conditions: ... Last Transition Time: 2023-11-15T18:23:49Z Observed Generation: 1 Reason: Reconciling Status: True Type: ReconcilingO pool de nós fica pronto depois que a alteração é propagada para os servidores de API do Kubernetes em cada nó do plano de controle.
Control Plane Node Pool Status: Anthos Bare Metal Version: 1.28.0-gke.435 Anthos Bare Metal Versions: 1.28.0-gke.435: 3 Conditions: . . . Last Transition Time: 2023-11-15T18:32:25Z Observed Generation: 1 Reason: ReconciliationCompleted Status: False Type: Reconciling
Pode haver inatividade ao atualizar o campo de SANs extras do certificado do servidor de API em um cluster em execução:
Em clusters de alta disponibilidade (HA), as instâncias do servidor de API são reiniciadas sequencialmente. Ainda é possível interagir com o cluster durante a atualização do certificado, porque o balanceador de carga distribui solicitações para cada servidor de API. No entanto, talvez você receba uma resposta indicando que o servidor de API está sendo encerrado. Se você receber essa resposta, tente fazer a solicitação novamente.
Em clusters que não são de alta disponibilidade, pode haver uma breve interrupção de cerca de um minuto enquanto um servidor de API é reiniciado para recarregar o novo certificado.
A alteração leva de 5 a 20 minutos para ser propagada para todos os servidores de API, dependendo do número de nós do plano de controle no cluster e da carga do cluster.