很多时候,pod里面的容器服务会使用到了内网的域名进行访问,我们会很自然的想到去配置/etc/hosts文件。
其实有几种方式可以去配置hosts的,本文来讲讲。

配置hosts
2.1 方式一:使用hostAlias标签

参考例子:https://www.jianshu.com/p/3e6564edbe74
我们可以在Deployment资源类型的文件里配置hostAlias标签,例子如下:

apiVersion: v1
kind: ReplicationController
metadata:
  name: dp-rc
  namespace: default
spec:
  replicas: 1
  selector:
    name: dp-pod
  template:
    metadata:
      labels:
        name: dp-pod
    spec:
      hostAliases:
      - ip: 172.20.92.191
        hostnames:
          - "bmp.91118.com"
          - "ca.91118.com"
      containers:
      - name: dp
        image: reg.k8s.dc.finupgroup.com/datacenter/dp:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

2.2 方式二:coredns里面添加

参考例子:https://blog.csdn.net/u010533742/article/details/109641426

可以在kube-system命令空间下的 coredns 这种 configmap 类型的资源文件里添加:

kubectl edit configmap -n kube-system coredns
Corefile: |
    .:53 {
        errors
        health {
          lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        hosts {
            172.20.92.191     bmp.91118.com
            172.20.92.191     ca.91118.com
            fallthrough
        }
        prometheus :9153
        forward . "/etc/resolv.conf"
        cache 30
        loop
        reload
        loadbalance
    }
作者:Jeebiz  创建时间:2023-12-04 15:04
最后编辑:Jeebiz  更新时间:2024-08-02 14:28