zoukankan      html  css  js  c++  java
  • k8s实战为aspnetcore.webapi微服务注入配置信息

    1、浅析k8s配置信息


    • Secret()

         以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens、私钥、密码、数据库连接、事件总线连接等等需要安全存储的私人数据。

    • ConfigMap

        以明文的形式存储数据,可以用来保存一些非敏感信息,例如:应用的配置信息。

         k8s为Secret和ConfigMap提供了4种创建方式(字面量、文件、环境文件、yaml),其实归类来看就是两种创建方式,字面量和文件。

       1.1 如何注入到微服务应用程序呢 ?

         k8s已经为我们提供了两种方式,即通过存储卷(volume)和环境变量的方式注入到微服务应用程序。

    2、实战目的


          以环境变量的方式将k8s的ConfigMap里存储的应用程序配置信息注入到微服务。这也是微软微服务示例应用程序(eshopOnContainer)采用的方式。其他方式,希望大家下去自己实战。

    3、编写yaml资源文件


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

         

           上面标红的就是我们需要注入的配置信息。

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

                 

    4、创建k8s资源对象   


     通过dashboard查看集群概况,Deployment资源对象如下:

    ConfigMap资源对象如下:

     

    5、运行微服务,查看注入结果


     

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

    6、附言


             当我们采用微服务架构来开发我们应用程序时,如何管理这些庞大的配置信息?如何实现不停机动态注入这些信息到微服务中?如何运用k8s的配置信息和数据存储机制来解耦配置信息与微服务应用程序?请继续关注,我们将一一实战。

    下一篇,我们将实战如何让微服务应用程序动态感知k8s管理的配置信息的变化。

    源码参考:https://github.com/justmine66/k8s.ecoysystem.apps

    做一个有底蕴的软件工作者
  • 相关阅读:
    实现连续测试,要做的事情【译】
    Go语言HTTPServer开发的六种实现
    JSON必知必会【PDF+视频教程】
    给JSONObject添加自定义遍历方法
    利用守护线程隐式关闭线程池
    从错误中学习
    Groovy动态添加方法和属性及Spock单测
    持续测试、持续集成、持续交付、持续部署和DevOps
    有关OAuth 2.0简化模式中步骤D-F的解释
    Spring笔记(五):bean的自动装配
  • 原文地址:https://www.cnblogs.com/justmine/p/8638314.html
Copyright © 2011-2022 走看看