k8s實戰爲aspnetcore.webapi微服務注入配置信息 - kubernetes

一、淺析k8s配置信息


  • Secret()

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

  • ConfigMap

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

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

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

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

二、實戰目的


      以環境變量的方式將k8s的ConfigMap裏存儲的應用程序配置信息注入到微服務。這也是微軟微服務示例應用程序(eshopOnContainer)採用的方式。其餘方式,但願你們下去本身實戰。架構

三、編寫yaml資源文件


     ConfigMap資源文件,appsetting.yml以下:app

     

       上面標紅的就是咱們須要注入的配置信息。微服務

       hello-world-deployment-with-settings.yml以下:對象

             

四、建立k8s資源對象   


 經過dashboard查看集羣概況,Deployment資源對象以下:blog

ConfigMap資源對象以下:token

 

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


 

從上面能夠看到,注入成功!!!

六、附言


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

 

下一篇,咱們將實戰如何讓微服務應用程序動態感知k8s管理的配置信息的變化。

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

相關文章
相關標籤/搜索