2016-10-15 84 views
2

我在Google Cloud上有一個Kubernetes羣集,我有一個數據庫服務,它在mongodb部署前運行。我也有一系列試圖連接到該數據存儲的微服務。無法連接到Kubernetes羣集中的mongodb服務

但是,他們似乎無法找到主機。

apiVersion: v1 
kind: Service 
metadata: 
labels: 
    name: mongo 
name: mongo 
spec: 
ports: 
- port: 27017 
    targetPort: 27017 
selector: 
    name: mongo 

這裏是我的蒙戈部署...

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: mongo-deployment 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     name: mongo 
    spec: 
     containers: 
     - image: mongo:latest 
     name: mongo 
     ports: 
     - name: mongo 
      containerPort: 27017 
      hostPort: 27017 
     volumeMounts: 
      - name: mongo-persistent-storage 
      mountPath: /data/db 
     volumes: 
     - name: mongo-persistent-storage 
      gcePersistentDisk: 
      pdName: mongo-disk 
      fsType: ext4 

和我的服務之一的例子...

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: bandzest-artists 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     name: bandzest-artists 
    spec: 
     containers: 
     - name: artists-container 
     image: gcr.io/<omitted>/artists:41040e8 
     ports: 
     - containerPort: 7000 
     imagePullPolicy: Always 
     env: 
     - name: DB_HOST 
      value: mongo 
     - name: AWS_BUCKET_NAME 
      value: <omitted> 
     - name: AWS_ACCESS_KEY_ID 
      value: <omitted> 
     - name: AWS_SECRET_KEY 
      value: <omitted> 
+0

你試圖從哪裏連接? – BrettJ

+0

@BrettJ在我的服務之一,我有一個去API。因此,我的服務位於API窗格中,我的mongo服務器位於另一個窗格中,位於另一個服務的後面。所以有API Pod和數據存儲區Pod。 –

+0

所以你說連接到mongo.default:27017不能從一個pod內部工作? – iamnat

回答

5

首先,檢查創建服務

kubectl describe svc mongo

您應該看到它顯示它已創建並路由到您的羣集的IP。如果你想知道你的吊艙的IP是什麼,你可以檢查出來通過

kubectl get po | grep mongo

應返回類似:mongo-deployment-<guid>-<guid>,然後做

kubectl describe po mongo-deployment-<guid>-<guid>

你應該確保莢正確啓動,並說Running不像ImagePullBackoff。它看起來像是從gcePersistentDisk掛載一個卷。如果您看到您的吊艙掛在ContainerCreating狀態,很可能您沒有正確安裝磁盤。請確保您在嘗試之前create the diskmount it as a volume

如果它看起來像你的服務是正確的路由,那麼你可以檢查你的吊艙的日誌,以確保它正確地開始蒙戈:

kubectl logs mongo-deployment-<guid>-<guid>

如果它看起來像豆莢和日誌是正確的,你可以Exec的進入吊艙,並確保蒙戈實際上是啓動和工作: kubectl exec -it mongo-deployment-<guid>-<guid> sh

這應該讓你進入容器(POD),然後你可以嘗試something like this,看看你的數據庫運行。

+1

想通了! Mongodb抱怨缺少CPU資源,我將其升級,重新設置了堆棧,並立即連接!您的調試技巧非常有用,非常感謝! –

相關問題