前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

# 前言

在第10章中,我们学习了如何上手 Kubernetes Secret。我们都知道,Kubernetes Secret 的主要作用是来存放密码,密钥等机密信息。

但是在日常开发部署时,我们还会遇到一些环境变量的配置:例如你的数据库地址,负载均衡要转发的服务地址等等信息。这部分内容使用 Secret 显然不合适,打包在镜像内耦合又太严重。这里,我们可以借助 Kubernetes ConfigMap 来配置这项事情

# 什么是 ConfigMap

ConfigMap 是 Kubernetes 的一种资源类型,我们可以使用它存放一些环境变量和配置文件。信息存入后,我们可以使用挂载卷的方式挂载进我们的 Pod 内,也可以通过环境变量注入。和 Secret 类型最大的不同是,存在 ConfigMap 内的内容不会加密。

# 创建方式

和 Secret 一样, ConfigMap 也支持多种创建方式

# 命令行直接创建

第一种是使用命令行直接创建。我们直接使用 kubectl create configmap [config_name] 命令创建即可。格式如下:

kubectl create configmap [config_name] --from-literal=[key]=[value]
@前端进阶之旅: 代码已经复制到剪贴板

在这里, --from-literal 对应一条信息。如果想创建多个 key value 组合,向后重复 --from-literal=[key]=[value] 即可。

例如我创建一个 mysql 的配置文件,其中包含了服务地址,端口。则可以下面这种格式创建:

kubectl create configmap mysql-config \
--from-literal=MYSQL_HOST=192.168.1.172 \
--from-literal=MYSQL_PORT=3306
@前端进阶之旅: 代码已经复制到剪贴板

这里需要注意,configmap 的名称必须是全小写,特殊符号只能包含 ‘-’ 和 ‘.’。可以用下面的这个正则表达式校验下看看符不符合规则:

a-z0-9?(.a-z0-9?)*')
@前端进阶之旅: 代码已经复制到剪贴板

创建成功后,我们可以使用 kubectl get cm 查看我们创建过的 configmap:

可以看到,上面的就是我们刚创建的 ConfigMap。里面的 DATA 为 2 ,代表有 2 条数据存在。我们直接使用 kubectl describe cm mysql-config 即可查看下这个 ConfigMap 的具体信息:

这里可以看到刚才我们存放的数据,代表该 configmap 创建成功。

# 配置清单创建

当然,通过一个命令清单创建的方式也很简单。

我们新建一个文件,名称为 mysql-config-file.yaml ,填入以下内容:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-config-file
data:
  MYSQL_HOST: '192.168.1.172'
  MYSQL_PORT: 3306
@前端进阶之旅: 代码已经复制到剪贴板

字符串不要忘记加引号

在这里,相信大部分字段大家已经都非常熟练了。kind 的值为 ConfigMap ,代表声明一个 ConfigMap 类型的资源;

fe
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