Kubelet용 인증서 회전 구성하기

Kubelet용 인증서 회전 구성하기 (Configure Certificate Rotation for the Kubelet)

이 페이지는 kubelet용 인증서 회전을 활성화하고 구성하는 방법을 보여드려요.

기능 상태: Kubernetes v1.19부터 Stable.

출처: 문서

본문

시작하기 전에 (Before you begin)

  • 쿠버네티스 버전 1.8.0 이상이 필요해요.

개요 (Overview)

kubelet은 쿠버네티스 API로 인증하기 위해 인증서를 사용해요. 기본적으로 이 인증서는 1년 유효기간으로 발급되어 너무 자주 갱신할 필요가 없어요.

쿠버네티스에는 kubelet 인증서 회전이 포함되어 있어, 현재 인증서가 만료에 가까워지면 자동으로 새 키를 생성하고 쿠버네티스 API에 새 인증서를 요청해요. 새 인증서가 사용 가능해지면 쿠버네티스 API에 대한 연결을 인증하는 데 사용돼요.

클라이언트 인증서 회전 활성화하기 (Enabling client certificate rotation)

kubelet 프로세스는 현재 사용 중인 인증서의 만료가 가까워지면 kubelet이 자동으로 새 인증서를 요청할지 제어하는 --rotate-certificates 인자를 받아들여요.

kube-controller-manager 프로세스는 인증서가 발급될 기간을 제어하는 --cluster-signing-duration(1.19 이전에는 --experimental-cluster-signing-duration) 인자를 받아들여요.

인증서 회전 구성 이해하기 (Understanding the certificate rotation configuration)

kubelet이 시작할 때 부트스트랩하도록 구성되어 있으면(--bootstrap-kubeconfig 플래그로), 초기 인증서로 쿠버네티스 API에 연결해 인증서 서명 요청(certificate signing request)을 발행해요. 인증서 서명 요청의 상태는 다음으로 볼 수 있어요.

kubectl get csr

처음에는 노드의 kubelet이 보낸 인증서 서명 요청의 상태가 Pending이 돼요. 인증서 서명 요청이 특정 기준을 충족하면 controller manager가 자동 승인하고 상태가 Approved가 돼요. 다음으로 controller manager는 --cluster-signing-duration 매개변수가 지정한 기간 동안 발급된 인증서에 서명하고, 서명된 인증서가 인증서 서명 요청에 첨부돼요.

kubelet은 쿠버네티스 API에서 서명된 인증서를 검색해 --cert-dir이 지정한 위치의 디스크에 기록해요. 그런 다음 kubelet은 새 인증서로 쿠버네티스 API에 연결해요.

서명된 인증서의 만료가 가까워지면 kubelet은 쿠버네티스 API를 사용해 자동으로 새 인증서 서명 요청을 발행해요. 이는 인증서에 남은 시간의 30%와 10% 사이의 어느 시점에서든 발생할 수 있어요. 다시 controller manager가 인증서 요청을 자동 승인하고 서명된 인증서를 인증서 서명 요청에 첨부해요. kubelet은 쿠버네티스 API에서 새 서명된 인증서를 검색해 디스크에 기록해요. 그런 다음 쿠버네티스 API에 대한 연결을 업데이트해 새 인증서로 다시 연결해요.

더 알아보기 (Learn more)