Un nombre alternativo de asunto (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 GKE en Bare Metal, los SAN predeterminados 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 la API personalizado, puedes agregar dominios, subdominios y direcciones IP adicionales como SAN al certificado de servidor de la API de Kubernetes para el clúster.
Si quieres especificar SAN personalizados para el certificado del servidor de la API, usa el campo controlPlane.apiServerCertExtraSANs
en las especificaciones de configuración del clúster, que toma una lista de nombres de dominio y direcciones IP. Este campo es opcional y mutable. Puedes agregar este campo y actualizarlo cuando crees un clúster o en cualquier momento.
...
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 las direcciones IP y los dominios especificados adicionales cuando el clúster está disponible.
Agrega o actualiza los dominios de un clúster existente
Debido a que el campo apiServerCertExtraSANs
es mutable, puedes agregar o actualizar el campo en cualquier momento para los clústeres existentes. Cuando modificas el campo apiServerCertExtraSANs
en el clúster, activa las siguientes actividades:
Los controladores de clústeres de GKE en Bare Metal regeneran el certificado del servidor de la 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 garantizar que cumplan con las convenciones de nombres de dominio 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 se prepara 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 tiempo de inactividad cuando actualices el campo 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. Aún 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 realizar la solicitud.
En los clústeres sin alta disponibilidad, puede haber una breve interrupción de alrededor de un minuto mientras el servidor de la API se reinicia 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 y la carga del clúster.