TLS 지원 복제본 세트 가상 머신에서 Kubernetes 로 마이그레이션 경우, 복제본 세트 하나는 신뢰 도메인 하나가 됩니다. 가상 머신 인증서에 서명한 동일한 인증 기관(CA)에서 Kubernetes 구성원 인증서를 발급합니다. 이는 유일한 마이그레이션별 TLS 요구 사항입니다. Kubernetes Operator에 대한 일반 TLS 문서에서 TLS 구성에 대한 다른 모든 내용을 다룹니다. CA 불일치는 의도적으로 테스트 실행 실패합니다. 드라이 실행 이러한 실패를 어떻게 표면화하는지 학습 드라이 런으로 마이그레이션 준비 상태 검증을 참조하세요.
중요
이 페이지의 필드는 마이그레이션 위해서만 존재합니다. 필드 설명에 달리 명시되지 않는 한 그린필드 Kubernetes Operator 배포서버 에서는 설정하다 하지 마세요.
이 작업에 대하여
인증서를 발급하고, Secret 및 ConfigMap을 구성하고, MongoDB 사용자 지정 리소스 에서 일반 TLS 설정을 구성하는 방법을 학습 다음을 참조하세요.
보안 설정에서
spec.security.tls및 관련 필드의 전체 목록을 확인하세요.cert-manager로 인증서를 발급하도록cert-manager 통합을 설정합니다.X.509 클라이언트 인증서를 생성하여 수동으로 인증서를 발급합니다.
마이그레이션 에 대한 해당 설명서를 따를 때는 새 CA가 아닌 가상 머신 인증서에 서명한 동일한 CA에서 Kubernetes 멤버 인증서를 발급합니다. 이름이 <resourceName>-ca인 CA ConfigMap에는 동일한 CA에서 채워진 ca-pem 키가 포함되어 있어야 합니다.
시작하기 전에
다음이 필요합니다.
가상 머신 배포의 기존 CA 인증서 및 주 자료.
cert-manager또는 동일한 CA에서 Kubernetes 구성원 인증서를 발급하는 동등한 도구를 사용할 수 있습니다.복제본 세트를 Kubernetes 로 마이그레이션에서 생성된
MongoDB사용자 지정 리소스 입니다.
절차
소스 CA에서 인증서와 CA 리소스를 생성합니다.
Set Up a cert-manager Integration or Generate X.509 Client Certificates(클라이언트 인증서 생성)를 따라 <certsSecretPrefix>-<resourceName>-cert이라는 이름의 kubernetes.io/tls Secret를 생성하고, 가상 머신 인증서에 서명한 동일한 CA에서 인증서를 발급합니다.
동일한 CA에서 채워진 ca-pem 키를 사용하여 <resourceName>-ca이라는 이름의 CA ConfigMap를 생성합니다.
X.509 에이전트 인증 사용하는 경우 <certsSecretPrefix>-<resourceName>-agent-certs Secret도 생성하고 이를 참조하도록 spec.security.authentication.agents.clientCertificateSecretRef를 설정하다 . 이 요구 사항은 에이전트 인증 에만 적용되며 내부 클러스터 인증 (spec.security.authentication.internalCluster)에는 적용되지 않습니다.
소스 배포서버 일치하도록 경로 호환성 필드를 설정합니다.
이러한 필드는 파일 경로에 대한 Kubernetes Operator의 보기를 가상 머신 배포서버 이미 인증서 및 키 파일이 배치되어 있는 방식과 일치하도록 하기 위해서만 존재합니다. 소스 배포서버 에 적용 항목만 설정합니다.
spec.security.tls.caFilePath: CA가 Pod 내부에 프로젝션되는 절대 경로입니다. 기본값은/mongodb-automation/tls/ca/ca-pem입니다. 경로에는 경로 세그먼트가 두 개 이상 포함되어야 합니다. 이 필드 애플리케이션 데이터베이스에서 지원되지 않습니다.podTemplate가 이 경로를 통해 다른 볼륨을 마운트하면 해당 마운트는 프로젝션된 CA를 섀도잉하고 Ops Manager 에이전트가 이를 읽을 수 없습니다.spec.security.authentication.agents.autoPEMKeyFilePath: 데이터베이스 Pods 내에 있는 에이전트의 결합된 PEM 파일 의 절대 경로입니다. 이 필드 에이전트 인증 만 구성합니다. 이 필드 설정하면 Ops Managertls.autoPEMKeyFilePath값이 설정되고clientCertificateSecretRef이 참조하는Secret이 해당 경로에서 마운트됩니다. 기본값은 해시 파생 에이전트 인증서 마운트 경로이며, 이를 설정하려면spec.security.authentication.agents.clientCertificateSecretRef이(가) 이미 설정하다 있어야 합니다. 가상 머신 배포서버 기본이 아닌 에이전트 PEM 경로를 사용하는 경우에만 이 필드 설정합니다.spec.downloadBase:Ops Manager Agent 바이너리가 다운로드되는 디렉토리 입니다. 기본값은/var/lib/mongodb-mms-automation입니다. Kubernetes Operator는 이 값에서 키 파일 경로를<downloadBase>/keyfile로 파생합니다.
소스 배포서버 TLS를 사용하지 않는 경우 소스 배포서버 에서 TLS를 비활성화합니다.
가상 머신 배포서버 TLS를 구성한 적이 없는 경우, 마이그레이션 전에 기존 가상 머신 배포서버 의 Ops Manager 또는 Cloud Manager 에서 net.tls.mode를 disabled로 설정하다 . MongoDB 사용자 지정 리소스 에서는 이 필드 설정하다 하지 마세요.
소스 배포의 TLS 모드 설정하지 않으면 Kubernetes Operator는 소스 자동화 구성과 일치하지 않는 배포서버 변경을 시도하는데, 이는 TLS에 대한 기본값 보기가 TLS를 전혀 구성하지 않은 배포서버 와 다르기 때문입니다. 소스 배포서버 에서 이 필드 disabled로 설정하면 Kubernetes Operator의 보기가 가상 머신 배포서버 와 일치하고 잘못된 변경을 방지할 수 있습니다.
테스트 실행 실행하여 CA가 일치하는지 확인합니다.
테스트 실행 주석이 여전히 있는 상태에서 리소스 적용하고 NetworkConnectivityVerified 조건을 확인합니다. 결과를 읽는 방법과 실패할 경우 수행할 작업을 학습 테스트 실행으로 마이그레이션 준비 상태 검증을 참조하세요.
샤드 클러스터의 경우
샤딩된 클러스터 config 서버 대해 <resourceName>-config-* 패턴 , 각 샤드 에 대해 <resourceName>-<shardIndex>-*, mongos 라우터에 대해 <resourceName>-mongos-* 패턴을 따르는 구성 요소당 하나의 인증서가 필요합니다.
참고
조정하기 전에 생성된 리소스 와 비교하여 정확한 구성 요소별 Secret 이름을 확인합니다. 샤딩된 클러스터 마이그레이션 이 복제본 세트 마이그레이션 과 어떻게 다른지 학습 샤드 클러스터를 Kubernetes 로 마이그레이션을 참조하세요.