Kubernetes ConfigMap在envFrom变量、env/valueFrom与Volume挂载中的热更新测试与实践



前言

ConfigMap是Kubernetes中一个关键的配置管理资源,它使得配置文件和参数的管理与容器化应用解耦,从而实现配置的动态调整与应用的无缝更新。通过ConfigMap,开发者可以将配置数据存储在Kubernetes集群中,供应用在运行时访问和使用。

在实际应用中,ConfigMap的更新常常是不可避免的,而如何保证这些更新能够快速且无缝地反映到应用中,成为了一个关键问题。特别是在Env变量和Volume挂载的场景中,ConfigMap的热更新机制是否能够顺利应用,直接影响到系统的稳定性与灵活性。

本文将通过实际的测试与案例分析,探讨ConfigMap在Env变量和Volume挂载场景下的热更新效果,重点关注如何在不重启容器的情况下实现配置的即时生效,确保应用能够持续稳定运行。同时,本文还将对Kubernetes的热更新策略进行深入分析,为运维提供切实可行的技术方案和最佳实践。


一、环境准备

一套k8s集群,版本是1.28

1、configmap创建

[root@k8s-master YamlTest]# cat test_cfg.yml 
username: "ops"
password: "123"
[root@k8s-master YamlTest]# kubectl create configmap test-cfg -n middleware --from-file ./test_cfg.yml
[root@k8s-master YamlTest]# kubectl get configmaps -n middleware test-cfg 
NAME       DATA   AGE
test-cfg   1      15m

2、deployment文件准备

[root@k8s-master YamlTest]# kubectl create deployment test-nginx -n middleware \
--image=swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:stable \
--replicas 2 --dry-run=client -oyaml >./test_nginx.yml
[root@k8s-master YamlTest]# cat test_nginx.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test-nginx
  name: test-nginx
  namespace: middleware
spec:
  replicas: 2
  selector:
    matchLabels:
      app: test-nginx
  template:
    metadata:
      labels:
        app: test-nginx
    spec:
      containers:
      - image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:stable
        name: nginx

二、Env变量使用Configmap

1.更新yaml文件,绑定configmap

代码如下(示例):

[root@k8s-master YamlTest]# cat test_nginx.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test-nginx
  name: test-nginx
  namespace: middleware
spec:
  replicas: 2
  selector:
    matchLabels:
      app: test-nginx
  template:
    metadata:
      labels:
        app: test-nginx
    spec:
      containers:
      - image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:stable
        name: nginx
        envFrom:    ###使用envFrom挂载使用configmap
        - configMapRef:
            name: test-cfg

创建pod

[root@k8s-master YamlTest]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值