This guide shows you how to connect to a MongoDB cluster from your managed Kubernetes cluster.
Before connecting to a MongoDB cluster from your managed Kubernetes, make sure you have:
A data center with id xyz-my-datacenter.
A private LAN with id 3.
A MongoDB cluster connected to LAN 3, with the connection string mongodb+srv://m-xyz-example.mongodb.de-txl.ionos.com.
1.To enable connectivity, connect the node pools to the private LAN with the MongoDB cluster.
2. Wait for the node pool to become available. To test the connectivity you can create a pod that contains the MongoDB tool mongosh. If you have multiple node pools, make sure to schedule the pod on one of the node of the node pools that are attached to the private LAN.
3. Create the pod by using the following command:
4. Attach the pod to the cluster by using the following command:
Result: You see the database is accepting connections.
If you see connection issues, make sure that the node is properly connected to the LAN. To debug the node, use a debugging container.
A Kubernetes cluster with id xyz-my-k8s-cluster.
ionosctl set up with your IONOS credentials.
ionosctl k8s nodepool create --cluster-id xyz-my-k8s-cluster --datacenter-id xyz-my-datacenter --lan-ids 3 --dhcp=true --name=my_nodepool# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: connectivity-test
labels:
role: connectivity-test
spec:
containers:
- name: mongo
image: mongo
stdin: true
tty: true
command:
- "/bin/bash"kubectl apply -f pod.yamlkubectl attach -it connectivity-test
If you do not see a command prompt, try pressing enter.
root@connectivity-test:/# mongosh "mongodb+srv://m-xyz-example.mongodb.de-txl.ionos.com"
Current Mongosh Log ID: 631063ca901a9459bab0b4d4
Connecting to: mongodb+srv://m-xyz-example.mongodb.de-txl.ionos.com/?appName=mongosh+1.5.4
Using MongoDB: 5.0.10
Using Mongosh: 1.5.4
For mongosh information, see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.
Enterprise a0def940-2455-11ed-a564-7a0f508690ac [primary] test> kubectl debug node/$(kubectl get po connectivity-test -o jsonpath="{.spec.nodeName}") -it --image=busybox