Agrega dominios al certificado del servidor de la API

Un nombre alternativo de la entidad (SAN) es una función de los certificados SSL que te permite definir los nombres de dominio y subdominios que están protegidos por un certificado. En un clúster de Google Distributed Cloud, las SAN predeterminadas para el certificado del servidor de la API de Kubernetes incluyen las direcciones IP y VIP de los nodos del plano de control y los nombres de DNS de Kubernetes. Con la función de SAN adicionales del certificado de servidor de API personalizado, puedes agregar dominios, subdominios y direcciones IP adicionales como SAN al certificado de servidor de la API de Kubernetes del clúster.

Para especificar SAN personalizados para el certificado del servidor de la API, usa el campo controlPlane.apiServerCertExtraSANs en la especificación de configuración del clúster. Este campo toma una lista de nombres de dominio y direcciones IP. Este campo es opcional y mutable. Puedes agregar este campo y actualizarlo cuando creas un clúster o en cualquier momento después.

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

Agrega dominios durante la creación del clúster

Cuando agregas SAN adicionales cuando creas un clúster, el certificado del servidor de la API de Kubernetes incluye los dominios y las direcciones IP especificados adicionales cuando el clúster está disponible.

Agrega o actualiza dominios para un clúster existente

Como el campo apiServerCertExtraSANs es mutable, puedes agregarlo o actualizarlo en cualquier momento para los clústeres existentes. Cuando modificas el campo apiServerCertExtraSANs en el clúster, se activan las siguientes actividades:

  • Los controladores de clúster de Google Distributed Cloud vuelven a generar el certificado del servidor de API para incluir los dominios adicionales modificados.

  • Los controladores del clúster reinician el servidor de la API para volver a cargar el certificado nuevo.

  • Un webhook verifica los valores nuevos de apiServerCertExtraSANs para asegurar que cumplan con las convenciones de nombres de dominio de la RFC 1035.

  • El grupo de nodos del plano de control entra en un estado de conciliación.

    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
    
  • El grupo de nodos estará listo después de que el cambio se propague a los servidores de la API de Kubernetes en cada nodo del plano de control.

    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
    
    

Es posible que experimentes un tiempo de inactividad cuando actualices el campo de SAN adicionales del certificado del servidor de la API en un clúster en ejecución:

  • En los clústeres de alta disponibilidad (HA), las instancias del servidor de la API se reinician de forma secuencial. Puedes interactuar con el clúster durante la actualización del certificado, ya que el balanceador de cargas distribuye las solicitudes a cada servidor de la API. Sin embargo, es posible que veas una respuesta que indique que el servidor de la API se estácerrando. Si ves esta respuesta, vuelve a intentar la solicitud.

  • En los clústeres que no tienen alta disponibilidad, es posible que haya una breve interrupción de aproximadamente un minuto mientras se reinicia un servidor de la API para volver a cargar el certificado nuevo.

El cambio tarda entre 5 y 20 minutos en propagarse a todos los servidores de la API, según la cantidad de nodos del plano de control en el clúster y la carga del clúster.