Um nome alternativo do assunto (SAN, na sigla em inglês) é um recurso de certificados SSL que permite definir os nomes de domínio e subdomínios protegidos por um certificado. Em um cluster do Google Distributed Cloud, as SANs padrão do certificado do servidor da API Kubernetes incluem os endereços IP e VIP dos nós do plano de controle e os nomes DNS do Kubernetes. Com o recurso extra de SANs do certificado do servidor de API personalizado, é possível adicionar outros domínios, subdomínios e endereços IP como SANs ao certificado do servidor da API Kubernetes referente ao cluster.
Para especificar SANs personalizadas para o certificado do servidor de API, use o campo
controlPlane.apiServerCertExtraSANs
na especificação de configuração do cluster. Esse campo recebe uma lista de nomes de domínio
e endereços IP. Este campo é opcional e mutável. É possível adicionar e atualizar esse campo ao criar um cluster ou a qualquer momento depois disso.
...
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 domínios durante a criação do cluster
Quando você adiciona SANs extras ao criar um cluster, o certificado do servidor da API Kubernetes inclui os domínios e endereços IP adicionais especificados quando o cluster fica disponível.
Adicionar ou atualizar domínios para um cluster existente
Como o campo apiServerCertExtraSANs
é mutável, é possível adicionar ou atualizar o
campo a qualquer momento nos clusters atuais. Quando você modifica o campo
apiServerCertExtraSANs
no cluster, ele aciona as seguintes
atividades:
Os controladores de cluster do Google Distributed Cloud geram novamente o certificado do servidor de API para incluir os domínios extras modificados.
Os controladores de cluster reiniciam o servidor da API para recarregar o novo certificado.
Os novos valores de
apiServerCertExtraSANs
são verificados por um webhook para garantir que estejam em conformidade com as convenções de nome de domínio RFC 1035 (em inglês).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: Reconciling
O pool de nós fica pronto depois que a alteração é propagada para os servidores da API 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
Talvez ocorra inatividade ao atualizar o campo SANs extras do certificado do servidor de API em um cluster em execução:
Em clusters de alta disponibilidade (HA, na sigla em inglês), 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, você pode ver uma resposta indicando que o servidor da API está sendo encerrado. Se você vir essa resposta, tente fazer a solicitação novamente.
Em clusters que não são de alta disponibilidade, pode ocorrer uma breve interrupção 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 da API, dependendo do número de nós do plano de controle no cluster e da carga do cluster.