• k8s 自定义pod hosts的几种方法


    日常中我们可能会碰到不少关于自定义pod hosts的场景,对于不同的k8s 版本处理的不一样的
    以下整理一些参考方法

    自定义coredns

    自定义coredns 可以直接让解析的域名使用coredns 处理,好处是可以全局生效,不好的地方就是全局可能会影响其他不需要自定义hosts的
    扩展coredns 的方法就比较多了,可以基于dns 的转发以及直接配置coredns 的hosts
    hosts 模式参考

    . {
        hosts example.hosts example.org example.net {
            fallthrough
        }
    }

    对于k8s 小于1.7 版本的

    可以基于声明周期钩子,添加hosts 文件
    参考
    yaml 定义,添加如下

    lifecycle:
            postStart:
              exec:
                command: ["/bin/sh", "-c", "echo <ip>  <domain>  >> /etc/hosts"]

    对于比较多的,我们可以直接使用文件配置,格式和hosts 一致

    对于大于等于1.7 版本的

    使用hostAliases
    参考

    apiVersion: v1
    kind: Pod
    metadata:
      name: hostaliases-pod
    spec:
      restartPolicy: Never
      hostAliases:
      - ip: "127.0.0.1"
        hostnames:
        - "foo.local"
        - "bar.local"
      - ip: "10.1.2.3"
        hostnames:
        - "foo.remote"
        - "bar.remote"
      containers:
      - name: cat-hosts
        image: busybox:1.28
        command:
        - cat
        args:
        - "/etc/hosts"

    参考资料

    https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
    https://coredns.io/plugins/hosts/

  • 相关阅读:
    HTML5 模板推荐
    OpenCV初探
    微信开放框架-UCToo
    ProFTPD 初探
    移动开发者服务平台-友盟
    线程原理理解
    JVM参数及性能调优
    GC——垃圾回收
    JVM内存模型
    php常用 随机数
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/16383595.html
Copyright © 2020-2023  润新知