0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于Docker提供內(nèi)置的DNS服務器

dyquk4xk2p3d ? 來源:Se7en的架構(gòu)筆記 ? 2023-08-08 14:14 ? 次閱讀

DNS簡介

DNS服務是域名系統(tǒng)的縮寫, 英文全稱:Domain Name System,將域名和IP地址相互映射。在容器環(huán)境中,DNS至關重要,例如在Kubernetes集群中,通常一組Pod由一個Service負載,但是Service的IP地址有可能需要變動,那么就可以讓Pod通過域名的方式去訪問Service,Pod無需理會IP地址的變化。

Docker DNS

Docker link

Docker link是一個遺留的特性,在新版本的Docker中,一般不推薦使用。簡單來說Docker link就是把兩個容器連接起來,容器可以使用容器名進行通信,而不需要依賴ip地址(其實就是在容器的/etc/hosts文件添加了host記錄,原本容器之間的IP就是通的,只是我們增加了host記錄,可以不用IP去訪問)

創(chuàng)建容器centos-1:

[root@host1~]#dockerrun-itd--namecentos-1registry.cn-shanghai.aliyuncs.com/public-namespace/cr7-centos7-tool:v2

創(chuàng)建容器centos-2,使用--link name:alias,name就是要訪問的目標機器,alias就是自定義的別名。

[root@host1~]#dockerrun-itd--namecentos-2--linkcentos-1:centos-1-aliasregistry.cn-shanghai.aliyuncs.com/public-namespace/cr7-centos7-tool:v2

查看容器centos-2的/etc/hosts文件:

[root@host1~]#dockerexeccentos-2cat/etc/hosts
127.0.0.1localhost
::1localhostip6-localhostip6-loopback
fe00::0ip6-localnet
ff00::0ip6-mcastprefix
ff02::1ip6-allnodes
ff02::2ip6-allrouters
172.18.0.2centos-1-alias9dde6339057acentos-1#容器centos-1的host記錄
172.18.0.3f1a7e5fa3d96#容器centos-2自身的host記錄

意味著centos-2可以用centos-1-alias,9dde6339057a,centos-1來訪問原先創(chuàng)建的容器。centos-1是不可以通過hostname訪問centos-2的。

[root@host1 ~]# docker exec centos-2 ping centos-1-alias
PING centos-1-alias (172.18.0.2) 56(84) bytes of data.
64 bytes from centos-1-alias (172.18.0.2): icmp_seq=1 ttl=64 time=0.174 ms
^C
[root@host1 ~]# docker exec centos-2 ping centos-1
PING centos-1-alias (172.18.0.2) 56(84) bytes of data.
64 bytes from centos-1-alias (172.18.0.2): icmp_seq=1 ttl=64 time=1.37 ms
64 bytes from centos-1-alias (172.18.0.2): icmp_seq=2 ttl=64 time=0.523 ms
^C
[root@host1 ~]# docker exec centos-2 ping 9dde6339057a
PING centos-1-alias (172.18.0.2) 56(84) bytes of data.
64 bytes from centos-1-alias (172.18.0.2): icmp_seq=1 ttl=64 time=2.59 ms
64 bytes from centos-1-alias (172.18.0.2): icmp_seq=2 ttl=64 time=3.75 ms

Embedded DNS

從Docker 1.10開始,Docker提供了一個內(nèi)置的DNS服務器,當創(chuàng)建的容器屬于自定義網(wǎng)絡時,容器的/etc/resolv.conf會使用內(nèi)置的DNS服務器(地址永遠是127.0.0.11)來解析相同自定義網(wǎng)絡內(nèi)的其他容器。

f89abf8c-35a0-11ee-9e74-dac502259ad0.png

為了向后兼容,default bridge網(wǎng)絡的DNS配置沒有改變,默認的docker網(wǎng)絡使用的是宿主機的/etc/resolv.conf的配置。

創(chuàng)建一個自定義網(wǎng)絡:

[root@host1~]#dockernetworkcreatemy-network

