Как изменить разрешение имени хоста как файла хоста в coredns

#kubernetes #kubectl #minikube #coredns

#kubernetes #kubectl #мини-куб #coredns

Вопрос:

У меня есть конфигурация основного файла, подобная этой

 .:53 {
    errors
    health {
       lameduck 5s
    }
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       fallthrough in-addr.arpa ip6.arpa
       ttl 30
    }
    prometheus :9153
    forward . /etc/resolv.conf {
       max_concurrent 1000
    }
    cache 30
    loop
    reload
    loadbalance
}
 

Я бы хотел, чтобы все мои модули могли разрешать myapi.local для определенного IP-адреса (192.168.49.2)
Есть ли какой-нибудь простой способ добиться этого, например, что я могу сделать с файлом хоста ОС

Ответ №1:

Приведенная ниже конфигурация должна сделать свое дело

 .:53 {
    errors
    health
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
        pods insecure
        fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    hosts custom.hosts myapi.local {
        192.168.49.2 myapi.local
        fallthrough
    }
    forward . 8.8.8.8 8.8.4.4
    cache 30
    loop
    reload
    loadbalance
}
 

Ссылка https://medium.com/@hjrocha/add-a-custom-host-to-kubernetes-a06472cedccb

Или вы можете попробовать использовать плагин hosts https://coredns.io/plugins/hosts /

Ответ №2:

Если вы не хотите разрешать запись с помощью метода coredns, существует метод установки записей в файлах хоста определенного модуля, который будет отражать установку /etc/hosts на узле:

 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
    command:
    - cat
    args:
    - "/etc/hosts"
 

https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/