Google Distributed Cloud는 인증서 및 비공개 키를 사용하여 클러스터의 시스템 구성요소 간 연결을 인증하고 암호화합니다. 클러스터 인증 기관(CA)은 이러한 인증서 및 키를 관리합니다. bmctl
update credentials certificate-authorities rotate
명령어를 실행하면 Google Distributed Cloud가 다음 작업을 수행합니다.
이 명령어는 클러스터 CA, etcd CA, 프런트 프록시 CA의 새 클러스터 인증 기관(CA)을 만들어 관리자 클러스터의 사용자 클러스터 네임스페이스에 업로드합니다.
관리자 클러스터 컨트롤러는 사용자 클러스터 인증 기관을 새로 생성된 인증 기관으로 바꿉니다.
관리자 클러스터 컨트롤러는 새로운 공개 CA 인증서 및 리프 인증서 키 쌍을 사용자 클러스터 시스템 구성요소에 배포합니다.
이 명령어는 또한 클러스터 생성 중 Google Distributed Cloud에서 생성된
stackdriver-prometheus-etcd-scrape
보안 비밀을 업데이트합니다. Prometheus가 etcd 측정항목을 수집하려면 이 보안 비밀이 필요합니다.
보안 클러스터 통신을 유지하려면 주기적으로 사용자 클러스터 CA를 순환하고 보안 침해가 발생할 가능성이 있을 때마다 순환합니다.
시작하기 전에
클러스터의 인증 기관을 순환하기 전에 다음 조건과 영향을 고려하여 계획을 수립하세요.
CA 순환을 시작하기 전에 관리자 및 사용자 클러스터 버전이 1.9.0 이상인지 확인합니다.
CA 순환은 점진적으로 이루어지므로 순환 중에도 시스템 구성요소가 서로 통신할 수 있습니다.
CA 순환은 API 서버, 제어 영역 프로세스, 클러스터의 각 노드를 여러 번 다시 시작합니다. CA 순환의 각 단계는 클러스터 업그레이드와 비슷하게 진행됩니다. CA가 순환되는 동안 사용자 클러스터가 작동 상태로 유지되지만 워크로드가 다시 시작되고 다시 예약된다는 것에 주의해야 합니다.
사용자 클러스터에 고가용성 컨트롤 플레인이 없으면 CA 순환 중 컨트롤 플레인에 짧은 다운타임이 발생할 수 있습니다.
클러스터 관리 작업은 CA 순환 중에 허용되지 않습니다.
CA 순환 기간은 클러스터 크기에 따라 달라집니다. 예를 들어 컨트롤 플레인이 1개 있고 워커 노드가 50개인 클러스터의 경우 CA 순환이 완료되는 데 2시간까지 걸릴 수 있습니다.
제한사항
인증 기관 순환 기능에는 다음 제한이 포함됩니다.
CA 순환은 클러스터 CA가 인증서를 서명하더라도 관리자가 수동으로 발급한 인증서를 업데이트하지 않습니다. 사용자 클러스터 CA 순환이 완료된 후 수동으로 발급된 인증서를 업데이트하고 다시 배포합니다.
CA 순환은 시작된 후 일시 중지되거나 롤백될 수 없습니다.
클러스터 CA 순환 시작
기본적으로 TLS 인증서의 유효 기간은 1년입니다. Google Distributed Cloud는 인증 기관을 순환할 때 이러한 인증서를 갱신합니다. Google Distributed Cloud는 또한 클러스터 업그레이드 중 TLS 인증서를 갱신합니다. 보안과 지원을 유지하고 TLS 인증서가 만료되지 않도록 클러스터를 정기적으로 업그레이드하는 것이 좋습니다.
다음 명령어를 사용하여 CA 순환 프로세스를 시작합니다.
bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
--kubeconfig KUBECONFIG
다음을 바꿉니다.
CLUSTER_NAME
: CA를 순환하려는 클러스터의 이름입니다.KUBECONFIG
: 관리자 클러스터 kubeconfig 파일의 경로입니다. 자체 관리 클러스터의 경우 이 파일은 클러스터의 kubeconfig 파일입니다.
CA가 성공적으로 순환되고 새로운 kubeconfig 파일이 생성된 후 bmctl
명령어가 종료됩니다. kubeconfig 파일의 표준 경로는 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
입니다.
클러스터 CA 순환 문제 해결
bmctl update credentials
명령어는 CA 순환의 진행 상태를 표시합니다.
연결된 update-credentials.log
파일은 다음과 같이 타임스탬프가 표시된 디렉터리에 저장됩니다.
bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP