News
Serverspace Technologien in den VAE: Einführung von Falconcloud
VB
23. August 2022
Aktualisiert Juni 7, 2023

MongoDB an Kubernetes

Kubernetes MongoDB

Einleitung

Im Serverspace Sie uns Erstellen Sie einen Server mit bereits installierter App „MongoDB“.
MongoDB ist eine der beliebtesten NoSQL-Datenbankverwaltungslösungen. In KombinatIon mit Kubernetes Orchestrator könnte es sich um eine einfach zu skalierende, vielseitige Lösung handeln.

Voraussetzungen:

Um mit MongoDB zu arbeiten Kubernetes Sie benötigen einen Server unter jedem Betriebssystem (Linux mit Root-Zugriff oder Sudo-Mitgliedschaft bevorzugt) zum Verwalten und Kubernetes Cluster (siehe nächster Schritt).

Kubernetes Instanzerstellung

Bevor Sie MongoDB bereitstellen können, benötigen Sie Folgendes Kubernetes. Um es zu erstellen ServerSpace Infrastruktur, melden Sie sich einfach bei Ihrer an cliHNO-Bereich also click zu Kubernetes verknüpfen und eine Instanz erstellen:

pic1

pic2

Der Vorgang kann einige Zeit dauern. Bitte haben Sie etwas Geduld. Wenn Sie fertig sind, wird Cluster pa angezeigtrameters und sollte die Zugangsberechtigungsdatei herunterladen:

pic3

Instanz-Setup

So installieren Sie den Datenbankdienst auf Ihrem Kubernetes Cluster folgen Sie bitte:

  • Melden Sie sich als privilegierter Benutzer bei Ihrem Verwaltungsserver an und installieren Sie die erforderlichen Tools:
sudo -s
apt-get update && apt install curl apt-transport-https -y && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list && apt-get update && apt install kubectl -y

pic4

  • Erstellen Sie eine Datei, die Cluster-Zugriffsdaten speichert, und legen Sie diese als Systemvariable fest:
mkdir /usr/local/etc/mongo && cd /usr/local/etc/mongo
cat << EOF > testcluster.conf
<PASTE CONFIGURATION DATA HERE>
EOF
echo "export KUBECONFIG=testcluster.conf" >> ~/.bashrc

pic5

  • Um die Verbindung zu überprüfen, führen Sie einfach Folgendes aus:
kubectl cluster-info

Wenn die Ausgabe wie im Bild unten aussieht, ist die Verbindung erfolgreich

pic6

    • MongoDB benötigt Speicher, um seine Daten zu speichern. Der Speichererstellungsprozess wird in speziellen Konfigurationsdateien beschrieben. Sie können es an Ihre Bedürfnisse anpassen:
    cat << EOF > PersistVolClaim.yaml
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: mongodatapv # Should be the same with name in previous file
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 1Gi # Should be the same with capacity in previous file
    EOF

    pic8

      Der nächste Schritt besteht darin, eine Anmeldeinformationsdatei zu erstellen, die den Zugriff auf MongoDB speichert:

      cat << EOF > Creds.yaml
      apiVersion: v1
      data:
      username: <BASE64_ENCODED_LOGIN>
      password: <BASE64_ENCODED_PASSWORD>
      kind: Secret
      metadata:
      creationTimestamp: null
      name: creds
      EOF

      pic9

      Tipp: Zum Kodieren und Dekodieren von Daten können Sie einfache Befehle verwenden:

      echo <DATA> | base64 # to crypt data via base64 tool
      echo <BASE64_ENCRYPTED_DATA> | base64 -d # to decrypt it

      pic10

      • Erstellen Sie dann eine Instanzbereitstellungsdatei:

        cat << EOF > Deploy.yaml
        apiVersion: apps/v1
        kind: Deployment
        metadata:
        labels:
        app: mongo
        name: mongo
        spec:
        replicas: 1
        selector:
        matchLabels:
        app: mongo
        strategy: {}
        template:
        metadata:
        labels:
        app: mongo
        spec:
        containers:
        - image: mongo
        name: mongo
        args: ["--dbpath","/data/db"]
        livenessProbe:
        exec:
        command:
        - mongo
        - --disableImplicitSessions
        - --eval
        readinessProbe:
        exec:
        command:
        - mongo
        - --disableImplicitSessions
        - --eval
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
        valueFrom:
        secretKeyRef:
        name: creds
        key: username
        - name: MONGO_INITDB_ROOT_PASSWORD
        valueFrom:
        secretKeyRef:
        name: creds
        key: password
        volumeMounts:
        - name: "datadir"
        mountPath: "/data/db"
        volumes:
        - name: "datadir"
        persistentVolumeClaim:
        claimName: "mongopvc"
        EOF

      pic11

      • Um MongoDB zu starten, führen Sie bitte den folgenden Befehl aus:
      kubectl apply -f

      Eine erfolgreiche Ausgabe sieht wie im Bild unten aus:

      pic12

      Verbindungsprüfung

      • Da die Instanzen nun bereitgestellt sind, sollten Sie die Verbindung überprüfen. Lauf einfach:
      kubectl exec deployment/client -it -- /bin/bash
      mongo

      Wenn Sie die MongoDB-Eingabeaufforderung sehen, ist die Verbindung erfolgreich:

      pic14

       

      • Um eine neue Datenbank zu erstellen, „wechseln“ Sie einfach zur neuen Datenbank. HINWEIS: Daten werden erst gespeichert, wenn Sie etwas zur Datenbank hinzufügen:
      use NEW_DATABASE_NAME
      db.createCollection("newdata") # example to add data
      show dbs # check is database exist

      pic15

      Zusammenfassung

      Nachdem Sie diesen Artikel gelesen hatten, wussten Sie, wie man erstellt Kubernetes ServerSpace client-Bereich, stellen Sie MongoDB darin bereit, erstellen Sie eine neue Datenbank und fügen Sie neue Daten in diese Datenbank ein.

      Abstimmung:
      5 aus 5
      Durchschnittliche Bewertung: 5
      Bewertet von: 1
      1101 CT Amsterdam Niederlande, Herikerbergweg 292
      +31 20 262-58-98
      700 300
      ITGLOBAL.COM NL
      700 300
      Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
      Cookies und Datenschutzbestimmungen.