A
u
Belaid Youba Hadj Arab, Etienne Deneuve
Aug 27, 2023 · 3 min read

Comment upgrade Monogdb Community sur AKS

Side view worker wearing gloves

Comment

Nous allons voir ici comment faire une upgrade de Mongodb Community de 4.4.10 a 7.0.0 . Car j’avais beau chercher des heures, je n’avais rien trouver pour m’y aider, du coup autant aider ceux qui y auront affaire !

Mongodb Community

  1. Partons d’un déploiement quoi de plus simple, avec un user et une base de donnée :

    apiVersion: mongodbcommunity.mongodb.com/v1
    kind: MongoDBCommunity
    metadata:
    name: my-mongo
    namespace: mongo
    spec:
    additionalMongodConfig:
    storage.wiredTiger.engineConfig.journalCompressor: zlib
    members: 3
    security:
    authentication:
    ignoreUnknownUsers: true
    modes:
    - SCRAM
    tls:
    enabled: false
    statefulSet:
    spec:
    template:
    spec:
    containers:
    - name: mongod
    resources:
    limits:
    cpu: '3'
    memory: 4Gi
    requests:
    cpu: '2'
    memory: 2Gi
    - name: mongodb-agent
    resources:
    limits:
    cpu: '0.5'
    memory: 512M
    requests:
    cpu: '0.2'
    memory: 200M
    type: ReplicaSet
    users:
    - name: admin
    db: admin
    scramCredentialsSecretName: my-scram-admin
    passwordSecretRef:
    name: admin-password
    roles:
    - name: clusterAdmin
    db: admin
    - name: userAdminAnyDatabase
    db: admin
    - name: dev-db
    db: dev-db
    scramCredentialsSecretName: my-scram-dev
    passwordSecretRef:
    name: dev-db-password
    roles:
    - name: readWrite
    db: dev-db
    version: 4.4.10
    featureCompatibilityVersion: '4.4'
  2. Ici y a 2 scénarios : dans le premier, vous avez ça featureCompatibilityVersion dans votre yaml et dans ce cas bravo, si non vous devez l’ajouter comme dans l’exemple au dessus.

  3. Acceder au pod primary, puis connectez vous a la base de donné :

    Terminal window
    mongo -u admin -p PASSWORD --authenticationDatabase admin
  4. Une fois dans la base de donnée, passez ces commande :

    Terminal window
    # passer en admin
    use admin
    # Verifier le eatureCompatibilityVersion
    db.adminCommand({getParameter: 1,featureCompatibilityVersion: 1})
  5. Si tout ce passe bien, vous devriez avoir un résultat qui dit :

    Terminal window
    {
    "featureCompatibilityVersion" : {
    "version" : "4.4" # on est bien sur la bonne version
    },
    "ok" : 1,
    "$clusterTime" : {
    "clusterTime" : Timestamp(1692709763, 3),
    "signature" : {
    "hash" : BinData(0,"G2h/IOKY+TIMtryV9dDkEt2rlkw="),
    "keyId" : NumberLong("7263035781982191620")
    }
    },
    "operationTime" : Timestamp(1692709763, 3)
    }
  6. Si le résultat n’est pas le bon, passez juste cette commande puis tester a nouveau :

    Terminal window
    db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
  7. Maintenant que le featureCompatibilityVersion correspand a la version de mongodb, vous pouvez faire l’upgrade. Pour ça suffit juste de changer les versions :

    version: 5.0.0
    featureCompatibilityVersion: '5.0'

NOTE IMPORTANTE : pour passer par exemple de la version 4.4.10 a la version 7.0.0, il faut obligatoirement passer par les major release intermédiaire, c’est a dire : 4.4.10->5.0.0->6.0.9->7.0.0

  1. Attendre que tous les pods se redéploient, puis refaire l’étape 4 pour vérifier que la version de mongo correspend a la version featureCompatibilityVersion, sinon refaire l’étape 6

NOTE IMPORTANTE : pour le featureCompatibilityVersion, voilà les versions a utiliser : 4.4, 5.0, 6.0 et 7.0.

Conclusion

Voilà, maintenant vous pouvez upgrade votre mongo sans avoir de problème de featureCompatibilityVersion.

Tutorial Mongo

Articles relatifs