為微服務注入配置信息

作者:justmine(大數據達摩院)

出處:https://www.cnblogs.com/justmine

1、淺析k8s配置信息


  • Secret()

以密文的形式存儲數據,可以用來保存一些敏感信息,例如:OAuth tokens、私鑰、密碼、數據庫連接、事件總線連接等等需要安全存儲的私人數據。

  • ConfigMap

以明文的形式存儲數據,可以用來保存一些非敏感信息,例如:應用的配置信息。

k8s為Secret和ConfigMap提供了4種創建方式(字面量、文件、環境文件、yaml),其實歸類來看就是兩種創建方式,字面量和文件。

1.1 如何注入到微服務應用程序呢 ?

k8s已經為我們提供了兩種方式,即通過存儲卷(volume)和環境變量的方式注入到微服務應用程序。

2、實戰目的


以環境變量的方式將k8s的ConfigMap裡存儲的應用程序配置信息注入到微服務。這也是微軟微服務示例應用程序(eshopOnContainer)採用的方式。其他方式,希望大家下去自己實戰。

3、編寫yaml資源文件


ConfigMap資源文件,appsetting.yml如下:

k8s實戰 - 為微服務注入配置信息

上面標紅的就是我們需要注入的配置信息。

hello-world-deployment-with-settings.yml如下:

k8s實戰 - 為微服務注入配置信息

4、創建k8s資源對象


通過dashboard查看集群概況,Deployment資源對象如下:

k8s實戰 - 為微服務注入配置信息

ConfigMap資源對象如下:

k8s實戰 - 為微服務注入配置信息

5、運行微服務,查看注入結果


k8s實戰 - 為微服務注入配置信息

從上面可以看到,注入成功!!!

6、附言


當我們採用微服務架構來開發我們應用程序時,如何管理這些龐大的配置信息?如何實現不停機動態注入這些信息到微服務中?如何運用k8s的配置信息和數據存儲機制來解耦配置信息與微服務應用程序?請繼續關注,我們將一一實戰。

源碼參考:https://github.com/justmine66/k8s.ecoysystem.apps

7、最後

如果你覺得本篇文章對您有幫助的話,感謝您的【推薦】。
如果你對 kubernets 感興趣的話可以關注我,我會定期的在博客分享我的學習心得。


分享到:


相關文章: