Aggiungere domini al certificato del server API

Un nome alternativo del soggetto (SAN) è una funzionalità dei certificati SSL che consente di definire i nomi di dominio e i sottodomini protetti da un certificato. In un cluster Google Distributed Cloud, i SAN predefiniti per il certificato del server API Kubernetes includono gli indirizzi IP e VIP dei nodi del piano di controllo e i nomi DNS di Kubernetes. Con la funzionalità SAN aggiuntivi del certificato del server API personalizzato, puoi aggiungere altri domini, sottodomini e indirizzi IP come SAN al certificato del server API Kubernetes per il cluster.

Per specificare SAN personalizzati per il certificato del server API, utilizza il controlPlane.apiServerCertExtraSANs campo nella specifica di configurazione del cluster. Questo campo accetta un elenco di nomi di dominio e indirizzi IP. Questo campo è facoltativo e modificabile. Puoi aggiungere e aggiornare questo campo quando crei un cluster o in qualsiasi momento successivo.

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

Aggiungere domini durante la creazione del cluster

Quando aggiungi SAN aggiuntivi durante la creazione di un cluster, il certificato del server API Kubernetes include i domini e gli indirizzi IP aggiuntivi specificati quando il cluster diventa disponibile.

Aggiungere o aggiornare i domini per un cluster esistente

Poiché il campo apiServerCertExtraSANs è modificabile, puoi aggiungere o aggiornare il campo in qualsiasi momento per i cluster esistenti. Quando modifichi il campo apiServerCertExtraSANs nel cluster, vengono attivate le seguenti attività:

  • I controller del cluster Google Distributed Cloud rigenerano il certificato del server API in modo da includere i domini aggiuntivi modificati.

  • I controller del cluster riavviano il server API per ricaricare il nuovo certificato.

  • I nuovi valori di apiServerCertExtraSANs vengono verificati da un webhook per assicurarsi che siano conformi alle convenzioni dei nomi di dominio RFC 1035.

  • Il pool di nodi del piano di controllo entra in uno stato di riconciliazione.

    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
    
  • Il pool di nodi diventa pronto dopo che la modifica viene propagata ai server API Kubernetes su ogni nodo del control plane.

    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
    
    

Potresti riscontrare tempi di inattività durante l'aggiornamento del campo SAN aggiuntivi del certificato del server API su un cluster in esecuzione:

  • Nei cluster ad alta affidabilità (HA), le istanze del server API vengono riavviate in sequenza. Puoi comunque interagire con il cluster durante l'aggiornamento del certificato, perché il bilanciatore del carico distribuisce le richieste a ogni server API. Tuttavia, potresti visualizzare una risposta che indica che il server API è in fase di arresto. Se visualizzi questa risposta, riprova a inviare la richiesta.

  • Nei cluster non HA, potrebbe verificarsi una breve interruzione di circa un minuto durante il riavvio di un server API per ricaricare il nuovo certificato.

La propagazione della modifica a tutti i server API richiede 5-20 minuti, a seconda del numero di nodi del piano di controllo nel cluster e del carico del cluster.