Helm ile Mongodb Kurulumu
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
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
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çenek | Varsayılan Değer | Açıklama |
---|---|---|
image.mongo | mongo:8.0 | MongoDB 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
Alan | Açı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 |
Parola | kubectl get secret -n mongo mongodb-secret -o jsonpath="{.data.MONGO_ROOT_PASSWORD}" | base64 --decode; echo |
Port | 25080 |
Data dizini | /mnt/data bu dizin, host makinenizdeki path ile eşleştirilir (hostPath). Böylece veriler host üzerinde tutulur ve kalıcı olur. |