Namen der Pods über Helm ändern

Namen der Pods über Helm ändern

Ich versuche, MongoDB über Helm auszuführen. Ich möchte 1 primäres Replikat und 2 sekundäre Replikate ausführen.

Ich möchte für die drei MongoDB-Pods nach ihrer Erstellung die folgende Benennung einrichten: mongo-0, mongo-1, mongo-2. Nehmen wir an, mongo-0 wäre primär.

Wenn ich den folgenden Befehl ausführe

helm install --name mongo ~/charts/stable/mongodb --set replicaSet.enabled=true,fullnameOverride=mongo

Die Pods müssen nicht benannt werden:

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

Bitte geben Sie mir einen Rat, wie ich das ändern kann. Ich habe es auch versucht, indem ich values-production.yml geändert habe, aber die Ausgabe war dieselbe.

Antwort1

Sie müssen dieMongoDB-Helm-Diagrammvorlage.

Um genauer zu sein, müssen Sie die folgenden Dateien ändern.

Diagramme/stabil/mongodb/Vorlagen/statefulset-arbiter-rs.yaml

Zeilen bearbeiten:

name: {{ template "mongodb.fullname" . }}-arbiter

Und

- name: {{ template "mongodb.name" . }}-arbiter

Und ersetzen Sie es arbiterdurch den gewünschten Namen des Replikationssatzes.

Diagramme/stabil/mongodb/Vorlagen/statefulset-primary-rs.yaml

Zeilen bearbeiten:

name: {{ template "mongodb.fullname" . }}-primary

Und

- name: {{ template "mongodb.name" . }}-primary

Und ersetzen Sie es primarydurch den gewünschten Namen des Replikationssatzes.

Diagramme/stabil/mongodb/Vorlagen/statefulset-secondary-rs.yaml

Zeilen bearbeiten:

name: {{ template "mongodb.fullname" . }}-secondary

Und

- name: {{ template "mongodb.name" . }}-secondary

Und ersetzen Sie es secondarydurch den gewünschten Namen des Replikationssatzes.

Antwort2

da mein Kommentar nicht in sehr lesbarer Form angezeigt wird, poste ich ihn auch hier:

es ist eine gute Idee, aber nicht 100 % effektiv. Ich führe die Pods im Statefulset aus, daher gibt kubectl get rs keine Ausgabe zurück. Hier ist 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

Nachdem ich die Konfigurationen wie von Crou vorgeschlagen geändert habe, erhalte ich Pods wie diese:

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

Nun möchte ich am Ende die -0 löschen, damit ich Folgendes bekomme:

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

verwandte Informationen