[k8s]cm挂到不同镜像如何获取env?

来源:互联网 发布:阿里云 香港节点 速度 编辑:程序博客网 时间:2024/06/05 18:01

要求每个pod挂相同cm模板,得到属于自己的配置

这里写图片描述

具体实现

以filebeat镜像为例:

docker-entrypoint.sh#!/bin/bashset -execho "pod-ip is $POD_IP"sed -i "s#\#pod-ip#pod-ip: $POD_IP#g" /etc/filebeat/filebeat.yml  #注意这句filebeat -e -c /etc/filebeat/filebeat.yml
DockerfileFROM docker.elastic.co/beats/filebeat:5.4.1COPY docker-entrypoint.sh /usr/local/bin/#RUN chmod +x /docker-entrypoint.shENTRYPOINT ["docker-entrypoint.sh"]
apiVersion: v1kind: ConfigMapmetadata:  name: tomcat-springdata:  filebeat.yml: |    filebeat.prospectors:    - input_type: log      fields:        service-name: tomcat-spring        #pod-ip                       # docker-entrypoint.sh会替换这行,具体,先sed获取pod变量值,然后替换这个#pod-ip.      paths:        - "/log/*.txt"      multiline:        pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{3}'        negate: true        match: after    output.elasticsearch:      hosts: ["elasticsearch.logging.svc.cluster.local:9200"]      username: "elastic"      password: "changeme"      template.name: "filebeat"      template.path: "filebeat.template.json"      template.overwrite: true      index: "filebeat-docker-test"    # Available log levels are: critical, error, warning, info, debug    logging.level: info
原创粉丝点击