cover_image

云原生第8课:Kubernetes应用配置管理

程序猿技术大咖
2021年11月22日 15:47

点击上方“程序猿技术大咖”,关注并选择“设为星标”

回复“加群”获取入群讨论资格!


本篇文章来自《华为云云原生王者之路训练营》黄金系列课程第8课,由华为云云原生开源团队核心成员Rambo Ren (@RainbowMango)主讲,详细介绍Kubernetes ConfigMap 和 Secret 基本概念和使用场景。

上节课我们介绍了kubernetes服务对外暴露的方式,通过Service、通过Ingress,Service和Ingress解决的是服务暴露问题,具体的服务实现还需要Pod来完成。Pod的运行通常需要为其提供配置。


接下来的课程我们将为大家介绍 kubernetes ConfigMap 和 Secret 基本概念和使用场景。


应用配置管理概念


应用配置管理概述


应用配置
  • 数据库配置

  • 证书配置

  • 应用自定义配置


Kubernetes应用配置
  • ConfigMap:一般性配置

  • Secret: 敏感信息配置


图片


ConfigMap介绍


ConfigMap概述


ConfigMap是一种存储非敏感数据的资源对象:
  • 以形式存储配置数据
ConfigMap设计要素
  • 解耦应用程序(镜像)和配置参数
  • 不用于存储大块数据(<=1MB)
ConfigMap主要服务于Pod
  • 为容器提供环境变量
  • 为容器提供命令行参数
  • 为容器提供配置文件
图片


ConfigMap资源对象

API设计:
  • 没有Spec字段
Data字段:
  • 用来保存UTF-8字节序列
  • 键名不能与BinaryData重叠
BinaryData:
  • 用来保存二进制数据(base64编码)
  • 键名不能与Data重叠
Immutable(v1.19版本):
  • 不可变更(禁止修改)
  • 保护应用,免受意外更新带来负面影响
  • 提升性能(减轻监视负担)
图片


ConfigMap创建

通过命令行创建
图片
图片
图片
图片


Pod中使用ConfigMap

使用ConfigMap配置环境变量:

图片


使用ConfigMap挂载配置文件:

图片


ConfigMap使用小节

  • ConfigMap用于存储非敏感应用配置

  • 每个ConfigMap大小限制为1MB

  • ConfigMap必须先于Pod创建,否则Pod无法启动

  • Pod只能使用同Namespace下的ConfigMap

  • 使用ConfigMap挂载配置文件,会自动更新

  • 使用ConfigMap配置环境变量时,不会自动更新


Secret介绍


Secret概述

Secret是一种资源对象:

  • 以形式存储敏感数据(密码,token等)
Secret设计要素
  • 数据采用base-64编码保存(非加密)
  • 通常结合RBAC rules来加强安全性
Secret主要服务于Pod
  • 为容器提供环境变量
  • 为容器提供镜像仓库密钥(由kubelet使用)
  • 为容器提供配置文件
图片


Secret资源对象


API设计:
  • 没有Spec字段
Data字段:
  • 用来保存UTF-8字节序列
StringData:
  • 任意字符串(write-only)
Immutable(v1.19版本):
  • 不可变更(禁止修改)
  • 保护应用,免受意外更新带来负面影响
  • 提升kube-apiserver性能(减轻监视负担)
Secret类型(检查和限制有所区别)
  • Opaque: 任意数据
  • kubernetes.io/service-account-token
图片


Secret创建

  • 通过命令行创建:

图片
图片
图片
图片


Pod中使用Secret


使用Secret配置环境变量:

图片


使用Secret挂载配置文件:

图片


Secret使用小节

1)Secret用于存储敏感配置(区别于ConfigMap)

2)每个Secret大小限制为1MB

3)Pod只能使用同Namespace下的Secret

4)Secret数据使用Base64编码,本身不提供数据加密

  • 由于Secret会以纯文本方式存储在ETCD,需要限制ETCD的访问权限

  • 为Secret设置严格的RBAC规则,限制资源访问





感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!

图片


图片

喜欢就点个"在看"呗,留言、转发朋友圈

继续滑动看下一个
程序猿技术大咖
向上滑动看下一个