#bridge,host,none為docker默認創(chuàng)建的網(wǎng)絡
[root@host1~]#dockernetworkls
NETWORKIDNAMEDRIVERSCOPE
2115f17cd9d0bridgebridgelocal
19accfa096cfhosthostlocal
a23c8b371c7fmy-networkbridgelocal
0a33edc20faenonenulllocal

分別創(chuàng)建兩個容器屬于自定義網(wǎng)絡my-network中:

[root@host1~]#dockerrun-itd--namecentos-3--netmy-networkregistry.cn-shanghai.aliyuncs.com/public-namespace/cr7-centos7-tool:v2
[root@host1~]#dockerrun-itd--namecentos-4--netmy-networkregistry.cn-shanghai.aliyuncs.com/public-namespace/cr7-centos7-tool:v2

查看容器centos-4的/etc/hosts和/etc/resolv.conf,可以看到nameserver添加的IP為127.0.0.11的Embedded DNS:

#/etc/hosts中沒有配置對方的host記錄
[root@host1~]#dockerexeccentos-4cat/etc/hosts
127.0.0.1localhost
::1localhostip6-localhostip6-loopback
fe00::0ip6-localnet
ff00::0ip6-mcastprefix
ff02::1ip6-allnodes
ff02::2ip6-allrouters
172.19.0.3555281f37ea3

#/etc/resolv.conf配置了dns服務器127.0.0.11
[root@host1~]#dockerexeccentos-4cat/etc/resolv.conf
nameserver127.0.0.11
optionsndots:0

此時centos-3和centos-4可以互相解析:

[root@host1 ~]# docker exec centos-4 ping centos-3
PING centos-3 (172.19.0.2) 56(84) bytes of data.
64 bytes from centos-3.my-network (172.19.0.2): icmp_seq=1 ttl=64 time=0.128 ms
64 bytes from centos-3.my-network (172.19.0.2): icmp_seq=2 ttl=64 time=0.078 ms
64 bytes from centos-3.my-network (172.19.0.2): icmp_seq=3 ttl=64 time=0.103 ms
^C

[root@host1 ~]# docker exec centos-3 ping centos-4
PING centos-4 (172.19.0.3) 56(84) bytes of data.
64 bytes from centos-4.my-network (172.19.0.3): icmp_seq=1 ttl=64 time=0.087 ms
64 bytes from centos-4.my-network (172.19.0.3): icmp_seq=2 ttl=64 time=0.101 ms
64 bytes from centos-4.my-network (172.19.0.3): icmp_seq=3 ttl=64 time=0.076 ms
^C

Docker DNS配置

方式一:docker run (針對單個容器)

Flag Description
--dns 指定DNS服務器地址,如果容器不能訪問指定的所有ip地址,則會使用8.8.8.8作為DNS服務器地址(Docker默認定義的)
--dns-search 當容器訪問一個不包括完全域名的主機名時,在該主機名后面添加dns-search指定的域名后綴,例如容器訪問centos-1,dns-search配置的是example.com,則會解析成centos-1.example.com
--dns-opt options ndots:5的含義是當查詢的域名字符串內(nèi)的點字符數(shù)量大于等于ndots值(5)時,則認為是完整域名,直接解析,不會走 search 域
--hostname 指定容器hostname

方式二:daemon.json

nameserver只針對docker默認網(wǎng)絡所有容器,dns-search和dns-opts針對所有網(wǎng)絡容器。

{
"dns":["114.114.114.114","223.5.5.5"],
"dns-opts":["ndots:5"],
"dns-search":["example.com"]
}

Kubernetes DNS

f8bdfb82-35a0-11ee-9e74-dac502259ad0.png

在kubernetes中,有以下4中DNS策略,可以通過dnsPolicy指定:

Default: Pod從運行所在的節(jié)點繼承名稱解析配置,就是該 Pod 的 DNS 配置會跟宿主機完全一致。。Default 不是默認的 DNS 策略。如果未明確指定dnsPolicy,則使用 ClusterFirst。

ClusterFirst: 它會預先把 kube-dns(或 CoreDNS)的信息當作預設參數(shù)寫入到該 Pod 內(nèi)的 DNS 配置。不過ClusterFirst 還有一個沖突,如果你的 Pod 設置了 HostNetwork=true,則 ClusterFirst 就會被強制轉(zhuǎn)換成 Default。

