在k8s中创建ConfigMap的四种方式与初识helm包管理工具

非敏感数据,比如应用的配置信息,则可以用ConfigMap

创建configmap四种方式

(1)通过--from-literal:

kubectl create configmap myconfigmap --from-literal=config1=xxx --from-literal=config2=yyy

每个--from-literal对应一个信息条目

(2)通过--from-file:

root@k8s-master \~\]# echo -n xxx \>./config1 \[root@k8s-master \~\]# echo -n yyy \>./config2 \[root@k8s-master \~\]# kubectl create configmap myconfigmap2 --from-file=./config1 --from-file=./config2 configmap/myconfigmap2 created \[root@k8s-master \~\]# 每个文件内容对应一个信息条目。 (3)通过--from-env-file: \[root@k8s-master \~\]# cat \<\< EOF \>env.txt \> config1=xxx \> config2=yyy \> EOF \[root@k8s-master \~\]# kubectl create configmap myconfigmap3 --from-env-file=env.txt configmap/myconfigmap3 created \[root@k8s-master \~\]# 文件env.txt中每行Key=Value对应一个信息条目。 (4)通过YAML配置文件(参考secret) 小结: Secret和ConfigMap支持四种定义方法。Pod在使用它们时,可以选择 Volume方式或环境变量方式,不过只有Volume方式支持动态更新。 Helm(包管理工具) Helm有两个重要的概念:chart和release。 chart是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。 chart是应用部署的自包含逻辑单元。可以将chart想象成apt、yum中的软件安装包。 release是chart的运行实例,代表了一个正在运行的应用。 当chart被安装到Kubernetes集群,就生成一个release。 chart能够多次安装到同一个集群,每次安装都是一个release。 Helm包含两个组件: Helm客户端和Tiller服务器 ![](https://file.jishuzhan.net/article/1700687920370814978/bf5720236ce14b5e8926d63b0763f419.png) Pod是应用负载的组件 API 服务器是 Kubernetes [控制平面](https://kubernetes.io/zh-cn/docs/reference/glossary/?all=true#term-control-plane "控制平面")的组件 kube-scheduler 是[控制平面](https://kubernetes.io/zh-cn/docs/reference/glossary/?all=true#term-control-plane "控制平面")的组件 *** ** * ** *** 三种控制器区别 1. Deployment:适用于无状态服务,可以实现滚动升级和回退,支持水平扩展和自动恢复。 2. StatefulSet:适用于有状态服务,可以保证Pod名称与Pod副本集之间的唯一性和稳定性,支持有序部署和扩展。 3. DaemonSet:用于在每个节点上运行一个Pod,例如日志收集、监控等任务。 简而言之,Deployment适合无状态应用程序,StatefulSet适合有状态应用程序,而DaemonSet适合在整个集群中运行特定类型的Pod。 案例: 以下是一些使用这些控制器的实际案例: 1. Deployment -部署 Web 应用程序,例如 WordPress 、 Ghost 等 ﹣在 Kubernetes 上运行无状态微服务,如 APl Gateway 、数据库代理等 -自动扩展容器数量以适应流量波动,例如从100到1000 2. StatefulSet - MySQL 、 PostgreSQL 、 Elasticsearch 等有状态应用的部署 -使用有序扩展逐步更新集群中的 Pod ,例如逐步升级数据库版本 3. DaemonSet -运行每个节点上的 Fluentd 或 Logstash 等日志收集器(部署守护式的进程) -运行每个节点上的监控代理,如 Prometheus Node Exporter 、 Zabbix Agent 等 ﹣运行每个节点上的网络服务代理/负载均衡器,如 Nginx Ingress Controller 等 需要注意的是,这些案例只是参考,并不是绝对的。在实际应用中,我们需要根据具体需求来选择合适的控制器。

相关推荐
johnny2334 小时前
运维管理面板:AcePanel、OpenOcta、DeepSentry
运维
青梅橘子皮5 小时前
Linux---基本指令
linux·运维·服务器
REDcker5 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
cui_ruicheng6 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
ACP广源盛139246256738 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无9 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
码云数智-大飞9 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Harvy_没救了10 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信10 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
2401_8734794011 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络