当前位置: 首页 > news >正文

K8s 如何通过 ConfigMap 来配置 Redis ?

k8s-cert


1、创建 ConfigMap YAML 配置文件

cat <<EOF >./example-redis-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: example-redis-config
data:
  redis-config: ""
EOF

2、创建 ConfigMap 资源

kubectl apply -f example-redis-config.yaml

创建完成后查看是否成功创建。

image-20230116143158080

这是创建了一个空的 ConfigMap 资源,看其详情:

image-20230116143911680

3、创建 Redis 的 Pod 资源

vim redis.yml
apiVersion: v1

kind: Pod
metadata:
  name: redis

spec:
  containers:
  - name: redis
    image: redis:5.0.4
    command:
      - redis-server
      - "/redis-master/redis.conf"
    env:
    - name: MASTER
      value: "true"
    ports:
    - containerPort: 6379
    resources:
      limits:
        cpu: "0.1"
    volumeMounts:
    - mountPath: /redis-master-data
      name: data
    - mountPath: /redis-master
      name: config
  volumes:
    - name: data
      emptyDir: {}
    - name: config
      configMap:
        name: example-redis-config
        items:
        - key: redis-config
          path: redis.conf

上面的参数应该就不陌生了,相信大家都明白,如果还不太清楚的,可以去看看 Secret、ConfigMap 相关的知识。

kubectl apply -f redis.yml
kubectl get pod

image-20230116143349691

4、进入 redis Pod 并查看 redis 资源

kubectl exec -it redis -- redis-cli
config get maxmemory
config get maxmemory-policy

image-20230116144215129

可看到值都是返回默认值-不符合我们的需求,现在往配置文件中添加数据,然后再次进行验证。

5、添加配置

cat <<EOF >./example-redis-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: example-redis-config
data:
  redis-config:
    maxmemory 2mb
    maxmemory-policy allkeys-lru
EOF

更新完成后再次更新 ConfigMap 资源。

kubectl apply -f example-redis-config.yaml
kubectl describe configmap example-redis-config

image-20230116145027908

6、通过 kubectl exec 使用 redis-cli 再次检查 Redis Pod,查看是否已应用配置

  • 先重启 Redis Pod 才能生效

    # 删除Pod
    kubectl delete pod redis
    
    # 创建Pod
    kubectl apply -f redis.yml
    

    image-20230116145913059

  • 再次验证

    kubectl exec -it redis -- redis-cli
    
    config get maxmemory
    config get maxmemory-policy
    

    image-20230116150146826

7、实验完成,删除资源

kubectl delete pod/redis configmap/example-redis-config

image-20230116150406885

小结:看这篇文章的前提是你已经基本掌握 ConfigMap 的概念及在实际测试/生产中的应用,重点还是搞清概念,其他的都很简单。


相关文章:

  • emlog to wordpress/免费自助建站
  • wordpress 后台无法登录/如何在百度做推广
  • 网站开发pc版与手机版/关键词优化排名详细步骤
  • 做网站买阿里云的ecs服务器/怎样免费推广自己的网站
  • 海南网站建设哪家专业/怎么在线上推广自己的产品
  • 银川seo公司/seo服务是什么
  • 记录每日LeetCode 112.路径总和 Java实现
  • 洛谷 225153 数字组合
  • MySQL中给字符串字段加索引
  • 【redis6】第十章(事务和锁机制)
  • 4.Python基础之函数
  • PicGo+Gitee+Typora实现markdown图床
  • Ajax基础
  • 【Linux 基础】
  • NEUQ week11题解
  • 【华为OD机试真题2023 JAVA】查找树中元素
  • (小甲鱼python)函数笔记合集三 函数(III)总结 函数的收集参数*args **args 解包参数详解
  • Tomcat 三种简单网站部署方式