Bu doküman, Kubernetes ortamına Helm kullanarak MongoDB kurulumunun temel adımlarını anlatmaktadır.


Bu kurulum yöntemi, production ortamları için önerilmez.

MongoDB, yalnızca tek bir replica olarak kurulur ve veriler, hostPath kullanılarak control-plane rolüne sahip olmayan ilk uygun worker node üzerinde depolanır.


Eğer cluster’da yalnızca bir node varsa, pod'un bu node üzerinde çalışabilmesi için aşağıdaki komutlarla node üzerindeki control-plane etiketi ve tainti kaldırılmalıdır:
kubectl label node <node-name> node-role.kubernetes.io/control-plane-
kubectl taint nodes <node-name> node-role.kubernetes.io/control-plane:NoSchedule- 


Verilerin node bağımsız bir şekilde saklanabilmesi için NFS, Ceph, Longhorn veya bir bulut tabanlı depolama çözümü kullanılması önerilir.

Ön Koşullar

  • Kubernetes cluster’ınızın hazır ve erişilebilir olması

  • Helm’in ortamınızda kurulu olması

Eğer helm kurulu değilse, Helm Kurulum Dokümanı sayfasını inceleyebilirsiniz.

1) Reponun Eklenmesi

helm repo add mongodb-charts https://apinizer1.github.io/mongodb-charts 
helm repo update
CODE

2) Mongo Kurulumu

Aşağıdaki komutu çalıştırarak herhangi bir özel ayar yapmadan MongoDB kurulumunu gerçekleştirebilirsiniz:

helm install mongodb-charts mongodb-charts/mongo
CODE

Not: Mevcut kurulumda mongo:8.0 sürümü kullanılmaktadır. Daha güncel bir sürüm tercih etmek isterseniz mongo:8.0 sürümünü kullanabilirsiniz. Tüm Mongodb sürümlerini Docker Hub üzerinden inceleyebilirsiniz.

Opsiyonel Parametreler

SeçenekVarsayılan DeğerAçıklama
image.mongomongo:8.0MongoDB imajının sürümünü belirtir.

Farklı bir MongoDB sürümü kullanmak isterseniz, Helm kurulum komutunuzda aşağıdaki örnekteki gibi opsiyonel parametreyi ekleyerek sürümünü belirtebilirsiniz:

helm install mongo-charts mongo-charts/mongo --set image.mongo=mongo:latest

3) Kurulum Bilgileri

AlanAçıklama
TZ (Zaman Dilimi)Europe/Istanbul – Container içindeki TZ ortam değişkeni ile ayarlanmıştır. Bu sayede uygulama ve MongoDB logları Türkiye saatine göre çalışır.
Veritabanıapinizerdb
Kullanıcı adıkubectl get secret -n mongo mongodb-secret -o jsonpath="{.data.MONGO_ROOT_USERNAME}" | base64 --decode; echo
Parolakubectl get secret -n mongo mongodb-secret -o jsonpath="{.data.MONGO_ROOT_PASSWORD}" | base64 --decode; echo
Port25080
Data dizini

/mnt/data bu dizin, host makinenizdeki path ile eşleştirilir (hostPath). Böylece veriler host üzerinde tutulur ve kalıcı olur.