使用 ConfigMap 挂载配置文件
使用 ConfigMap
挂载配置文件
Intro
有一些敏感信息比如数据库连接字符串之类的出于安全考虑,这些敏感信息保存在了 AzureKeyVault
中,最近应用上了 k8s 部署,所以想把 AzureKeyVault
的信息迁移到 ConfigMap
,不再依赖 AzureKeyVault
。
ConfigMap
新建一个 ConfigMap,你可以从文件创建,如何创建ConfigMap 可以参考官方文档,也可以直接手动编辑,这里用的 ConfigMap 如下所示:
apiVersion: v1
kind: ConfigMap
metadata: name: reservation-configs namespace: default
data: appsettings: | { "ConnectionStrings": { "Redis": "redis-server", "Reservation": "Server=localhost;uid=liweihan;pwd=**;database=Reservation", "ElasticSearch": "elasticsearch" }, "MpWechat":{ "AppId": "wx4a41d3773ae55543", "AppSecret": "**********", "Token": "AmazingDotNet", "AESKey": "------------" }, "AppSettings": { "WechatSubscribeReply": "", "SentryClientKey": "https://**" }, "Tencent": { "Captcha": { "AppId": "2062135016", "AppSecret": "****" } }, "GoogleRecaptcha": { "SiteKey": "6Lc-**", "Secret": "6Lc-**" }, "Logging": { "LogLevel": { "Default": "Warning", "ActivityReservation": "Debug", "RequestLog": "Debug" } } }
挂载 ConfigMap 中的配置文件到 Pod
Deployment 定义如下所示, 这里直接把上面定义的 appsettings 直接挂载为应用程序的根目录下 appsettings.json
文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: activityreservation
namespace: default
labels:
app: activityreservation
spec:
replicas: 2
revisionHistoryLimit: 2 # how many old ReplicaSets for this Deployment you want to retain, https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy
selector:
matchLabels:
app: activityreservation
minReadySeconds: 0
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: activityreservation
spec:
dnsConfig:
options:
- name: ndots
value: "1"
containers:
- name: activityreservation
image: weihanli/activityreservation:20190529.2
imagePullPolicy: IfNotPresent
resources:
limits:
memory: "256Mi"
cpu: "300m"
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 60
periodSeconds: 30
livenessProbe:
httpGet:
path: /Health
port: 80
initialDelaySeconds: 60
periodSeconds: 60
ports:
- containerPort: 80
volumeMounts:
- name: settings
mountPath: /app/appsettings.json
subPath: appsettings
volumes:
- name: settings
configMap:
name: reservation-configs
测试
1. 部署 ConfigMap
kubectl apply -f ConfigMap.yaml
2. 部署 deployment
kubectl apply -f reservation-deployment.yaml
3. 等待 pod 启动之后,查看 appsettings.json
文件内容是否成功被替换掉
获取对应的 pod 名称,然后通过 kubectlexec<pod-name>cat/app/appsettings.json
来获取pod中 appsettings.json 文件的内容
出现 ConnectionStrings 就证明文件被替换掉了,原始的配置文件里是没有 ConnectionStrings 节点的,原始的方式是通过从 AzureKeyVault
中加载的
Reference
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#understanding-configmaps-and-pods
https://github.com/WeihanLi/ActivityReservation
使用 ConfigMap 挂载配置文件相关推荐
- 【K8S实战系列-nignx-2】k8s中configmap挂载配置nginx.conf
[K8S实战系统-nignx-2]k8s中configmap挂载配置nginx.conf 1. ConfigMap是什么 ConfigMap作用是存储不加密的数据到etcd中,让Pod以变量或数据卷V ...
- K8S configmap挂载文件
新建configmap: apiVersion: v1 kind: ConfigMap metadata:name: front-confnamespace: tsp data:baseUrl.js: ...
- docker安装mysql并挂载配置文件和修改密码
docker安装mysql并挂载配置文件和修改密码 docker从仓库中拉取最新版的mysql镜像,如果没加标签的话,默认获取最新的版本 docker pull mysql docker pull m ...
- 【云原生】 初体验阿里云Serverless应用引擎SAE(三),挂载配置文件使应用的配置和运行的镜像解耦
目录 一.前言 二.SAE配置 1.创建配置项 2.配置SAE Nginx服务 效果 1.[云原生] 初体验阿里云Serverless应用引擎SAE(一),部署Nginx服务 2.[云原生] 初体验阿 ...
- 使用 k8s 搭建 confluence 6.10.x 版本
推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...
- SftpGo:一款高性能的sftp server服务
SftpGo是一款高性能.功能齐全.易用可配置的一款sftp server 服务,基于go开发.目前在linux.macos下均可以稳定运行(windows个人未测试).数据可以持久化到主流的数据库, ...
- prometheus监控java应用的jvm指标
在k8s环境中我们有很多的java应用,需要监控其性能我们可以通过集成jmx的客户端,然后通过promethues的自动发现来实现监控数据的获取. promethues的部署he相关配置可参考:pro ...
- 运维(34) K8s使用
文章目录 一.前言 二.资源创建 1.命令行 2.配置文件 3.可视化界面 三.命名空间 1.命令行 2.配置文件 四.Pod 1.命令行 2.配置文件 3.`Kubernetes Dashboard ...
- K8s平台部署企业级项目案例
目录 1.架构图 2.部署一个java网站项目实践 2.1 编译java 2.2.构建与上传镜像 2.3.k8s中部署项目 访问 3.资源配置 3.2.加入配置文件挂载 4.部署数据库并连接 恢复数据 ...
最新文章
- vue 加载页面时触发时间_解析Vue项目的四个方面优化
- sqlite数据库的多线程访问问题
- mysql 多个游标_mysql 存储过程中使用多游标
- 解决oracle连接很慢问题
- Windows Server 2012改造成Windows8的方法(转载)
- FreeMarker整合Spring 3
- 用StyleCop规范团队代码
- Ireport制作过程
- 周五14点直播丨数据库大咖讲坛(第6期):数据库性能优化技巧与最佳实践
- Android 开发之旅:深入分析布局文件又是“Hello World!”
- 为PHP开发搭建环境
- java web后台开发规范01
- Velocity常用语法
- iphone11各机型对比_9款旗舰系统对比 iPhone 11居然不是最好用的
- tomcat日志格式转化为json
- 分享四个体验不错的云游戏平台—网易云游戏、腾讯云游戏、菜鸡云游戏、格莱云游戏
- 搭建 Mellanox ConnectX-3 EN 10/40 Gbps 网卡 DPDK 运行环境
- EBS系统的启动及关闭
- Stunnel 的用法
- 【Javaee毕业设计】基于JAVA_JSP电子书下载系统