ClusterFirstWithHostNet: 對于與 hostNetwork(網(wǎng)絡接口使用的是宿主機的) 一起運行的 Pod,應顯式設置其DNS策略 ClusterFirstWithHostNet,他將同時解決default和ClusterFirst的DNS解析。如果不加上dnsPolicy: ClusterFirstWithHostNet,Pod默認使用所在宿主主機使用的DNS,這樣也會導致容器內(nèi)不能通過service name 訪問k8s集群中其他Pod。

None: 表示會清除 Pod 預設的 DNS 配置,當 dnsPolicy 設置成這個值之后,Kubernetes 不會為 Pod 預先載入任何自身邏輯判斷得到的 DNS 配置。因此若要將 dnsPolicy 的值設為 None,為了避免 Pod 里面沒有配置任何 DNS參數(shù),至少需要在dnsConfig中設置nameservers的參數(shù)。

在 Kubernetes 1.11 及其以后版本中,推薦使用 CoreDNS, kubeadm 默認會安裝 CoreDNS。當Pod向CoreDNS發(fā)起DNS解析請求時,CoreDNS先會自己嘗試解析,如果無法解析該域名,會將DNS請求交給CoreDNS的Pod所在的宿主機,讓宿主機嘗試解析。

本次實驗kubernetes集群中coredns service的地址是10.247.3.10。

? kubectl get svc -n kube-system
NAME      TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE
coredns   ClusterIP   10.247.3.10           53/UDP,53/TCP,8080/TCP   13d

宿主機的/etc/resolv.conf文件如下:

