tnblog
首页
视频
资源
登录

k8s ConfigMap 配置中心

7820人阅读 2020/4/25 15:05 总访问:3467416 评论:0 收藏:0 手机
分类: 容器编排

Kubernetes

k8s ConfigMap 配置中心


ConfigMap 简介


ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMapsecret很类似,但它可以更方便地处理不包含敏感信息的字符串。


注意

  • ConfigMap必须在Pod引用它之前创建
  • 使用envFrom时,将会自动忽略无效的键
  • Pod只能使用同一个命名空间内的ConfigMap


ConfigMap的yaml定义


示例

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: appsettings.name-api
  5. namespace: netcore
  6. data:
  7. appsettings.json: |
  8. {
  9. "Logging": {
  10. "LogLevel": {
  11. "Default": "Information",
  12. "Microsoft": "Warning",
  13. "Microsoft.Hosting.Lifetime": "Information"
  14. }
  15. },
  16. "AllowedHosts": "*"
  17. }

相信大伙都看得出来这是一个ConfigMap关于appsetting.json的配置


通过ConfigMap达到配置中心的作用


主要流程

Created with Raphaël 2.1.2开始创建appsettings.json的CofigMap创建对应的volume通过volumeMounts覆盖原有的appsettings.json文件结束

查看当前pod上的目录信息

查看pod配置

控制application.json的配置


修改yaml文件

  1. 添加上述的yaml放到最前面
  2. 添加volme
    1. volumes:
    2. - name: appsettings
    3. ConfigMap:
    4. name: appsettings.name-api
  3. 添加volumeMounts
    1. volumeMounts:
    2. - name: appsettings
    3. mountPath: /app/appsettings.json
    4. subPath: appsettings.json


完整的yaml

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: appsettings.name-api
  5. namespace: netcore
  6. data:
  7. appsettings.json: |
  8. {
  9. "Logging": {
  10. "LogLevel": {
  11. "Default": "Information",
  12. "Microsoft": "Warning",
  13. "Microsoft.Hosting.Lifetime": "Information"
  14. }
  15. },
  16. "AllowedHosts": "*"
  17. }
  18. ---
  19. apiVersion: apps/v1
  20. kind: Deployment
  21. metadata:
  22. name: name-api
  23. namespace: netcore
  24. labels:
  25. name: name-api
  26. spec:
  27. replicas: 3
  28. selector:
  29. matchLabels:
  30. name: name-api
  31. template:
  32. metadata:
  33. labels:
  34. name: name-api
  35. spec:
  36. containers:
  37. - name: name-api
  38. env:
  39. - name: HOSTNAME_COMMAND
  40. valueFrom:
  41. fieldRef:
  42. fieldPath: metadata.name
  43. volumeMounts:
  44. - name: appsettings
  45. mountPath: /app/appsettings.json
  46. subPath: appsettings.json
  47. image: ccr.ccs.tencentyun.com/hbtest/name-api:v2
  48. ports:
  49. - containerPort: 80
  50. imagePullPolicy: Always
  51. imagePullSecrets:
  52. - name: tenxunyunregistrykey
  53. volumes:
  54. - name: appsettings
  55. configMap:
  56. name: appsettings.name-api
  57. ---
  58. kind: Service
  59. apiVersion: v1
  60. metadata:
  61. name: name-api
  62. namespace: netcore
  63. spec:
  64. type: NodePort
  65. ports:
  66. - port: 80
  67. targetPort: 80
  68. selector:
  69. name: name-api

查看结果

修改并再次发布


修改 InfomactionTrace

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: appsettings.name-api
  5. namespace: netcore
  6. data:
  7. appsettings.json: |
  8. {
  9. "Logging": {
  10. "LogLevel": {
  11. "Default": "Trace",
  12. "Microsoft": "Warning",
  13. "Microsoft.Hosting.Lifetime": "Information"
  14. }
  15. },
  16. "AllowedHosts": "*"
  17. }
  18. ---
  19. apiVersion: apps/v1
  20. kind: Deployment
  21. metadata:
  22. name: name-api
  23. namespace: netcore
  24. labels:
  25. name: name-api
  26. spec:
  27. replicas: 3
  28. selector:
  29. matchLabels:
  30. name: name-api
  31. template:
  32. metadata:
  33. labels:
  34. name: name-api
  35. spec:
  36. containers:
  37. - name: name-api
  38. env:
  39. - name: HOSTNAME_COMMAND
  40. valueFrom:
  41. fieldRef:
  42. fieldPath: metadata.name
  43. volumeMounts:
  44. - name: appsettings
  45. mountPath: /app/appsettings.json
  46. subPath: appsettings.json
  47. image: ccr.ccs.tencentyun.com/hbtest/name-api:v2
  48. ports:
  49. - containerPort: 80
  50. imagePullPolicy: Always
  51. imagePullSecrets:
  52. - name: tenxunyunregistrykey
  53. volumes:
  54. - name: appsettings
  55. configMap:
  56. name: appsettings.name-api
  57. ---
  58. kind: Service
  59. apiVersion: v1
  60. metadata:
  61. name: name-api
  62. namespace: netcore
  63. spec:
  64. type: NodePort
  65. ports:
  66. - port: 80
  67. targetPort: 80
  68. selector:
  69. name: name-api

再次发布

查看相关pod
我们会发现它并没有改变。

删除副本集并再次查看结果


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术