集群CoreDNS设置
外部访问自定义
k8s-ConfigMap配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health {
lameduck 15s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods verified
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
# ======= 自定义配置部分 =======
cluster.dev:53 {
# 将域名解析到 Nginx 地址
forward . 10.xxx.xxx.xxx
cache 30
}
cluster.test:53 {
# 将域名解析到 Nginx 地址
forward . 10.xxx.xxx.xxx
cache 30
}
sh:53 {
# 将域名解析到 Nginx 地址
forward . 10.xxx.xxx.xxx
cache 30
}
cluster.dev:53:
这表示 CoreDNS 将在 53 端口上监听来自 cluster.dev 域名的 DNS 查询请求。53 是标准的 DNS 服务端口。
forward . 10.xxx.xxx.xxx:
forward 指令用于将 DNS 查询请求转发到指定的 DNS 服务器或 IP 地址。
. 表示所有域名(即任意域名)。这意味着所有的 DNS 查询都将被转发到 10.xxx.xxx.xxx。
10.xxx.xxx.xxx 是指定的目标 IP 地址,通常是一个运行着 Nginx 或其他 Web 服务器的地址。所有的 DNS 查询都将被解析为指向这个 IP。
cache 30:
cache 指令配置 DNS 查询的缓存时间,这里设置为 30 秒。
这意味着在处理 DNS 查询时,如果请求的结果已经在缓存中,CoreDNS 将在 30 秒内返回缓存的结果,而不会去查找或转发到目标 IP 地址。
10.xxx.xxx.xxx作用
能够正确处理从 CoreDNS 转发过来的请求,通常需要在这台服务器上配置一个 Web 服务器(如 Nginx 或 Apache)来处理 HTTP 请求。
Nginx配置文件例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 server { listen 80; # 监听 80 端口 server_name cluster.dev; # 处理来自 cluster.dev 的请求 location / { proxy_pass http://your_backend_service; # 将请求转发到后端服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } error_page 404 /404.html; # 处理 404 错误页面 location = /404.html { root /usr/share/nginx/html; # 404 页面位置 internal; } }
本文由作者按照
CC BY 4.0
进行授权