
helm을 통해 mongodb를 실행하려고합니다. 기본 복제본 1개와 보조 복제본 2개를 실행하고 싶습니다.
일단 생성된 3개의 mongodb 포드에 대해 다음 이름 지정을 설정하고 싶습니다. mongo-0 mongo-1 mongo-2 그리고 mongo-0이 기본이 될 것이라고 가정하겠습니다.
다음 명령을 실행할 때
helm install --name mongo ~/charts/stable/mongodb --set replicaSet.enabled=true,fullnameOverride=mongo
포드에는 이름 지정이 필요하지 않습니다.
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-arbiter-0 1/1 Running 0 15s
mongo-primary-0 0/1 Running 0 15s
mongo-secondary-0 0/1 Running 0 15s
조언 좀 부탁드립니다. 어떻게 바꿀 수 있나요? value-production.yml을 변경하여 시도했지만 결과는 동일했습니다.
답변1
다음을 수정해야 합니다.mongoDB Helm 차트 템플릿.
보다 구체적으로 설명하려면 다음 파일을 변경해야 합니다.
차트/stable/mongodb/templates/statefulset-arbiter-rs.yaml
편집 라인:
name: {{ template "mongodb.fullname" . }}-arbiter
그리고
그리고 arbiter
원하는 ReplicaSet의 이름으로 바꾸세요.
차트/stable/mongodb/templates/statefulset-primary-rs.yaml
편집 라인:
name: {{ template "mongodb.fullname" . }}-primary
그리고
그리고 primary
원하는 ReplicaSet의 이름으로 바꾸세요.
차트/stable/mongodb/templates/statefulset-secondary-rs.yaml
편집 라인:
name: {{ template "mongodb.fullname" . }}-secondary
그리고
그리고 secondary
원하는 ReplicaSet의 이름으로 바꾸세요.
답변2
내 의견이 읽기 쉬운 형식으로 표시되지 않기 때문에 여기에도 의견을 게시하겠습니다.
좋은 생각이지만 100% 효과적이지는 않습니다. Statefulset에서 포드를 실행 중이므로 kubectl get rs가 출력을 반환하지 않습니다. kubectl get ss는 다음과 같습니다.
kubectl get statefulsets
NAME DESIRED CURRENT AGE
mongo-0 1 1 93s
mongo-1 1 1 93s
mongo-2 1 1 93s
Crou가 제안한 대로 구성을 변경한 후 다음과 같은 포드를 얻습니다.
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-0-0 1/1 Running 0 39s
mongo-1-0 1/1 Running 0 39s
mongo-2-0 1/1 Running 0 39s
이제 결국 -0을 삭제하여 다음과 같은 결과를 얻고 싶습니다.
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-0 1/1 Running 0 39s
mongo-1 1/1 Running 0 39s
mongo-2 1/1 Running 0 39s