2017-06-20 94 views
1

我們正在切換到使用Kubernetes。通過內置的dns訪問k8s部署中的其他部署服務非常簡單。因此,如果我有pod/service命名爲app1,pod/service命名爲app2,app1需要調用app2,則可以使用「app2」,k8s dns可以發揮其魔力,一切正常。這很好,因爲我們不需要在所有環境中都有app1_host和app2_host的配置管理開銷。如何最好地利用Kubernetes/minikube DNS進行本地開發

這也適用於本地使用minikube。如果app1和app2部署到minikube中,它們可以通過服務名稱(與應用程序名稱匹配)互相引用

但是,我遇到的問題是本地開發。假設我想在本地IDE中使用app1。我可以在minikube中啓動app2,但現在如果我想要app1訪問minikube中的app2 ...我不能再使用「app2」。我必須ping minikube/kubectl api並獲取正在運行的IP和端口,然後我可以在本地使用...這使我們回到使用HOST/PORT類型config mgmt。

我們可以更新/ etc/hosts文件並將app2指向minikube IP,但我仍然需要了解外部/暴露端口是什麼。

我們可以使用config mgmt主機/端口並在啓動時從minikube/k8s api動態填充它們。這是推薦的方式嗎?有什麼已經做到了(類似於envconsul)嗎?

有沒有更好的/更優雅的解決方案,我可以利用k8s dns的力量,當試圖在IDE本地工作,但有依賴的服務運行在minikube或k8s?

感謝

+0

一個CD管道(如https://github.com/spinnaker/spinnaker)聽起來像什麼可能幫助在這裏。 –

回答

1

https://www.datawire.io/products/telepresence/

從他們的網站:

Transparently access other microservices in a remote Kubernetes 
cluster, as well as cloud resources such as AWS RDS. Your code has 
access to the same environment variables and volumes as a regular 
Kubernetes pod. 
+0

謝謝,這可能有助於...看着它 – Dan

相關問題