[root@cr7-k8s-85091-ydy99 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search openstacklocal
nameserver 100.125.1.250
nameserver 100.125.64.250
options single-request-reopen

CluterFirst

CluterFirst是kubernetes集群中默認的DNS策略,這里是一個普通的Pod yaml文件,沒有指定dnsPolicy。

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always

創(chuàng)建Pod后,進入該Pod查看/etc/resolv.conf配置,可以看到nameserver為CoreDNS的service的地址。

/#cat/etc/resolv.conf
nameserver10.247.3.10
searchdefault.svc.cluster.localsvc.cluster.localcluster.localopenstacklocal
optionssingle-request-reopentimeout:2ndots:5

如果在Pod的yaml文件中指定了DNS參數(shù),會和默認的ClusterFirst的配置疊加:

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always
dnsConfig:
nameservers:
-1.2.3.4
searches:
-ns1.svc.cluster-domain.example
-my.dns.search.suffix
options:
-name:ndots
value:"2"
-name:edns0
/#cat/etc/resolv.conf
nameserver10.247.3.10
nameserver1.2.3.4
searchdefault.svc.cluster.localsvc.cluster.localcluster.localopenstacklocalns1.svc.cluster-domain.examplemy.dns.search.suffix
optionstimeout:2ndots:2edns0single-request-reopen

Default

dnsPolicy為Default模式時,Pod使用的是宿主機的DNS配置:

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always
dnsPolicy:Default
/#cat/etc/resolv.conf
nameserver100.125.1.250
nameserver100.125.64.250
searchopenstacklocal
optionssingle-request-reopentimeout:2

ClusterFirstWithHostNet

當Pod使用了hostNetwork模式時,Pod使用的是宿主機的網(wǎng)卡:

#進入pod后查看
/#ifconfig
......
eth0Linkencap:EthernetHWaddrFA3E14:9B
inetaddr:192.168.0.8Bcast:192.168.0.255Mask:255.255.255.0
inet6addr:fe80:3eff149b/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:44239432errors:0dropped:0overruns:0frame:0
TXpackets:47841007errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:19884749467(18.5GiB)TXbytes:34713001649(32.3GiB)
......

當Pod使用hostNetwork模式,并且未指定dnsPolicy為ClusterFirstWithHostNet時,Pod會使用的宿主機的DNS:

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always
hostNetwork:true

此時Pod無法通過域名訪問Kubernetes集群內(nèi)部:

#hostNetwork模式如果不指定dnsPolicy則使用default模式,使用的宿主機的DNS
/#cat/etc/resolv.conf
nameserver100.125.1.250
nameserver100.125.64.250
searchopenstacklocal
optionssingle-request-reopentimeout:2

#pod可以通過域名訪問外網(wǎng),但是無法通過域名訪問kubernetes集群內(nèi)部
/#pingbaidu.com
PINGbaidu.com(39.156.69.79):56databytes
64bytesfrom39.156.69.79:seq=0ttl=49time=29.193ms
64bytesfrom39.156.69.79:seq=1ttl=49time=29.104ms
^C
---baidu.compingstatistics---
2packetstransmitted,2packetsreceived,0%packetloss
round-tripmin/avg/max=29.104/29.148/29.193ms
/#pingnginx
ping:badaddress'nginx'

如果Pod在hostNetwork模式下要通過域名的方式訪問kubernetes集群內(nèi)的服務,需要指定dnsPolicy為ClusterFirstWithHostNet:

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always
hostNetwork:true
dnsPolicy:ClusterFirstWithHostNet

此時查看Pod的DNS配置,可以看到nameserver使用的是CoreDNS:

#ClusterFirstWithHostNet模式DNS使用的是coredns的地址,
/#cat/etc/resolv.conf
nameserver10.247.3.10
searchdefault.svc.cluster.localsvc.cluster.localcluster.localopenstacklocal
optionssingle-request-reopentimeout:2ndots:5

#可以通過域名訪問外網(wǎng),也通過域名訪問集群內(nèi)部
/#nslookupbaidu.com
Server:10.247.3.10
Address1:10.247.3.10coredns.kube-system.svc.cluster.local

Name:baidu.com
Address1:39.156.69.79
Address2:220.181.38.148
/#
/#nslookupnginx
Server:10.247.3.10
Address1:10.247.3.10coredns.kube-system.svc.cluster.local

Name:nginx
Address1:10.247.60.222nginx.default.svc.cluster.local
/#

None

當設置dnsPolicy為None時,不會使用Kubernetes集群和宿主機的 DNS 策略,但是必須自己配置dnsConfig。

apiVersion:v1
kind:Pod
metadata:
name:busybox
namespace:default
spec:
containers:
-image:busybox:1.28
command:
-sleep
-"3600"
imagePullPolicy:IfNotPresent
name:busybox
restartPolicy:Always
dnsPolicy:None
dnsConfig:
nameservers:
-1.2.3.4
/ # cat /etc/resolv.conf
nameserver 1.2.3.4
options single-request-reopen timeout:2

StatefulSet 和 Service

StatefulSet Pod 具有唯一的標識,該標識包括順序標識、穩(wěn)定的網(wǎng)絡標識和穩(wěn)定的存儲。該標識和 Pod 是綁定的,不管它被調(diào)度在哪個節(jié)點上。

StatefulSet 中的每個 Pod 根據(jù) StatefulSet 的名稱和 Pod 的序號派生出它的主機名。組合主機名的格式為$(StatefulSet 名稱)-$(序號)。下例將會創(chuàng)建三個名稱分別為web-0、web-1、web-2的 Pod。StatefulSet 可以使用 Headless Service(無頭服務)控制它的 Pod 的網(wǎng)絡域。管理域的這個服務的格式為:$(服務名稱).$(命名空間).svc.cluster.local,其中cluster.local是集群域。一旦每個 Pod 創(chuàng)建成功,就會得到一個匹配的 DNS 子域,格式為:$(pod 名稱).$(所屬服務的 DNS 域名),其中所屬服務由 StatefulSet 的serviceName域來設定。

f8dc9498-35a0-11ee-9e74-dac502259ad0.png

通過域名去訪問Headless Service負載的Pod是不走iptables的,通過域名去訪問ClusterIP負載的Pod要走Iptables。

下面給出一些選擇集群域、服務名、StatefulSet 名、及其怎樣影響 StatefulSet 的 Pod 上的 DNS 名稱的示例:

Cluster Domain Service (ns/name) StatefulSet (ns/name) StatefulSet Domain Pod DNS Pod Hostname
cluster.local default/nginx default/web nginx.default.svc.cluster.local web-{0..N-1}.nginx.default.svc.cluster.local web-{0..N-1}
cluster.local foo/nginx foo/web nginx.foo.svc.cluster.local web-{0..N-1}.nginx.foo.svc.cluster.local web-{0..N-1}
kube.local foo/nginx foo/web nginx.foo.svc.kube.local web-{0..N-1}.nginx.foo.svc.kube.local web-{0..N-1}

Headless Service

首先我們將StatefulSet和Headless Service結(jié)合使用,(通常情況下是這么做的):

apiVersion:v1
kind:Service
metadata:
name:headless-nginx
labels:
app:nginx
spec:
ports:
-port:80
name:web
clusterIP:None
selector:
app:nginx
---
apiVersion:apps/v1
kind:StatefulSet
metadata:
name:web
spec:
selector:
matchLabels:
app:nginx
serviceName:headless-nginx
replicas:3
template:
metadata:
labels:
app:nginx
spec:
containers:
-name:nginx
image:nginx:1.7.9
ports:
-containerPort:80
name:web

查看創(chuàng)建的StatefulSet的Pod,命名是有規(guī)律的按照0,1,2的順序遞增。

root@master01:~/yaml/service#kubectlgetpod-owide
NAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEREADINESSGATES
web-01/1Running06s192.168.5.59worker01
web-11/1Running05s192.168.30.117worker02
web-21/1Running03s192.168.5.58worker01

查看創(chuàng)建的Headless Service,可以看到ClusterIP為None:

root@master01:~/yaml/service#kubectlgetsvc
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
headless-nginxClusterIPNone80/TCP15m

找一個相同namespace的Pod來解析該Headless Service:

root@master01:~/yaml/service#kubectlexecbusybox1--nslookupheadless-nginx
Server:10.96.0.10
Address1:10.96.0.10kube-dns.kube-system.svc.cluster.local

#解析出來的ip地址為3個StatefulSet的pod的ip
Name:headless-nginx
Address1:192.168.30.117web-1.headless-nginx.default.svc.cluster.local
Address2:192.168.5.59web-0.headless-nginx.default.svc.cluster.local
Address3:192.168.5.58web-2.headless-nginx.default.svc.cluster.local

查看default命名空間下的Pod的/etc/resolv.conf配置:

root@master01:~/yaml/service#kubectlexecbusybox1--cat/etc/resolv.conf
nameserver10.96.0.10
searchdefault.svc.cluster.localsvc.cluster.localcluster.local
optionsndots:5

在不同的 namespace 下的 Pod 通過 Service 訪問的時候,需要在 Service name 后面加上 .。名字>

root@master01:~/yaml/service#kubectlexecbusybox2-nkube-system--nslookupheadless-nginx.default
Server:10.96.0.10
Address1:10.96.0.10kube-dns.kube-system.svc.cluster.local

Name:headless-nginx.default.svc.cluster.local
Address1:192.168.5.58web-2.headless-nginx.default.svc.cluster.local
Address2:192.168.5.59web-0.headless-nginx.default.svc.cluster.local
Address3:192.168.30.117web-1.headless-nginx.default.svc.cluster.local

查看kube-system命名空間下的Pod的/etc/resolv.conf配置:

root@master01:~/yaml/service#kubectlexecbusybox2-nkube-system--cat/etc/resolv.confnameserver10.96.0.10
searchkube-system.svc.cluster.localsvc.cluster.localcluster.local
optionsndots:5

ClusterIP Service

現(xiàn)在我們將StatefulSet和ClusterIP Service結(jié)合使用:

apiVersion:v1
kind:Service
metadata:
name:clusterip-nginx
labels:
app:nginx
#ClusterIP不為None則表示該Service有ClusterIP
spec:
ports:
-port:80
name:web
selector:
app:nginx

查看創(chuàng)建的Service:

root@master01:~/yaml/service#kubectlgetsvc
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
clusterip-nginxClusterIP10.110.176.20180/TCP13s

此時用Pod解析域名只能得到ClusterIP地址,無法得到Pod的IP地址:

root@master01:~/yaml/service#kubectlexecbusybox1--nslookupclusterip-nginx
Server:10.96.0.10
Address1:10.96.0.10kube-dns.kube-system.svc.cluster.local

Name:clusterip-nginx
Address1:10.110.176.201clusterip-nginx.default.svc.cluster.local

Pod 的 hostname 與 subdomain

在 Kubernetes 中,如果不指定 Pod 的 hostname,其默認為 pod.metadata.name,通過 spec.hostname 字段可以自定義;另外還可以給 Pod 設置 subdomain,通過 spec.subdomain 字段。比如下面這個例子:

創(chuàng)建一個Nginx Pod,指定Pod的hostname和subdomain:

apiVersion:v1
kind:Pod
metadata:
name:nginx
labels:
name:nginx
spec:
hostname:domain-test
subdomain:subdomain-test
containers:
-image:nginx
name:nginx
---
apiVersion:v1
kind:Service
metadata:
name:subdomain-test
spec:
selector:
name:nginx
ports:
-port:80
targetPort:80
protocol:TCP

可以查看這個 Pod 的 hostname 和 hosts 文件:

[root@localhost ~]# kubectl get po -o wide
NAME                           READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
busybox-5bbb5d7ff7-dh68j       1/1     Running   0          112m    10.244.1.246   172-16-105-2   
nginx                          1/1     Running   0          2m      10.244.1.253   172-16-105-2   
[root@localhost ~]# kubectl exec -it nginx bash
root@domain-test:/# cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1localhost
::1localhost ip6-localhost ip6-loopback
fe00::0ip6-localnet
fe00::0ip6-mcastprefix
fe00::1ip6-allnodes
fe00::2ip6-allrouters
10.244.1.253domain-test.subdomain-test.default.svc.cluster.localdomain-test
root@domain-test:/#

在 busybox 容器中通過域名訪問這個Pod:

[root@localhost ~]# kubectl exec -it busybox-5bbb5d7ff7-dh68j sh
/ # wget domain-test.subdomain-test
Connecting to domain-test.subdomain-test (10.244.1.253:80)
saving to 'index.html'
index.html           100% |*****************************************************|   612  000 ETA
'index.html' saved

責任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • DNS服務器
    +關注

    關注

    0

    文章

    21

    瀏覽量

    8441
  • ip地址
    +關注

    關注

    0

    文章

    303

    瀏覽量

    17055
  • 容器
    +關注

    關注

    0

    文章

    495

    瀏覽量

    22062
  • Docker
    +關注

    關注

    0

    文章

    460

    瀏覽量

    11858

原文標題:如何管理 Docker 容器和 Kubernetes Pod 的 DNS

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何獲取DNS服務器IP?

    當ESP8266在 STA 模式下連接時,訪問分配給 DHCP 客戶端的 DNS 服務器地址將非常有用。理想情況下,這些地址要么通過 wifi_get_ip_info 在ip_info結(jié)構(gòu)中返回,要么通過專用 API(例如 espconn_
    發(fā)表于 07-11 06:15

    DNS攻擊防范科普系列1》—你的DNS服務器真的安全么?

    DNS服務器為了加快解析速度,通常都會把訪問過的域名服務器數(shù)據(jù)暫存起來。待下次其他用戶需要解析域名時,如果發(fā)現(xiàn)緩存中有該數(shù)據(jù),就立刻調(diào)出來提供服務
    發(fā)表于 10-16 15:21

    什么時候使用DNS服務器合適?

    什么時候使用DNS服務器合適?在 ap 模式下使用 esp8266 作為強制門戶時,我只使用了 dns 服務器。還有其他情況需要使用dns
    發(fā)表于 02-24 08:22

    DNS服務器及其配置

    DNS服務器及其配置:DNS的作用將主機名字轉(zhuǎn)換成二進制IP地址。1.DNS被設計成為一個聯(lián)機分布數(shù)據(jù)庫系統(tǒng)。2.DNS采用客戶
    發(fā)表于 12-07 14:39 ?20次下載

    如何配置Win 2003的DNS服務器

    如何配置Win 2003的DNS服務器 概要   本文介紹了如何配置“域名系統(tǒng)”(DNS) 服務器,使其承載可從外
    發(fā)表于 01-29 11:35 ?654次閱讀

    Win 2000中DNS服務器的設置

    Win 2000中DNS服務器的設置  DNS Domain Name Service是域名解析服務,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計算機和網(wǎng)絡服務
    發(fā)表于 02-01 11:51 ?900次閱讀

    企業(yè)AD、DNS、WINS服務器的配置

    企業(yè)AD、DNS、WINS服務器的配置
    發(fā)表于 09-05 16:59 ?6次下載
    企業(yè)AD、<b class='flag-5'>DNS</b>、WINS<b class='flag-5'>服務器</b>的配置

    解讀DNS服務器以及保護的方法

    本文主要介紹了解讀DNS服務器以及保護的方法,DNS服務器可以認為是一種軟件,可以認為是一種管理域名的方法,同樣的還可以認為是一個域名,實際而言,域名
    發(fā)表于 01-14 09:21 ?2549次閱讀
    解讀<b class='flag-5'>DNS</b><b class='flag-5'>服務器</b>以及保護的方法

    DNS服務器DNS服務器地址是什么

    域名系統(tǒng),屬于一種組織成域?qū)哟谓Y(jié)構(gòu)的計算機和網(wǎng)絡服務器命名系統(tǒng)。域名系統(tǒng)主要用于分配域名地址、IP地址給互聯(lián)網(wǎng)中的主機,系統(tǒng)再將用戶提供的域名地址自動轉(zhuǎn)為IP地址。域名服務就是一種用于域名系統(tǒng)的互聯(lián)網(wǎng)工具,
    的頭像 發(fā)表于 03-30 15:57 ?8931次閱讀

    探討DNS服務器解析

    本地 DNS 服務器收到來自客戶端的 DNS 請求,它會在其緩存中查找 google.com 的 IP 地址。如果它可以找到對應的條目,它將直接將 IP 地址返回給客戶端。否則,本地 DNS
    的頭像 發(fā)表于 05-05 15:42 ?1541次閱讀

    如何將Raspberry Pi用作DNS服務器?

    如果您正在尋找用于家庭或小型企業(yè)網(wǎng)絡的DNS服務器,Raspberry Pi將會是一個便宜、可靠且節(jié)能的選擇。首先,讓我們來了解一下什么是DNS服務器。
    的頭像 發(fā)表于 02-25 17:31 ?1053次閱讀
    如何將Raspberry Pi用作<b class='flag-5'>DNS</b><b class='flag-5'>服務器</b>?

    DNS服務器無響應的解決方法

      域名系統(tǒng)( DNS )是將網(wǎng)址轉(zhuǎn)換為IP地址的過程。 DNS服務器通常由互聯(lián)網(wǎng)服務提供商( ISP )
    的頭像 發(fā)表于 03-01 15:43 ?7781次閱讀

    DNS服務器是什么?有哪些類型?

    ,小編我給大家分析一下DNS服務器是什么?有哪些類型? 一、DNS服務器是什么? DNS服務器
    的頭像 發(fā)表于 08-14 17:40 ?2273次閱讀

    dns服務器地址設置為多少

    DNS(域名系統(tǒng))是互聯(lián)網(wǎng)的基礎設施之一,用于將域名轉(zhuǎn)換為IP地址,使用戶可以訪問網(wǎng)絡資源。要設置DNS服務器地址,首先需要理解DNS的工作原理和不同類型的
    的頭像 發(fā)表于 01-15 11:11 ?1762次閱讀

    DNS服務器可能不可用什么意思

    首先,我們需要了解DNS服務器的基本概念。DNS服務器是一種特殊的服務器,用于存儲域名與相應IP地址之間的映射關系。每當我們在瀏覽
    的頭像 發(fā)表于 01-17 09:24 ?9928次閱讀