2016-11-21 36 views
1

我用我的項目GCP集裝箱引擎,現在我面臨的一些問題,我不知道它是否可以通過祕密來解決。Kubernetes有關的祕密,以及如何使用它們莢

我的一個部署的是節點JS應用服務器,在那裏,我用這需要我的GCP服務帳戶密鑰(以.json文件)作爲輸入一些NPM模塊。 輸入是這個json文件所在的路徑。目前我設法通過提供這個文件作爲我的泊塢窗圖像的一部分,然後在代碼中,我把這個文件的路徑,它按預期工作。問題是,我認爲這不是一個好的解決方案,因爲我想從服務帳戶密鑰解耦我的nodejs映像,因爲服務帳戶密鑰可能會更改(例如dev,test,prod),我將無法重用我現有的圖像(除非我將建立和它推到一個不同的註冊表) 所以我想知道是否有可能上傳此服務帳戶JSON文件爲機密,然後使用它我吊艙內。我看到有可能從文件中創建祕密,但我不知道是否可以指定存儲此json文件的位置的路徑。如果祕密不可能(因爲祕密沒有保存在文件中......),那麼如何(以及如果)它可以完成?

感謝先進!

回答

1

時需要的下面你可以讓你的JSON文件祕密,並在您的莢消耗。請參閱以下鏈接的祕密(http://kubernetes.io/docs/user-guide/secrets/),但我會總結一下未來:

首先從您的JSON文件中創建一個祕密:

kubectl create secret generic nodejs-key --from-file=./key.json 

現在你已經創建了這個祕密,你可以消耗您的吊艙(本例中爲卷):

{ 
"apiVersion": "v1", 
"kind": "Pod", 
    "metadata": { 
    "name": "nodejs" 
    }, 
    "spec": { 
    "containers": [{ 
     "name": "nodejs", 
     "image": "node", 
     "volumeMounts": [{ 
     "name": "foo", 
     "mountPath": "/etc/foo", 
     "readOnly": true 
     }] 
    }], 
    "volumes": [{ 
     "name": "foo", 
     "secret": { 
     "secretName": "nodejs-key" 
     } 
    }] 
    } 
} 

所以,當你的吊艙旋轉起來將在「文件系統」要刪除的文件中/etc/foo/key.json

+0

嗨,說實話...我昨天自己解決了它,但這正是我所做的。非常感謝您的詳細解答! –

0

我想你上部署GKE/GCE,你不需要鑰匙,它會正常工作。

我只與谷歌Cloud紀錄測試,但它可能是其他服務一樣好。

如:我只對GKE/GCE部署應用

var loggingClient = logging({ 
    projectId: 'grape-spaceship-123' 
}); 
+0

嗨,我知道但我的問題是更通用..無論如何,我設法解決它在我自己的。非常感謝您的回答! –

相關問題