Kubernetes 控制器之 ConfigMap
Kubernetes中的ConfigMap是一种用于存储非敏感信息的资源对象,它通过键值对形式向Pod提供配置信息,使得应用配置更加灵活且可移植。ConfigMap支持多种使用方式,包括作为环境变量、命令行参数或挂载为数据卷等,并且可以挂载多个ConfigMap以分离不同方面的配置。ConfigMap是命名空间级别的资源,可通过Kubernetes API进行管理。文章还提供了创建、更新、查看和删除ConfigMap的具体操作示例,如使用文件、env文件、字符串或者YAML格式定义的资源清单来创建ConfigMap。此外,介绍了如何通过修改资源清单或重新创建的方式来更新现有的ConfigMap。
Kubernetes 控制器之 StatefulSet
Kubernetes 中的 StatefulSet 是一种高级 API 对象,用于管理有状态应用的生命周期。它确保指定数量的 Pod 副本始终运行且是最新的,并通过保持 Pod 的有序性、持久性和唯一性来支持有状态应用。StatefulSet 控制器为每个 Pod 分配唯一的序号、提供持久化存储卷并保证其名称唯一,从而实现对数据的持续访问和个性化体验。此外,StatefulSet 支持滚动更新策略,允许逐步更新而不中断服务,并具备自动修复和版本回滚功能。通过无头服务(Headless Service),StatefulSet 还可以实现 Pod 间的直接通信。常用操作包括创建、更新、回滚、查看及删除 StatefulSet,以及调整副本数量。
Kubernetes 控制器之 ConfigMap 与 Secret 异同
ConfigMap和Secret都是Kubernetes中用于存储配置数据的资源,允许Pod通过环境变量或卷挂载访问这些信息。两者都可以使用命令行工具或API创建,并以键值对形式存储数据。当它们的内容更新时,相关的Pod需要手动重启才能获取到最新的配置。此外,ConfigMap与Secret都支持RBAC规则来管理访问权限。
不同之处在于:ConfigMap适用于非敏感数据(如普通配置文件),而Secret则专为敏感数据(如密码、令牌)设计;Secret中的数据默认加密存储于Etcd,提供更高安全性;ConfigMap不区分类型,但Secret有多种类型(例如Opaque);虽然ConfigMap理论上没有大小限制,但推荐不超过1MB,相比之下Secret由于加密原因通常具有更严格的大小约束;最后,在默认情况下,ConfigMap对所有用户开放,而Secret则需更加严格地控制访问权限。
Kubernetes 控制器之 Secret
Kubernetes中的Secret是一种用于存储敏感信息(如密码、密钥)的资源对象,它通过键值对的形式提供经过base64编码的数据给应用程序,增强了配置的灵活性和安全性。与ConfigMap不同,Secret支持多种类型(如Opaque, kubernetes.io/dockerconfigjson等),且自Kubernetes 1.7起,默认在etcd中以加密形式保存数据。Secret是命名空间级别的,并可通过Kubernetes API进行管理。创建Secret有多种方式,包括使用文件、环境变量文件、直接指定字符串或通过YAML文件定义;更新时可以通过修改后重新应用或直接更新YAML文件实现;查看和删除操作也提供了相应的命令行工具支持。
Kubernetes 控制器之 CronJob
CronJob 是 Kubernetes 中用于周期性执行任务的 API 对象,它基于时间调度配置,在指定时间创建并运行 Job。CronJob 适用于定时备份、检查等场景。其工作流程包括定义 CronJob 对象、监控状态、按计划生成 Job、执行任务、监控 Pod 状态、记录历史及清理资源。CronJob 支持复杂的时间表、并发策略、失败重试、暂停与恢复等功能,并允许设置时区和死信队列。通过 `cronjob.yaml` 文件可定义 CronJob,示例中展示了每天 00:10 执行打印数字的任务。常用操作包括创建、查看和删除 CronJob。
Kubernetes 控制器之 DaemonSet
DaemonSet 是 Kubernetes 中的一种控制器,用于确保所有节点或选定节点上都运行一个 Pod 的副本,通常用于部署如日志收集、监控代理等系统服务。其工作原理包括定义对象、调度 Pod、监控状态、更新配置和节点选择。DaemonSet 支持自动恢复、滚动更新,并能通过标签选择器灵活控制 Pod 的分布。此外,它还支持资源请求与限制,与 Kubernetes 其他功能紧密集成,适用于大规模集群。用户可以通过 YAML 文件定义 DaemonSet 并使用 kubectl 命令进行创建、更新、回滚、查看及删除等操作。
📂专栏
未读
Prometheus 安装与部署
本文详细介绍了Prometheus的安装与部署过程,包括下载并解压Prometheus及其node exporter的安装包、启动服务以及通过修改配置文件来从node exporter收集监控数据。此外,还涵盖了如何使用Grafana创建可视化Dashboard的过程,具体步骤包括获取和安装Grafana、设置Grafana为自启动服务、访问Grafana Web界面、导入Prometheus作为数据源,并最终导入特定ID的预设Dashboard以实现监控数据的可视化展示。整个指南旨在帮助用户快速搭建起一个功能完善的监控系统。
Kubernetes 安装方法之 KWOK
KWOK(Kubernetes WithOut Kubelet)是一种轻量级工具包,能够在几秒内创建包含数千个节点的集群,并且资源占用极低。本文介绍了KWOK的下载安装及使用方法,包括kwokctl工具的获取、Kubernetes集群的部署步骤(如关闭防火墙、禁用SELinux等),以及通过docker run和kwokctl create两种方式快速部署集群。此外,还提供了创建节点、实测结果展示以及kwokctl常用命令的详细说明,例如查看集群状态、切换上下文环境、停止/启动/删除集群等功能,方便用户高效管理模拟集群。

