주체 대체 이름(SAN)은 인증서로 보호할 도메인 이름과 하위 도메인 이름을 정의할 수 있는 SSL 인증서의 기능입니다. Google Distributed Cloud 클러스터에서 Kubernetes API 서버 인증서의 기본 SAN에는 제어 영역 노드의 IP 및 VIP 주소와 Kubernetes DNS 이름이 포함됩니다. 커스텀 API 서버 인증서 추가 SAN 기능을 사용하면 클러스터의 Kubernetes API 서버 인증서에 추가 도메인, 하위 도메인, IP 주소를 SAN으로 추가할 수 있습니다.
API 서버 인증서에 커스텀 SAN을 지정하려면 클러스터 구성 사양에서 controlPlane.apiServerCertExtraSANs
필드를 사용하세요. 이 필드에는 도메인 이름 및 IP 주소 목록이 사용됩니다. 이 필드는 선택사항이며 변경할 수 있습니다. 이 필드를 추가하고 클러스터를 만들 때나 이후 언제든지 업데이트할 수 있습니다.
...
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:
...
클러스터를 만들 때 도메인 추가
클러스터를 만들 때 SAN을 추가하게 되면, 클러스터가 생성되었을 때 Kubernetes API 서버 인증서에는 지정된 추가 도메인 및 IP 주소가 포함됩니다.
기존 클러스터의 도메인 추가 또는 업데이트
apiServerCertExtraSANs
필드는 변경 가능하므로 언제든지 기존 클러스터에 필드를 추가하거나 업데이트할 수 있습니다. 클러스터에서 apiServerCertExtraSANs
필드를 수정하면 다음 활동이 트리거됩니다.
Google Distributed Cloud 클러스터 컨트롤러는 수정된 추가 도메인을 포함하도록 API 서버 인증서를 다시 생성합니다.
클러스터 컨트롤러는 API 서버를 다시 시작하여 새 인증서를 새로고침합니다.
새로운
apiServerCertExtraSANs
값이 RFC 1035 도메인 이름 규칙을 준수하는지 웹훅이 확인합니다.제어 영역 노드 풀이 조정 상태가 됩니다.
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
변경사항이 각 제어 영역 노드의 Kubernetes API 서버에 전파되면 노드 풀이 준비됩니다.
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
실행 중인 클러스터에서 API 서버 인증서 추가 SAN 필드를 업데이트할 때 다운타임이 발생할 수 있습니다.
고가용성(HA) 클러스터에서 API 서버 인스턴스는 순차적으로 다시 시작됩니다. 부하 분산기가 각 API 서버에 요청을 배포하므로 인증서 업데이트 중에 클러스터와 계속 상호작용할 수 있습니다. 하지만 API 서버가 종료되고 있음을 나타내는 응답이 표시될 수 있습니다. 이 응답이 표시되면 요청을 다시 시도하세요.
HA가 아닌 클러스터에서는 API 서버가 새 인증서를 새로고침하도록 다시 시작할 때 약 1분 정도의 중단이 발생할 수 있습니다.
클러스터의 제어 영역 노드 수와 클러스터 로드에 따라 변경 사항이 모든 API 서버에 전파되는 데 5~20분이 소요됩니다.