![](/img/trans.png)
[英]When using a separate MongoDB with meteor, meteor reset stopped working
[英]MongoDB stopped being accessible when started using Kompose on Minikube
我有一個簡單的應用程序,該應用程序使用MongoDB docker映像調用URL:mongodb:// mongo:27017 /。 使用docker-compose可以正常工作:
version: "3.3"
services:
mongo:
image: mongo
restart: always
container_name: mongo
volumes:
- /data/mongodb:/data/db
ports:
- "30001:27017"
myapp:
image: myapp:0.1.0
restart: always
links:
- mongo # link this service to the database service
depends_on:
- mongo
networks:
default:
然后,我開始使用Minikube(在VMWare之上)遷移到Kubernetes,生成以下清單YAML:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
name: mongo-claim0
name: mongo-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
name: mongo
name: mongo
spec:
ports:
- name: "30001"
port: 30001
targetPort: 27017
selector:
name: mongo
status:
loadBalancer: {}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
name: mongo
name: mongo
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
name: mongo
spec:
containers:
- image: mongo
name: mongo
ports:
- containerPort: 27017
resources: {}
volumeMounts:
- mountPath: /data/db
name: mongo-claim0
restartPolicy: Always
volumes:
- name: mongo-claim0
persistentVolumeClaim:
claimName: mongo-claim0
status: {}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
name: myapp
name: myapp
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
name: myapp
spec:
containers:
image: myapp:0.1.0
name: myapp
resources: {}
restartPolicy: Always
status: {}
我的POD /服務運行正常(kubectl get pods,svc):
NAME READY STATUS RESTARTS AGE
pod/mongo-5d89cc6f7f-c2p4b 1/1 Running 0 43m
pod/myapp-6c9c4f89fb-gg68t 1/1 Running 0 43m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 110m
service/mongo NodePort 10.101.179.59 <none> 27017:30001/TCP 43m
我也無法通過Robo3T(MongoDB客戶端)以端口30001連接,就像我可以使用docker-compose(甚至使用vboxnet0 IP 192.168.99.1)一樣。
我不知道可能是什么問題。
更新1:我發現Kompose創建了ClusterIP,並將群集內部的端口轉移到30001,但這必須是從群集外部進行連接的端口。 我將服務更改為NodePort,如下所示:
apiVersion: v1
kind: Service
metadata:
labels:
name: mongo
name: mongo
spec:
type: NodePort
ports:
- port: 27017
nodePort: 30001
targetPort: 27017
selector:
name: mongo
status:
loadBalancer: {}
現在,myapp pod可以連接到mongo,但是我仍然無法使用Robo3t通過VMWare IP(192.168.99.1)和端口30001連接到群集。
為了使其正常工作,您必須調用minikube service <servicename>
,在我的情況下,服務名是mongo。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.