资讯专栏INFORMATION COLUMN

k8s与configmap--安利configmap-reload组件

sugarmo / 2474人阅读

摘要:前言在集群内,当以形式挂载到内时,更新,会自动同步被挂载到内的文件内容。当然并不是更改立即生效的,大约是需要钟后,才会生效。今天就给大家介绍一个组件。当然仓库中已经提供了文件,大家可以自己打镜像,然后到自己的仓库中。

前言

在kubernetes集群内,当ConfigMap以volume形式挂载到pod内时,更新ConfigMap,kubernetes会自动同步被挂载到pod内的文件内容。当然并不是更改立即生效的,大约是需要10S钟后,才会生效。实际生产使用案例中,假如你的应用具备hot reload 功能, 这时可以增加一些监测配置文件变更的脚本,然后reload对应服务。比如prometheus。今天就给大家介绍一个configmap-reload 组件。

configmap-reload

configmap-reload 采用rust语言实现,作为主业务容器的sidercar,主要用于k8s当中监听configmap的变化,待变化后通过http接口的方式通知主业务。在资源消耗上,更小。具体如下:

[root@ip-172-xx-xx-10 src]# kubectl top pods
NAME                                CPU(cores)   MEMORY(bytes)
configmap-reload-6bbbb8b45b-7zg2x   0m           1Mi

输入参数可以通过configmap-reload -h 获取:

configmap-reload 0.1.0
gaohj 


USAGE:
    configmap-reload [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -l, --log_level                         log level: error|warn|info|debug|trace [default: info]
    -p, --path                            the config map volume directory to watch for updates [default: ]
    -m, --webhook_method 
            the HTTP method url to use to send the webhook: GET|POST [default: POST]

    -c, --webhook_status_code 
            the HTTP status code indicating successful triggering of reload [default: 200]

    -u, --webhook_url                     the HTTP method url to use to send the webhook [default: ]
    

示例使用:

---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app: configmap-reload
  name: configmap-reload-cm
data:
  test.ini: |-
    key: a

---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: configmap-reload
  labels:
    app: configmap-reload
spec:
  replicas: 1
  selector:
    matchLabels:
      app: configmap-reload
  template:
    metadata:
      labels:
        app: configmap-reload
    spec:
      volumes:
      - name: config
        configMap:
          name: configmap-reload-cm
      containers:
      - name: configmap-reload
        image: "iyacontrol/configmap-reload:v0.1"
        command:
          - configmap-reload
        args:
          - -l
          - debug
          - -p 
          - /etc/test/  
          - -c 
          - "200" 
          - -u 
          - https://www.baidu.com
        volumeMounts:
        - name: config
          mountPath: /etc/test/
        imagePullPolicy: Always

---
总结

大家直接可以拉取 dockerhub 中的镜像。

当然仓库中已经提供了Dockerfile文件,

FROM clux/muslrust:stable as builder

WORKDIR /configmap-reload
COPY ./ ./

ARG use_mirror
RUN if [ $use_mirror ]; then 
        mkdir -p $HOME/.cargo; 
        mv -f ./docker/cargo_config  $HOME/.cargo/config; 
    fi
RUN cargo build --release

#####################################

FROM alpine:latest as prod

RUN apk add --no-cache ca-certificates 

COPY --from=0 /configmap-reload/target/x86_64-unknown-linux-musl/release/configmap-reload /usr/bin/configmap-reload
RUN chmod +x /usr/bin/configmap-reload
ENTRYPOINT ["configmap-reload"]

大家可以自己打镜像,然后push到自己的仓库中。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27717.html

相关文章

  • k8sconfigmap--安利configmap-reload组件

    摘要:前言在集群内,当以形式挂载到内时,更新,会自动同步被挂载到内的文件内容。当然并不是更改立即生效的,大约是需要钟后,才会生效。今天就给大家介绍一个组件。当然仓库中已经提供了文件,大家可以自己打镜像,然后到自己的仓库中。 前言 在kubernetes集群内,当ConfigMap以volume形式挂载到pod内时,更新ConfigMap,kubernetes会自动同步被挂载到pod内的文件内...

    _ivan 评论0 收藏0
  • k8sconfigmap--安利configmap-reload组件

    摘要:前言在集群内,当以形式挂载到内时,更新,会自动同步被挂载到内的文件内容。当然并不是更改立即生效的,大约是需要钟后,才会生效。今天就给大家介绍一个组件。当然仓库中已经提供了文件,大家可以自己打镜像,然后到自己的仓库中。 前言 在kubernetes集群内,当ConfigMap以volume形式挂载到pod内时,更新ConfigMap,kubernetes会自动同步被挂载到pod内的文件内...

    mingde 评论0 收藏0
  • #yyds干货盘点#K8S ConfigMap 配置

    摘要:资源用于在运行时将配置文件命令行参数环境变量端口号以及其他配置工件绑定至的容器和系统组件。是标准的资源类型,它隶属名称空间级别,支持命令式命令命令式对象配置及声明式对象配置种管理接口。 ConfigMap 和 Secret 是 Kubernetes 系统上两种特殊类型的存储卷,前者用于为容器中的应用提供配置数据以定制程序的...

    Karuru 评论0 收藏0
  • 7个选择Kubernetes作为你的Docker编排工具的理由

    摘要:如果你正在寻找一种部署容器到你的任一环境中的方法,给你至少个选择它的理由。允许你运行,以及成功完成一定数量的。通过验证我们完成的,上述的情况确认不会发生。每个就是几个小时的问题,而且由拥有者优先化。 对于Docker编制框架来说,Kubernetes 是最强的竞争者之一,这在版本1.2之后更是如此。如果你正在寻找一种部署 Docker 容器到你的任一环境中的方法,Kubernetes给...

    zhiwei 评论0 收藏0
  • 拉勾网基于 UK8S平台的容器化改造实践

    摘要:宋体本文从拉勾网的业务架构日志采集监控服务暴露调用等方面介绍了其基于的容器化改造实践。宋体此外,拉勾网还有一套自研的环境的业务发布系统,不过这套发布系统未适配容器环境。写在前面 拉勾网于 2019 年 3 月份开始尝试将生产环境的业务从 UHost 迁移到 UK8S,截至 2019 年 9 月份,QA 环境的大部分业务模块已经完成容器化改造,生产环境中,后台管理服务已全部迁移到 UK8...

    CoorChice 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<