Adicione domínios ao certificado do servidor da API

Um nome alternativo do requerente (SAN) é uma funcionalidade dos certificados SSL que lhe permite definir os nomes de domínio e os subdomínios protegidos por um certificado. Num cluster do Google Distributed Cloud, os SANs predefinidos para o certificado do servidor da API Kubernetes incluem os endereços IP e VIP dos nós do plano de controlo e os nomes DNS do Kubernetes. Com a funcionalidade de SANs adicionais do certificado do servidor da API personalizado, pode adicionar domínios, subdomínios e endereços IP adicionais como SANs ao certificado do servidor da API Kubernetes para o cluster.

Para especificar SANs personalizados para o certificado do servidor da API, use o campo controlPlane.apiServerCertExtraSANs na especificação de configuração do cluster. Este campo recebe uma lista de nomes de domínios e endereços IP. Este campo é opcional e mutável. Pode adicionar este campo e atualizá-lo quando criar um cluster ou em qualquer altura depois.

...
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:
  ...

Adicione domínios durante a criação de clusters

Quando adiciona SANs adicionais ao criar um cluster, o certificado do servidor da API Kubernetes inclui os domínios e os endereços IP especificados adicionais quando o cluster fica disponível.

Adicione ou atualize domínios para um cluster existente

Uma vez que o campo apiServerCertExtraSANs é mutável, pode adicionar ou atualizar o campo em qualquer altura para clusters existentes. Quando modifica o campo apiServerCertExtraSANs no cluster, são acionadas as seguintes atividades:

  • Os controladores do cluster do Google Distributed Cloud regeneram o certificado do servidor da API para incluir os domínios adicionais modificados.

  • Os controladores do cluster reiniciam o servidor da API para recarregar o novo certificado.

  • Os novos valores de apiServerCertExtraSANs são validados por um webhook para garantir que estão em conformidade com as convenções de nomes de domínio RFC 1035.

  • O node pool do plano de controlo entra num estado de conciliaçã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 conjunto de nós fica pronto depois de a alteração ser propagada para os servidores da API Kubernetes em cada nó do plano de controlo.

    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 ocorrer tempo de inatividade quando atualiza o campo SANs adicionais do certificado do servidor da API num cluster em execução:

  • Em clusters de alta disponibilidade (HA), as instâncias do servidor da API são reiniciadas sequencialmente. Ainda pode interagir com o cluster durante a atualização do certificado, porque o equilibrador de carga distribui pedidos a cada servidor da API. No entanto, pode ver uma resposta a indicar que o servidor da API está a ser encerrado. Se vir esta resposta, tente novamente o pedido.

  • Em clusters não de HA, pode ocorrer uma breve indisponibilidade de cerca de um minuto enquanto um servidor de API é reiniciado para recarregar o novo certificado.

A alteração demora 5 a 20 minutos a propagar-se a todos os servidores da API, consoante o número de nós do plano de controlo no cluster e a carga do cluster.