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 GKE em bare metal, as SANs padrão do certificado de 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 SANs extras do certificado do servidor de API personalizado, é possível adicionar outros domínios, subdomínios e endereços IP como SANs ao certificado de servidor da API Kubernetes para o cluster.
Para especificar SANs personalizadas para o certificado do servidor da API, use o campo
controlPlane.apiServerCertExtraSANs
na especificação de configuração do cluster. Esse campo usa uma lista de nomes de domínio
e endereços IP. Este campo é opcional e mutável. É possível adicionar esse campo e atualizá-lo 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 outros domínios e endereços IP especificados quando o cluster fica disponível.
Adicionar ou atualizar domínios para um cluster atual
Como o campo apiServerCertExtraSANs
é mutável, ele pode ser adicionado ou atualizado
a qualquer momento nos clusters atuais. Quando você modifica o campo
apiServerCertExtraSANs
no cluster, ele aciona as seguintes
atividades:
Os controladores de cluster do GKE em Bare Metal 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
Pode haver 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, é possível que você veja 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 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 e da carga do cluster.