이 절차는 Ops Manager 또는 Cloud Manager가 managed하는 클러스터를 복제본 세트를 Kubernetes로 마이그레이션과 동일한 라이브, 증분 확장-승격-정리 워크플로를 사용하여 Kubernetes 연산자 하의 Kubernetes로 마이그레이션합니다. 이 페이지에 설명된 차이점을 적용하여 해당 절차를 따르십시오. 이 페이지에서 언급하지 않은 단계는 복제본 세트 절차와 동일하게 작동합니다.
중요
샤딩된 클러스터에서는 내장된 config 서버가 지원되지 않습니다. Kubernetes 연산자는 이 토폴로지를 감지하고 가져오기를 거부합니다.
외부 노드는 모든 구성 요소를 포괄합니다
샤딩된 클러스터의 경우 spec.externalMembers은 config 서버 mongod, 각 샤드의 mongod, mongos 라우터를 포함하는 단일 플랫 목록입니다. 모든 항목은 spec.externalMembers[].type를 설정하며, 모든 mongod 항목은 프로세스가 config 서버 복제본 세트에 속하는지 아니면 특정 샤드의 복제본 세트에 속하는지 식별하기 위해 spec.externalMembers[].replicaSetName도 설정합니다. 전체 필드 참조는 MongoDB 마이그레이션 리소스 설정을 참조하세요.
이름 재정의는 자동화 구성 이름을 유지합니다
kubectl mongodb migrate-to-mck 플러그인은 spec.configServerNameOverride과 spec.shardNameOverrides를 설정하여 Kubernetes 연산자가 새 것을 만들지 않고 기존의 config 서버 및 샤드 복제본 세트를 확장할 수 있도록 합니다. 플러그인은 또한 Kubernetes 측의 노드 수를 0으로 설정합니다.
균일하게 확장 또는 샤드 별로
샤딩된 클러스터를 Kubernetes로 확장하는 방법에는 두 가지가 있습니다.
균일하게, 구성 요소별 개수
spec.mongodsPerShardCount,spec.configServerCount및spec.mongosCount를 늘려서 수행합니다. 모든 샤드가 동일한 수의 Kubernetes 노드를 수신할 때 이 옵션을 사용합니다.샤드 별로
spec.shardOverrides항목을 사용하여 샤드 의 이름을 지정하고 멤버 수를 설정하다 . 샤드의 크기가 다르게 지정되거나, 샤드 별로 샤드 마이그레이션 하거나, 샤드 에 자체 멤버 레이아웃이 필요한 경우에 사용합니다.참고
spec.shardOverrides(샤드별 구성)와spec.shardNameOverrides(자동화 구성 복제본 세트 이름 지정)을 혼동하지 마십시오. 두 설정은 서로 관련이 없습니다.
복제본 세트 절차와 마찬가지로, 관련 구성 요소의 모든 새 Kubernetes 노드에 대해 memberConfig을(를) 수동으로 쓰기 (write)를 한 후 개수를 늘리십시오.
경고
spec.memberConfig 설정 노드 수를 늘리기 전에
기본값으로 새 Kubernetes 노드는 투표 노드로 참여합니다. CRD 기본값은 votes: 1 및 priority: "1"입니다. 이 기본값을 사용하면 아직 동기화 중인 노드가 초기 동기화를 완료하기 전에 투표에 참여할 수 있습니다.
MongoDB에서는 노드 수를 증가시키기 전에 votes: 0 및 priority: "0"를 사용하여 새 Kubernetes 노드 하나당 하나의 spec.memberConfig 엔트리 쓰기 (write)를 하도록 권장합니다. 이렇게 하면 아직 동기화 중인 노드가 투표에서 이길 수 없습니다. votes은 정수입니다. priority은 string입니다.
예시 들어 다음 구성은 단일 클러스터 샤딩된 배포서버 확장합니다. 이 예시 에서는 config 서버 , 두 개의 샤드 각각에 하나씩, mongos 라우터 한 개에 Kubernetes 멤버 한 개를 추가합니다. 새 멤버가 초기 동기화 완료하는 동안 votes: 0 및 priority: "0"를 설정한 다음, 표시된 값으로 승격합니다.
spec: configServerCount: 1 memberConfig: - votes: 1 priority: "10" shardOverrides: - shardNames: ["myclustershard-0"] members: 1 memberConfig: - votes: 1 priority: "10" - shardNames: ["myclustershard-1"] members: 1 memberConfig: - votes: 1 priority: "10" mongosCount: 1단일 클러스터 배포서버 에서는 최상위 spec.memberConfig가 config 서버 멤버를 구성합니다. 일치하는 spec.shardOverrides 항목이 없는 모든 샤드 의 멤버에 동일한 구성이 적용됩니다. mongos 라우터는 복제본 세트 멤버가 아니며 memberConfig를 받지 않습니다.
TLS 인증서 컴포넌트별
각 구성 요소의 명명 패턴을 사용하여 구성 요소별로 인증서 하나를 발급합니다. config 서버용 <name>-config-*, 각 샤드용 <name>-<i>-*, 및 mongos 개 라우터용 <name>-mongos-* 입니다.
한 번에 하나의 컴포넌트를 확장하고 제거합니다.
config 서버, 샤드 또는 mongos 라우터를 확장하거나 축소하는 데 필요한 순서는 없습니다. 한 번에 하나의 구성 요소만 확장하거나 축소하고, 다음 구성 요소나 다음 항목으로 이동하기 전에 목표 상태가 될 때까지 기다리십시오.
상태 조건 및 확인
상태 조건 및 이유는 복제본 세트와 동일하게 작동하며, 모든 구성 요소에서 재정을 고려한 노드 총계를 기반으로 계산됩니다. kubectl wait --for=condition=Migrating=False은 샤딩된 클러스터 마이그레이션에 유효합니다.
샤드 노드가 아닌 mongos Pod를 통해 마이그레이션을 확인합니다.