helm-chart-读取配置文件到ConfigMap并映射到容器中

2024-06-10 05:38

本文主要是介绍helm-chart-读取配置文件到ConfigMap并映射到容器中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们以一个项目例子来说明,项目文件结构如下:

$ tree
.
├── Chart.yaml
├── etc
│ └── data.txt
├── etc-values.yaml
└── templates
├── configmap.yaml
├── deployment.yaml
├── _helpers.tpl
├── NOTES.txt
└── service.yaml
准备测试用的配置文件:

$ ./etc/data.txt
username: a1
age: 30
在configMap中配置读取etc/目录下所有文件:

$ cat templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-template
data:
{{ (.Files.Glob “etc/*”).AsConfig | indent 2 }}
把configMap映射到容器中的/data/etc目录:

$ cat ./templates/deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template “fullname” . }}
labels:
app: {{ template “name” . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace “+” “_” }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app: {{ template “name” . }}
release: {{ .Release.Name }}
spec:
imagePullSecrets:
- name: {{ .Values.image.secret }}
containers:
- name: {{ .Chart.Name }}
image: “{{ .Values.image.repository }}:{{ .Values.image.tag }}”
imagePullPolicy: {{ .Values.image.pullPolicy }}
command: [“sleep”]
args: [“5000”]
env:
{{- range .Values.environment }}
{{- range k e y , key, key,val := . }}
- name : {{ $key }}
value : {{ $val | quote }}
{{- end}}
{{- end}}
volumeMounts:
- mountPath: /data/etc
name: data-etc
ports:
- containerPort: {{ .Values.service.internalPort }}

  volumes:- name: data-etcconfigMap:name: {{ .Release.Name }}-template

发布项目:

$ helm upgrade --install --wait -f ./etc-values.yaml etc1 .
Release “etc1” does not exist. Installing it now.
NAME: etc1
LAST DEPLOYED: Thu Aug 16 07:45:50 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
etc1-template 1 3s

==> v1/Service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
etc1-etc 10.254.237.234 33333/TCP 3s

==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
etc1-etc 1 1 1 0 3s

NOTES:
Application will be accessible at: when you deploy stable track.
查看pod的运行状态:

$ kubectl get svc,po |grep etc
service/etc1-etc ClusterIP 10.254.237.234 33333/TCP 1m

pod/etc1-etc-5df796cf8f-4zfm9 2/2 Running 0 1m
进入容器检查文件是否映射成功:

$ kubectl exec -it etc1-etc-5df796cf8f-4zfm9 -c etc sh

cat /data/etc/data.txt

username: a1
age: 30

完整例子:https://github.com/4220182/k8s/tree/master/example/helm/external-etc

参考:https://docs.helm.sh/chart_template_guide/#glob-patterns

这篇关于helm-chart-读取配置文件到ConfigMap并映射到容器中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047338

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践